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

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

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

Сообщение Santik »

Рассмотрим, как можно легко получить коэффициенты полосового фильтра, основываясь лишь на знании коэффициентов ФНЧ.
Наиболее просто это сделать для полосовых фильтров, центральная частота которых = 0.5
Пусть полоса фильтра =0.2
1. Создаём ФНЧ с частотой равной полосе (0.2)
2. Превращаем его в ФВЧ с частотой 0.8 меняя знаки нечётных коэффициентов
3. "Разбавляем" полученные коэффициенты 0 (через один)
Коэффициенты ПФ с полосой 0.4-0.6 готовы! :D
Подчеркну, что это справедливо для всех типов фильтров любого порядка!
Вот пара картинок:
ФВЧ_0.8.JPG
ПФ_0.4-0.6.JPG

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

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

Сообщение Santik »

Подведём некоторые итоги:
Зная только коэффициенты ФНЧ, путем элементарных преобразований можно получить ФВЧ, полосовой и режекторный фильтр.

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

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

Сообщение Santik »

Несколько полезных формул:
ФНЧ

ФВЧ

ПФ

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

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

Сообщение Santik »

ФНЧ Баттерворта 2 порядка:



Переход от H(s) непосредственно к коэффициентам H(z) с использованием "матрицы z-преобразования":

ФНЧ:



ФВЧ:


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

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

Сообщение Santik »

В более общем случае:



Переход от H(s) непосредственно к коэффициентам H(z) с использованием "матрицы z-преобразования":

ФНЧ:


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

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

Сообщение Santik »

Отметим, что преобразование вида ФВЧ - ПФ:

даёт полосовой фильтр с центральной частотой =0.5 (сдвиг pi/2).

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

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

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

Мое мнение таково, что большой разницы нет как осуществлять переход от аналогового фильтра к цифровому. Я предпочитаю делать частотные преобразования аналоговой H(s) (просто мне кажутся формулы проще) и потом билинейное преобразование сразу в ту H(z) какая требуется. Ваш подход отличается тем что идет пересчет из ФНЧ H(s) через билинейное преобразование скрещенное с частотным преобразованием. Вполне нормальный подход который ничем не хуже. Также существуют формулы частотных преобразований H(z) ФНЧ в H(z) ФВЧ, ПФ и РФ. Так или иначе все преобразования требуют дробной подстановки и приводят к перемножению полиномов и накоплению ошибок округления. Особенно это хорошо видно на примере эллиптических фильтров когда они разваливаются если порядок фильтра становится слишком большой.

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

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

Сообщение Santik »

Пример из:
http://www.dsplib.ru/content/subst/subst.html
Мне кажется, что моя запись для коэффициентов an компактнее:
CodeCogsEqn (13).gif
CodeCogsEqn (13).gif (3.81 КБ) 5585 просмотров
К тому же я умножаю матрицу на вектор, состоящий из коэффициентов при S в аналитическом виде!
Это позволяет описать сразу фильтр с любыми параметрами:


А для алгоритма численного расчёта дробно рациональной подстановки этот расчёт каждый раз приходится повторять!

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

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

Сообщение Santik »

А здесь принцип - один раз вычислил формулы коэффициентов - и забыл про дробно рациональную подстановку (до другого порядка или типа фильтра) :D
Мне кажется, что проблема накопления ошибок при дробно рациональной подстановке сильно преувеличена!
(по крайней мере для фильтров Баттерворта и Чебышева).
Я не уверен получиться ли такая методика с фильтрами Кауэра. То есть получится ли получить коэффициенты при S в аналитическом виде?

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

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

Сообщение Santik »

Фильтр Баттерворта 8 порядка.

Будем пользоваться обозначениями, принятыми в статье:
http://www.dsplib.ru/content/filters/ch3/ch3.html
Обозначим:






Обозначим
и заводим в "калькулятор" http://www.mathsolution.ru/math-task/simplifi-polynom следующее выражение:

После несложных преобразований получим:







Обозначим:





С помощью калькулятора определяем матрицу z-преобразования и сразу записываем выражения для искомых коэффициентов an:
CodeCogsEqn (15).gif
CodeCogsEqn (15).gif (7.76 КБ) 5649 просмотров

Ответить