Следящий фильтр
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Фильтр устойчив! Правда частота режекции стала 80Гц
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
k1(1)=-0,951056518
k1(2)=-0,809017001
k1(3)=-0,951056518
k1(4)=-0,809017001
......................
Среднее значение k1=-0,880036759, что соответствует частоте режекции 78,754 Гц.
k1(2)=-0,809017001
k1(3)=-0,951056518
k1(4)=-0,809017001
......................
Среднее значение k1=-0,880036759, что соответствует частоте режекции 78,754 Гц.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Входной сигнал -ЛЧМ 10-150 Гц 10 секунд
Первая картинка:
y(k)=x(k)+2*k1* x(k-1) + x(k-2)-k1*1.939*y(k-1)-0.939*y(k-2)
Вторая картинка:
y(k)=1.939/2*{x(k)+2*k1* x(k-1) + x(k-2)-k1*1.939*y(k-1)-0.939*y(k-2)}
Разница только в коэффициенте 1.939/2, а картинки здорово различаются.
Почему?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Извиняюсь, нашёл ошибку:
y(k)=1.939/2*{x(k)+2*k1* x(k-1) + x(k-2)-2*k1*y(k-1)-2*0.939/(1+0,939)*y(k-2)}
y(k)=1.939/2*{x(k)+2*k1* x(k-1) + x(k-2)-2*k1*y(k-1)-2*0.939/(1+0,939)*y(k-2)}
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Вторая - после следящего режекторного ЛЧМ-фильтра
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Сделал фильтр 0-фазовым.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Текст программы на Фортране:
(после !-комментарий)
(после !-комментарий)
Код: Выделить всё
! Следящий (ЛЧМ) режекторный фильтр.
! в массиве Х - входные данные, FX-вспомогательный массив
dk2=0.939
do k=1,8 !цикл по гармоникам, давим с 1 по 8 гармонику
do j=1,8 !число проходов (всегда чётное!!!)
do i=1,NN !цикл по выборкам
t=(i-1)/Fd !текущее время, Fd -частота дискретизаци
! выбор частоты подавления (ЛЧМ) в зависимости от времени,
! номера гармоники и направления прохода по времеи
if(mod(j,2) .EQ.1)then
Fv=(f0+df*t/T0)*k !f0-начальная частота ЛЧМ,
else !df-диапазон перестройки, Т0- длительность сигнала
Fv=(fk-df*t/T0)*k
end if
dk1=-cos(2*3.1415926*Fv/Fd)!динамический параметр фильтра
if (i .GT.2) then !собственно сама фильтрация
FX(i)=0.5*(dk2+1)*(X(i)+2*dk1*X(i+1)+X(i+2)-2*dk1*FX(i-1)-2*dk2/(1+dk2)*FX(i-2))
else
FX(i)=cmplx(0.0,0.0) ! массив FX не обязательно комплексный
end if
end do ! конец цикла по i
!Реверс во времени входного вектора...
do i=1,NN
X(i)=FX(NN-i+1)
end do
!...и на следующий проход
end do !j
end do ! k Конец Фильтрации
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
А вот, собственно, и сам источник сигнала:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
Пример работы следящего режекторного фильтра.
Входной сигнал - белый шум.
Частота режекции :
Входной сигнал - белый шум.
Частота режекции :
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Следящий фильтр
А как вырезать помеху такого вида:
Вроде бы нужен 2-х частотный следящий режекторный фильтр ???
Вроде бы нужен 2-х частотный следящий режекторный фильтр ???