"Оптимальные" коэффициенты БИХ фильтра

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Теорема:
Всегда существует устойчивый фильтр с относительными частотами среза симметричными относительно 0.5 с нечетными коэффициентами an и bn тождественно равными 0.
Последний раз редактировалось Santik 06 мар 2015, 12:50, всего редактировалось 1 раз.

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Замечания:
1. Теорема справедлива для всех типов фильтров (Баттерворта, Чебышева, Кауэра)
2. Теорема справедлива как для полосовых, так и для режекторных фильтров.
3. Условие "симметричности" относительных частот среза относительно частоты 0.5 легко выполнить, если имеется возможность выбрать частоту дискретизации Fd=2(F1+F2), где F1и F2 соответственно нижняя и верхняя частота среза фильтра.

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Для примера рассмотрим режекторный фильтр. Пусть
- входной вектор данных.
Разобьём этот вектор на два - с чётными и нечётными индексами.


Теперь каждый из этих векторов пропустим через ФНЧ (с одинаковыми параметрами).
На выходе фильтра получим 2 вектора:


Объединим два выходных вектора:

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Аналогично можно получить полосовой фильтр, применив ФВЧ.
Таким образом, можно получить эффективные режекторные или полосовые фильтры (Баттерворта, Чебышева, Кауэра) с числом операций равным обычным ФНЧ или ФВЧ.
Ограничение одно : Fн+Fв= FN

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Для многих задач, особенно тех, которые выполняются на микроконтроллере условие Fн+Fв= FN является не таким уж критическим.
Пусть, как в задаче
http://www.dsplib.ru/forum/viewtopic.php?f=7&t=178
требуется создать полосовой фильтр 10-30 Гц.
Достаточно выбрать частоту дискретизации Fd=2(10+30)=80 Гц и применить ФВЧ Fн*2=10*2=20 Гц к чётным и нечётным выборкам.
Заметим, что частота ФВЧ =20 Гц равна частоте Найквиста для чётных/нечётных выборок (20 Гц)
Последний раз редактировалось Santik 09 мар 2015, 07:13, всего редактировалось 3 раза.

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Интересно отметить, что программа filter.exe при условии Fн+Fв= FN даёт хоть и очень малые, но не нулевые нечётные коэффициенты an, bn:
Режекторный фильтр.JPG
С полосовыми фильтрами ситуация лучше - там только нечётные an не нулевые (хотя и имеют порядок -7,-8).
И в связи с этим вопрос к Сергею Бахурину: а с чем это может быть связано?
Я понимаю, что вопрос может быть не совсем корректен, т.к. программа filter.exe давно с сайта снята... :oops:
Бахурин.JPG
Бахурин.JPG (8.14 КБ) 3981 просмотр

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

И ещё....
Меня терзают "смутные сомнения"(с), что эти алгоритмы давно "обкатаны" (хитрыми и злыми :lol: ) FPGAшниками...
Но ни никто не хочет с "молодёжью" своим опытом поделиться...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1116
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Бахурин Сергей »

Это связано с округлениями при рассчете.
для расчета необходимо посчитать прототип, сделать частотное преобразование и билинейное преобразование. Все это требует перемножение и деление полиномов. Как следствие округления накапливаются.
Злые fpga шники очень не любят бих фильтры поскольку они оч трудно реализуются и потенциально неустойчивы.

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Бахурин Сергей писал(а):Это связано с округлениями при рассчете.
для расчета необходимо посчитать прототип, сделать частотное преобразование и билинейное преобразование. Все это требует перемножение и деление полиномов. Как следствие округления накапливаются.
Злые fpga шники очень не любят бих фильтры поскольку они оч трудно реализуются и потенциально неустойчивы.
Может они просто не умеют их "готовить"? (с)
Я вот задался вопросом: а существуют ли "хорошие" фильтры? Или существуют ли такие параметры фильтра, при которых коэффициенты рассчитываются точно?
Почему мы задаём 3 дБ, а , допустим, не 2.9943 дБ?
По предварительным прикидкам такие параметры существуют! И я собираюсь это доказать на примере фильтра Баттервота 3 порядка.
Но меня не покидает чувство, что я "изобретаю велосипед". Более того, на конкурсе "Изобретателей велосипедов" я бы занял Второе Место... :D

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

Re: "Оптимальные" коэффициенты БИХ фильтра

Сообщение Santik »

Теорема.
Для любого фильтра Баттерворта, заданного Rp и Fн всегда существует Rpopt<Rp при котором все коэффициенты фильтра a0,a1,a2... и b0, b1, b2... - целые числа.

Ответить