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

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

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

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

У вас ошибка в расчетах где-то. На АЧХ явно видно, что в полосе пропускания амплитуда пульсаций скачет.
пульсации.png
пульсации.png (19.98 КБ) 8124 просмотра

У эллиптического фильтра пульсации в полосе пропускания и подавления должны быть равноволновыми (одной амплитуды). При частотных преобразованиях пульсации не меняются.

Постройте еще график в логарифмическом масштабе чтобы посмотреть пульсации в полосе заграждения, думаю там тоже не все ровно.

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

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

Сообщение IceBeast »

Да, и вправду у меня была ошибка в расчётах. :? Сейчас я всё исправил, сделал расчёт согласно Вашей методике, изложенной на странице http://www.dsplib.ru/content/filters/ch8/ch8.html, на этой странице закаралась небольшая ошибка в выражении (9) - 5.4 рад/с, а не 5.6, как указано. Но это мелочь, в целом мне удалось добиться полного совпадения результатов расчёта с теми, что и в рассмотренном примере. Однако, если для четверки частот, которая указана в примере (4, 5, 15, 18), всё идеально совпадает, то для комбинации частот, например, (4, 5, 12, 18), в результате расчёта и построения графика АЧХ получается график, который колебается между значениями (0.7943, 0.8912) в полосе пропускания вместо положенных (0.89125, 1). Пробовал комбинации (4, 5, 13, 18), (4, 5, 14, 18) - всё правильно получается, АЧХ в полосе пропускания доходит до 1, а при значениях верхней граничной частоты полосы пропускания ниже 12 (включительно) - максимальное значение АЧХ в полосе пропускания равно 0.8912 вместо единицы! Вы не сталкивались с таким явлением? С чем это может быть связано?

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

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

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

думаю что там где колеблется (0.7943, 0.8912) порядок фильтра отличается от фильтра где правильно колеблется. Рекомендую проверить правильно ли применяется к-т согласно (16) статьи http://www.dsplib.ru/content/filters/ch6/ch6.html

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

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

Сообщение IceBeast »

Наконец то мне удалось всё поправить, там и вправду дело было именно в этом коэффициенте! :) График АЧХ нормально строится, правда на болшей частоте заграждения не всегда достигается необходимое ослабление (при выборе частот как в примере - всё совпадает, в т. ч. коэффициенты a_i и b_i). Возникает вопрос, раз при реализации цифрового фильтра должны использоваться усилители с коэффициентами усиления, соответствующими a_i и b_i, а значения некоторых из этих коэффициентов получаются порядка 10^7, 10^8, неужели существуют элементы, которые способны выдать такие огромные коэффициенты усиления? Или используется какая-то нормировка при физической реализации? И ещё вопрос: я заметил, что если ко всем четырём частотам одновременно приписывать нули (например (1, 2, 8, 9) и (10, 20, 80, 90)), то для таких комбинаций частот коэффициенты a_i и b_i абсолютно идентичны! И ещё, если коэффициент отрицателен, то это соответствует ослаблению сигнала в соответствующее количество раз?

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

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

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

при реализации цифрового фильтр не используются усилители. Используются умножители, а умножение на 10^7 или на 5 ничем не отличается по сути. Если коэффициент отрицателен, то значит умножение на отрицательное число. ПО частотам не понял. 1 2 8 9 это в чем частоты?

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

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

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

Вообще с эллиптическим фильтром все сложно вышло. Та мат-модель которая представлена на сайте мне не подошла в силу того что в выражении для полюсов в эллиптическую функцию передается комплексный аргумент. Т.е. мат-модель целенаправленно требует реализации эллиптических функций как функции комплексной переменной. Также у меня недостаточно знаний чтобы преобразовать приведенные формулы в требуемый мне вид. В тоже время я нашел и проверил библиотеку эллиптических функций от вещественного переменного. Выражение для рассчета v0 тоже в свое время не мог посчитать. Далее я начал искать другую мат-модель. В книге Parks T.W Digital Filter Design нашел то что мне надо. Я приведу её здесь, общие ссылки на формулы даны относительно статьи на сайте

1) Расчет параметра согласно (1)
2) Расчет параметра согласно (5). Это тот самый пересчет параметра k, про него
в книге не написано, но я решил его делать чтобы считать также как в программе filter.
3) Расчет комплиментарных эллиптических модулей и
4) Расчет согласно формуле



где K = K(k), K1 = K(k1) т.е. это полные эллиптические интегралы от соответствующих модулей. Этот v0 отличается от того v0 который рассчитывается в статье. У меня всегда он был больше в K раз. Т.е. v0 = v0_из_статьи * K;

5) Расчет нулей по формуле:



где для нечетного и четного i соответственно. Т.е. для нечетного i у нас нету нуля (он лежит на бесконечности)

6) Расчет полюсов по формуле:



где







и

для нечетного и четного i соответственно. Т.е. для нечетного i у нас есть дополнительный чисто вещественный полюс, его можно рассчитать по формуле:



7) Для расчета передаточной характеристики использовать H(s) из выражения (16). Gp и H(0) учитываются также как написано в статье.

Приведенная мат-модель не требует реализации эллиптических функций от комплексного аргумента, и позволяет по отдельности рассчитывать действительную и мнимую части полюсов, для того чтобы сразу рассчитать биквадратные блоки. Единственный нюанс это расчет . Его я рассчитал согласно коду на фортране приведенному в той же книге:

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

c--------------ARC ELLIPTIC TANGENT---------------
       FUNCTION ARCSC(U,KC)
       REAL KC
            A = 1.0
            B = KC
            Y = 1.0/U
            L = 0
            DO 10 J = 1, 15
                BT = A*B
                A = A + B
                B = 2.0*SQRT (BT)
                Y =Y-BT/Y
                IF (Y .EQ. 0) Y = SQRT(BT)*1E-10
                IF (ABS(A-B) .LT. (A* 1.2E-7) ) GOTO 15
                L = 2*L
                IF (Y .LT. 0) L = L + 1
 10         CONTINUE
            PRINT *,'ARCSC FAILED TO CONVERGE'
            GOTO 16
 15      IF (Y .LT. 0) L = L + 1
 16      ARCSC = (ATAN(A/Y) + 3.141592654*L)/A
         RETURN
         END
После расчета все коэффициенты совпадают с программой filter.
Последний раз редактировалось Dmitri Seva 17 апр 2011, 16:05, всего редактировалось 4 раза.

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

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

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

Да интересная книга. Выражения для полюсов тоже очень интересные, не встречал раньше. Спасибо.

Predlegion
Сообщения: 34
Зарегистрирован: 15 апр 2011, 18:02

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

Сообщение Predlegion »

Здравствуйте! Скажите,а почему все стараются избегать FFT фильтрацию? Т.е делаем БПФ, затем оставляем нужные нам частоты,а остальные члена ряда БПФ обнуляем или приравниваем некоторому малому значению а затем делаем ОБПФ. Вроде бы этот метод самый простой и понятный из всех,но раз его никто не использует, хотелось бы узнать в чем его недостатки по сравнению с фильтрами КИХ и БИХ?

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

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

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

Во первых это приводит к появлению очень длинных переходных процессов. Во вторых вы не регулируете уровень боковых лепестков АЧХ фильтра, поскольку не можете наложить весовое окно. В третьих после произведения спектров вы на выходе получаете результат круговой свертки, а КИХ фильтрация соответствует линейной, поэтому для чистоты требуется преобразовать круговую свертку в линейную. Возьмите функцию Хевисайда и попробуйте к ней применить fft фильтрацию и вы увидите что результат вас не вдохновит.

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

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

Сообщение IceBeast »

Вот вопрос: а ведь наверняка кто-нибудь моделировал в Simulink аналоговые и цифровые фильтры с помощью соответствующих блоков из библиотеки Simulink? Вот я попробовал создать имитационную модель, в которой синусоидальный сигнал проходит через аналоговый нормированный ФНЧ. Коэффициенты для блока "Transfer Fcn", моделирующего фильтр, взял из методики, приведённой здесь на сайте. Но почему-то осцилограмма сигнала на выходе аналогового фильтра практически не зависит от частоты синусоидального колебания на входе фильтра (частоты пробовал брать как из полосы пропускания, так и в полосе задерживания). Но АЧХ такого ФНЧ ведь строится правильно! В чём же может быть моя ошибка? Может кто подскажет? Буду признателен!
P.S.: Вот ссылки на 2 скрина с моделью и исходными данными: http://www.imagebar.net/out.php/i96843_ ... MTEST1.png, http://www.imagebar.net/out.php/i96844_ ... MTEST2.png. Частота в примере взята 0.5 рад/с, т.е. из полосы пропускания фильтра, а на нижней осцилограмме виден сильно ослабленный и искажённый сигнал!

Ответить