"Оптимальные" коэффициенты БИХ фильтра
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Теорема:
Всегда существует устойчивый фильтр с относительными частотами среза симметричными относительно 0.5 с нечетными коэффициентами an и bn тождественно равными 0.
Всегда существует устойчивый фильтр с относительными частотами среза симметричными относительно 0.5 с нечетными коэффициентами an и bn тождественно равными 0.
Последний раз редактировалось Santik 06 мар 2015, 12:50, всего редактировалось 1 раз.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Замечания:
1. Теорема справедлива для всех типов фильтров (Баттерворта, Чебышева, Кауэра)
2. Теорема справедлива как для полосовых, так и для режекторных фильтров.
3. Условие "симметричности" относительных частот среза относительно частоты 0.5 легко выполнить, если имеется возможность выбрать частоту дискретизации Fd=2(F1+F2), где F1и F2 соответственно нижняя и верхняя частота среза фильтра.
1. Теорема справедлива для всех типов фильтров (Баттерворта, Чебышева, Кауэра)
2. Теорема справедлива как для полосовых, так и для режекторных фильтров.
3. Условие "симметричности" относительных частот среза относительно частоты 0.5 легко выполнить, если имеется возможность выбрать частоту дискретизации Fd=2(F1+F2), где F1и F2 соответственно нижняя и верхняя частота среза фильтра.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Для примера рассмотрим режекторный фильтр. Пусть
- входной вектор данных.
Разобьём этот вектор на два - с чётными и нечётными индексами.
Теперь каждый из этих векторов пропустим через ФНЧ (с одинаковыми параметрами).
На выходе фильтра получим 2 вектора:
Объединим два выходных вектора:
- входной вектор данных.
Разобьём этот вектор на два - с чётными и нечётными индексами.
Теперь каждый из этих векторов пропустим через ФНЧ (с одинаковыми параметрами).
На выходе фильтра получим 2 вектора:
Объединим два выходных вектора:
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Аналогично можно получить полосовой фильтр, применив ФВЧ.
Таким образом, можно получить эффективные режекторные или полосовые фильтры (Баттерворта, Чебышева, Кауэра) с числом операций равным обычным ФНЧ или ФВЧ.
Ограничение одно : Fн+Fв= FN
Таким образом, можно получить эффективные режекторные или полосовые фильтры (Баттерворта, Чебышева, Кауэра) с числом операций равным обычным ФНЧ или ФВЧ.
Ограничение одно : Fн+Fв= FN
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Для многих задач, особенно тех, которые выполняются на микроконтроллере условие 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 Гц)
Пусть, как в задаче
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: "Оптимальные" коэффициенты БИХ фильтра
Интересно отметить, что программа filter.exe при условии Fн+Fв= FN даёт хоть и очень малые, но не нулевые нечётные коэффициенты an, bn:
И в связи с этим вопрос к Сергею Бахурину: а с чем это может быть связано?
Я понимаю, что вопрос может быть не совсем корректен, т.к. программа filter.exe давно с сайта снята...
С полосовыми фильтрами ситуация лучше - там только нечётные an не нулевые (хотя и имеют порядок -7,-8).И в связи с этим вопрос к Сергею Бахурину: а с чем это может быть связано?
Я понимаю, что вопрос может быть не совсем корректен, т.к. программа filter.exe давно с сайта снята...
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
И ещё....
Меня терзают "смутные сомнения"(с), что эти алгоритмы давно "обкатаны" (хитрыми и злыми ) FPGAшниками...
Но ни никто не хочет с "молодёжью" своим опытом поделиться...
Меня терзают "смутные сомнения"(с), что эти алгоритмы давно "обкатаны" (хитрыми и злыми ) FPGAшниками...
Но ни никто не хочет с "молодёжью" своим опытом поделиться...
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Это связано с округлениями при рассчете.
для расчета необходимо посчитать прототип, сделать частотное преобразование и билинейное преобразование. Все это требует перемножение и деление полиномов. Как следствие округления накапливаются.
Злые fpga шники очень не любят бих фильтры поскольку они оч трудно реализуются и потенциально неустойчивы.
для расчета необходимо посчитать прототип, сделать частотное преобразование и билинейное преобразование. Все это требует перемножение и деление полиномов. Как следствие округления накапливаются.
Злые fpga шники очень не любят бих фильтры поскольку они оч трудно реализуются и потенциально неустойчивы.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Может они просто не умеют их "готовить"? (с)Бахурин Сергей писал(а):Это связано с округлениями при рассчете.
для расчета необходимо посчитать прототип, сделать частотное преобразование и билинейное преобразование. Все это требует перемножение и деление полиномов. Как следствие округления накапливаются.
Злые fpga шники очень не любят бих фильтры поскольку они оч трудно реализуются и потенциально неустойчивы.
Я вот задался вопросом: а существуют ли "хорошие" фильтры? Или существуют ли такие параметры фильтра, при которых коэффициенты рассчитываются точно?
Почему мы задаём 3 дБ, а , допустим, не 2.9943 дБ?
По предварительным прикидкам такие параметры существуют! И я собираюсь это доказать на примере фильтра Баттервота 3 порядка.
Но меня не покидает чувство, что я "изобретаю велосипед". Более того, на конкурсе "Изобретателей велосипедов" я бы занял Второе Место...
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: "Оптимальные" коэффициенты БИХ фильтра
Теорема.
Для любого фильтра Баттерворта, заданного Rp и Fн всегда существует Rpopt<Rp при котором все коэффициенты фильтра a0,a1,a2... и b0, b1, b2... - целые числа.
Для любого фильтра Баттерворта, заданного Rp и Fн всегда существует Rpopt<Rp при котором все коэффициенты фильтра a0,a1,a2... и b0, b1, b2... - целые числа.