Коэффициенты БИХ фильтров

Все что касается фильтрации
Dmitri Seva
Сообщения: 30
Зарегистрирован: 07 дек 2010, 09:29

Re: Коэффициенты БИХ фильтров

Сообщение Dmitri Seva »

Да, так и есть, имелось ввиду только преобразование ФНЧ -> ФНЧ. Для ВЧ фильтров я пробовал подставлять в преобразование ФНЧ->ФВЧ частоту среза и получал приемлемую АЧХ. Или в случае ВЧ можно также сначала преобразовать к частоте среза 1 рад/сек, а затем использовать преобразование ФНЧ -> ФВЧ c требуемой частотой среза (в этом случае получается тоже что и в программе filter). Или, например для режекторного фильтра нам только на руку что частота заграждения 1 рад/сек, я попробовал делать напрямую преобразование нормированный ФНЧ -> РФ без дополнительных преобразований и получил те же коэффициенты что и в программе filter.

IceBeast
Сообщения: 10
Зарегистрирован: 17 мар 2011, 16:02

Re: Коэффициенты БИХ фильтров

Сообщение IceBeast »

Возникла проблема при расчёте v0 согласно соотношению (24) раздела "Расчет аналогового эллиптического фильтра нижних частот" http://www.dsplib.ru/content/filters/ch6/ch6.html. Опять никак не сходтися результат. В примере v0=0.18181, тогда значение функции sn^-1(j*K(0.0028615)/0.50885, 0.0028615)=sn^-1(3.08696*j, 0.0028615) должно равняться 1.4279*j, а расчёт согласно рекуррентной формуле даёт 1.1749*j. Расчёт самой функции sn^-1( ) у меня реализован верно, о чём свидетельствует то, что расчёт sn(sn^-1(u, k), k)=u - даёт верный результат. В чём тут может быть проблема? (Учитывая прошлый свой вопрос, попробовал рассчитать без K(k1), т. е. sn^-1(j/0.58885, 0.0028615)=sn^-1(1.96533*j, 0.0028615), результат: 0.9091*j также отличается от необходимого 1.4279*j).

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

Re: Коэффициенты БИХ фильтров

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

Должен признаться, что в выражении для v0 ошибка :oops: . Правильное выражение в формулах (11) и (16):


В знаменателе не должно быть K(k_1). Выражение (24) принимает вид:



значение sn^-1 = 0.9091*j, тогда -j/5 * 0.9091j = 0.18181

Во всем остальном расчет верный.

IceBeast
Сообщения: 10
Зарегистрирован: 17 мар 2011, 16:02

Re: Коэффициенты БИХ фильтров

Сообщение IceBeast »

Я наконец то завершил расчёт передаточной функции цифрового полосового фильтра, столкнулся ещё с одной нестыковкой на этапе дробно-рациональной подстановки. В статье по этой теме, которая здесь любезно предоставлена автором, постулируется тот факт, что степени полиномов A(s) и B(s) одинаковы, так же как и степени в числителе и знаменателе подстановки - альфа(z) и бетта (z). Утверждается, что это можно сделать без потери общности, дополнив недостающие члены с нулевыми коэффициентами. Рассмотрим, в частности, пример, который был использован при расчёте аналогового эллиптического фильтра в соответствующей статье на этом сайте. В результате расчёта была получена передаточная функция H(s), в числителе которой - полином 4-й степени, а в знаменателе - 5-й. Если следовать предложенной методике, необходимо для проведения дробно-рациональной подстановки привести вектор коэффициентов числителя к виду: [0,2042; 0; 0,16652; 0; 0,02974; 0], т. е. добавляем 0*s^5. В таком случае, получим все матрицы - от NUM до NDN размерности 6х11 (степени числителя и знаменателя в используемой подстановке равны между собой и равны 2), т. к. количество столбцов определяется по формуле N*P+1, а N при сравнивании степеней полиномов числителя и знаменателя будет равно 5! Таким образом, при построчном суммировании элементов матрицы, мы получим 11 коэффициентов, т. е. полином 10-й степени. При этом очевидно, что если осуществлять подстановку в полином 4-й (изначально) степени - в числитель, рациональной дроби со степенью полиномов 2, не получим никак полином 10-й степени, а только 8-й!

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

Re: Коэффициенты БИХ фильтров

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

в этом случае коэффициентов будет 11, но 9-й и 10-й коэффициенты будут равны 0, и ничего не изменят. Поэтому полином, как и должен быть, будет 8 степени. Но вот когда вы билинейное преобразование сделаете тогда и в числителе и в знаменателе степени полиномов сравняются.

IceBeast
Сообщения: 10
Зарегистрирован: 17 мар 2011, 16:02

Re: Коэффициенты БИХ фильтров

Сообщение IceBeast »

Я в своём расчёте сразу делал комбинированную замену: если для того, чтобы перейти от нормированного аналогового ФНЧ к ПФ, необходимо сделать замену s на (s^2+w0^2)/(B*s), где w0 - центральная частота АЧХ необходимого полосового фильтра, а B - его полоса пропускания, затем билинейное преобразование. Поскольку обе замены сразу известны, можно просто применить билинейное преобразование к первой замене, а затем получившееся таким образом выражение подставлять в качестве замены в H(s), пользуясь для этого дробно-рациональной подстановкой. При использовании такой комбинированной подстановки вектор коэффициентов числителя получился следующим: [(w0^2)*(T^2)+4; 2*{(w0^2)*(T^2)-4}; (w0^2)*(T^2)+4], а знаменателя: [2*B*T; 0; -2*B*T], T - интервал дискретизации, а -2*B*T - коэффициент при z^-2. Один вопрос: почему при применении билинейного преобразования степени числителя и знаменателя должны сравняться? :shock: Вот взять, например, в качестве H(s)=(1+s)/(1+s+s^2), а в качестве замены - билинейное преобразование с точностью до не содержащего z коэффициента пропорциональности: s -> (1-z^-1)/(1+z^-1). После несложных преобразований получим H(z)=(2+2*z^-1)/(3+z^-2)! Степени числителя и знаменателя то вовсе не получились одинаковыми! :?

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

Re: Коэффициенты БИХ фильтров

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

Да интересный пример. Степени не обязательно должны сравняться, но как правило сравниваются. Если вы возьмете в числителе не 1+s, а скажем 1+b*s, где b не равно 1, то степени сравняются, потому что из знаменателя "поднимется" (1+z^-1)^2 и в числителе будет вторая степень равно как и в знаменателе ;) .

IceBeast
Сообщения: 10
Зарегистрирован: 17 мар 2011, 16:02

Re: Коэффициенты БИХ фильтров

Сообщение IceBeast »

Да, всё верно, я проверил, если коэффициенты числителя b0 и b1 различны, при билинейном преобразовании степени числителя и знаменателя сравниваются. :D Хотел ещё спросить: в Вашей программе dsp.exe значения частот подставляются в рад/сек или в герцах? К тому же у меня не получилось произвести расчёт ФНЧ Кауэра: пробовал подставлять граничную частоту полосы пропускания и задерживания и в левую пару полей, и в правую, но программа выдаёт окно уведомления с ошибкой. :( По какой причине график АЧХ всегда строится только на промежутке [0, 1]?Ещё хотел спросить: как по исходным данным для расчёта цифрового фильтра выбрать необходимые исходные данные для расчёта соответствующего аналогового нормированного ФНЧ-прототипа, который затем будет путём подстанвки преобразован к полосовому фильтру с необходимой полосой, а затем к искомому цифровому фильтру путём билинейного преобразования? Например, пусть мне необходимо рассчитать полосовой цифровой фильтр с центральной частотой w0, граничными частотами полосы пропускания wp1 [Гц], wp2 [Гц], граничными частотами полосы задерживания ws1 [Гц], ws2 [Гц]. Поскольку общий расчёт начинается с расчёта нормированного ФНЧ, то для него, очевидно, wp=1 рад/с, каким должно быть ws? И ещё, как можно построить АЧХ цифрового фильтра, зная H(z)? Необходима зависимость от w, т. о., z как-то должно выражаться через w?

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

Re: Коэффициенты БИХ фильтров

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

частотные характеристики цифровых фильтров являются периодическими функциями с периодом равным частоте дискретизации. Поэтому их принято считать относительно частоты 0 до 2*pi*Fs рад/с, Fs - частота дискретизации в Гц. Но чтобы отвязаться от частоты дискретизации вводят нормированную частоту от 0 до 2*pi рад/c (просто делят все частоты на Fs). Но это тоже не очень удобно, потому что иррациональный множитель pi приводит к тому, что частоты плохо воспринимаются, поэтому часто делят еще на pi и анализируют спектр на нормированной частоте от 0 до 2. При этом у фильтра с вещественными коэффициентами (а мы рассматриваем пока только фильтры с вещественными к-тами) ЧХ фильтра симметрична относительно нормированной частоты 1. Поэтому все характеристики представляются в интервале нормированных частот от 0 до 1.
В моих программах частоты для расчета цифрового фильтра подставляются в нормированном виде от 0 до 1, для расчета аналогового в рад/c.
Если вы хотите полосовой цифровой фильтр с частотой w0 и граничными частотами, то для перевода в нормированный интервал от 0 до 1 вы эти частоты должны поделить на частоту дискретизации и дальше рассчитывать фильтр по нормированной частоте. Всю информацию как это делать с примерами вы найдете на сайте в разделе аналоговые и цифровые фильтры на странице статьи. Если будут вопросы по существу - спрашивайте, отвечу.

IceBeast
Сообщения: 10
Зарегистрирован: 17 мар 2011, 16:02

Re: Коэффициенты БИХ фильтров

Сообщение IceBeast »

Я сейчас попробовал перепроверить последовательно свои расчёты и обнаружил, что после преобразования нормированного аналогового НЧ фильтра к полосовому график АЧХ получается несимметричным относительно центральной частоты, а несколько смещённым. Сергей, из своего опыта Вы можете подсказать это свидетельствует об ошибке в расчёте или просто замена s -> (s^2+w0^2)/(B*s), которая переводит НЧ в ПФ нелинейна и причина именно в этом? Для пояснения я приведу скрин с графиком (w0=10, B=2): http://www.imageup.ru/img74/analogovyjj ... 0.png.html

Ответить