Следящий фильтр

Все что касается фильтрации
Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

50-100.JPG
Каждый дискрет менял частоту режекторного фильтра 50Гц-100Гц.
Фильтр устойчив! Правда частота режекции стала 80Гц :lol:

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

k1(1)=-0,951056518
k1(2)=-0,809017001
k1(3)=-0,951056518
k1(4)=-0,809017001
......................
Среднее значение k1=-0,880036759, что соответствует частоте режекции 78,754 Гц.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

Ф2.JPG
Ф1.JPG
Режекторный фильтр 50 Гц
Входной сигнал -ЛЧМ 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: Следящий фильтр

Сообщение Santik »

Извиняюсь, нашёл ошибку:
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 »

0002.jpg
Первая картинка - исходный файл (х- время, у-частота)
Вторая - после следящего режекторного ЛЧМ-фильтра

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

0003.jpg
Небольшой перебор, конечно. Скорее для демонстрации работы следящего режекторного фильтра. :D
Сделал фильтр 0-фазовым.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

Текст программы на Фортране:
(после !-комментарий) :D

Код: Выделить всё

! Следящий (ЛЧМ) режекторный фильтр.
! в массиве Х - входные данные, 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 »

А вот, собственно, и сам источник сигнала: :D
Nomad 65 Neo.JPG

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

Пример работы следящего режекторного фильтра.
Входной сигнал - белый шум.
Частота режекции :
N1.jpg

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Следящий фильтр

Сообщение Santik »

А как вырезать помеху такого вида:
Кольцо.jpg
Вроде бы нужен 2-х частотный следящий режекторный фильтр ??? :cry:

Ответить