Функции > Обработка сигналов > Цифровая фильтрация > Пример. Проектирование БИХ-фильтра (фильтра с бесконечной импульсной характеристикой)
  
Пример. Проектирование БИХ-фильтра (фильтра с бесконечной импульсной характеристикой)
Используйте функции bessel, butter, cheby1, cheby2, iirlow, iirhigh, iirpass и iirstop, чтобы создать коэффициенты для аналогового фильтра нижних частот данного типа. Используйте коэффициенты как аргументы одной из функций iir, которые масштабируют и выполняют билинейное преобразование, чтобы создать требуемую частотную характеристику.
* 
Для фильтров верхних и нижних частот с четным порядком N все срезы являются срезами второго порядка с тремя коэффициентами в каждом столбце. Если порядок нечетный, последний срез будет срезом первого порядка. Для полосовых и заградительных фильтров преобразование в цифровой фильтр продублирует порядок каждого среза.
Функции gain и response принимают массивы коэффициентов в той форме, в какой они были созданы этими функциями. Комплексное усиление находится перемножением усилений срезов, а отклик — передачей отклика каждого среза в следующий срез.
Эти функции реализуют алгоритмы, описанные в главе 7 книги "Signal Processing Algorithms" (Алгоритмы обработки сигналов), Samuel Stearns and Ruth David (Prentice-Hall, Inc.).
Фильтр нижних частот Чебышева I типа
1. Определите порядок, параметр пульсации и частоту среза.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Используйте функции iirlow и cheby1, чтобы создать коэффициенты фильтра.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
* 
Фильтр A имеет четыре квадратичных среза.
3. Постройте график величины усиления и используйте горизонтальный маркер, чтобы отметить уровень пульсации.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Поскольку функция преобразования дана как произведение квадратичных множителей, отображение полюсов на комплексной плоскости не требует дополнительных разъяснений.
4. Найдите комплексные корни каждого коэффициента делителя.
Нажать для копирования этого выражения
* 
Полюсами функции преобразования фильтра A являются корни квадратных уравнений с коэффициентами, приведенными в нечетных столбцах A, с коэффициентом квадратичного члена впереди.
5. Найдите один корень для каждого коэффициента делителя.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
6. Введите сопряженные корни.
Нажать для копирования этого выражения
7. Покажите полюса функции преобразования и отобразите их на комплексной плоскости. Добавьте единичную окружность для сравнения.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
На графике полюсов видно, что все восемь полюсов находятся внутри единичной окружности, поэтому фильтр, как и требуется, устойчив.
8. Используйте функцию max, чтобы численно проверить, что все восемь полюсов лежат внутри единичной окружности.
Нажать для копирования этого выражения
9. Примените функцию response и постройте график импульсной характеристики фильтра A. Придайте ему вектор длины 1, представляющий единичный импульс как первый аргумент.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Хотя длина характеристики бесконечна, он снижается почти до 0 после первых 80 членов. Условие устойчивости гарантирует ограниченность суммы абсолютных значений отклика.
Фильтр нижних частот Чебышева II типа
1. Задайте параметры для фильтра Чебышева II типа.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Используйте функцию tan, чтобы вычислить масштаб.
Нажать для копирования этого выражения
* 
Теоретическую основу этих вычислений см. в руководстве Стирнса и Дэвида; полученное число всегда будет больше 1.
3. Используйте функции iirlow и cheby2, чтобы рассчитать коэффициенты для низкочастотного БИХ-фильтра пятого порядка с частотой среза f=pass.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
* 
Матрица коэффициентов имеет два квадратичных среза и один линейный срез.
4. Используйте функцию gain, чтобы вычислить усиление на каждой частоте, а затем постройте частотную характеристику. Используйте маркеры, чтобы показать частоты pass и stop, а также инверсию уровня затухания.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
График отклика показывает точность соответствия проектным критериям. Маркеры помогают увидеть, что полоса задерживания начинается в нужном месте (пересечение линий stop и 1/atten) и что полоса пропускания заканчивается справа от частоты среза.
5. Используйте функции iirlow и cheby2, чтобы повторить вышеупомянутую конструкцию при использовании большего затухания.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
* 
Большие величины затухания требует фильтров более высокого порядка, чтобы сократить переходную полосу до требуемой ширины. Попробуйте фильтры пятого и восьмого порядка и сравните результаты.
6. Постройте график усиления фильтра пятого порядка в дБ. Используйте маркеры, чтобы отметить частоту пропускания и требуемое затухание 30 дБ.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
7. Постройте график усиления фильтра восьмого порядка в дБ. Используйте маркеры, чтобы отметить частоту пропускания и требуемое затухание 30 дБ.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Тогда как усиление ниже линии -30 дБ одинаково для обоих фильтров при значении частоты, близком к конечной частоте, усиление фильтра восьмого порядка остается плоским выше частоты среза. Это означает, что фильтр восьмого порядка должен достигать ожидаемой величины затухания, равной 1000.
Вычисление коэффициента масштабирования
Следующие уравнения показывают определение коэффициента масштабирования для фильтров верхних частот, полосовых пропускающих фильтров и заградительных фильтров.
Фильтр верхних частот:
Нажать для копирования этого выражения
Полосовой пропускающий фильтр:
Нажать для копирования этого выражения
Параметры pass1 и pass2 представляют нижний и верхний края полосы пропускания, а параметры stop1 и stop2 представляют края двух полос задерживания.
Заградительный фильтр:
Нажать для копирования этого выражения
Параметры pass1 и pass2 представляют края двух полос пропускания, а параметры stop1 и stop2 представляют нижний и верхний края полосы задерживания.
1. Определите параметры для полосового фильтра:
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Вычислите масштаб полосового фильтра, используя вышеупомянутые параметры.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Вычислите коэффициенты для приведенного выше полосового фильтра.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
4. Постройте график отклика в дБ и покажите маркеры задерживания и пропускания.
Нажать для копирования этого выражения
Правая граница полосы подавления находится точно в нужном расположении, но левая граница находится выше целевого значения частоты. Это означает, что данный переход уже, чем требуется.
Фильтр нижних частот Бесселя
Фильтр Бесселя представляет собой единый раздел.
1. Задайте параметры фильтра Бесселя.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
* 
Параметр масштаба может использоваться для управления усилением при частоте среза.
2. Используйте функцию bessel, чтобы вычислить коэффициенты фильтра Бесселя.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Распечатайте усиление и покажите усиление на частоте среза.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
4. Пожертвуйте нижним усилением на частоте среза, чтобы увеличить затухание в полосе подавления с помощью коэффициента масштабирования.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
R является аналоговой функцией преобразования, соответствующей аналоговым коэффициентам B1.
5. Используйте функцию root с начальным приближением 1, чтобы найти точку, в которой аналоговая функция преобразования R равна 0.8 при частоте среза.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Маркер масштаба пересекает кривую усиления в точке 0.8.
* 
Начальное приближение должно быть положительным числом, чтобы оно приводило к положительному значению масштаба.
6. Вычислите заново коэффициенты цифрового фильтра с помощью рассчитанного ранее коэффициента масштабирования.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
7. Распечатайте новую частотную характеристику и покажите усиление на частоте среза.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
График показывает, что у новой частотной характеристики есть резкий переход к нулю за частотой среза. Использование коэффициента масштабирования приводит к росту затухания в полосе задерживания.
Полосовой фильтр, заградительный фильтр и фильтр верхних частот Баттерворта
Порядок входных коэффициентов удваивается с помощью функций iirpass и iirstop, поэтому аналоговые коэффициенты четвертого порядка дают фильтр восьмого порядка.
Полосовой фильтр Баттерворта
1. Задайте параметры фильтра.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Вычислите коэффициенты.
Нажать для копирования этого выражения
3. Постройте график отклика. Используйте вертикальные маркеры, чтобы показать низкие и высокие частоты.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Отклик показывает, что частотам между f_lo и f_hi разрешено пропускание. Все другие отфильтровываются.
Заградительный фильтр Баттерворта
1. Задайте порядок фильтра.
Нажать для копирования этого выражения
2. Используйте функции iirstop и butter, чтобы вычислить коэффициенты.
Нажать для копирования этого выражения
3. Постройте график отклика. Используйте вертикальные маркеры, чтобы показать низкие и высокие частоты.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Отклик показывает, что частотам между f_lo и f_hi запрещено пропускание. Всем другим пропускание разрешено.
Фильтр верхних частот Баттерворта
1. Задайте порядок фильтра.
Нажать для копирования этого выражения
2. Используйте функции iirhigh и butter, чтобы вычислить коэффициенты.
Нажать для копирования этого выражения
* 
В отличие от функций iirpass и iirstop функция iirhigh не удваивает порядок входных коэффициентов. Поэтому значение порядка передано в функцию butter в неизменном виде.
3. Постройте график отклика. Используйте вертикальный маркер, чтобы показать высокую частоту.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Отклик показывает, что частотам выше f_hi пропускание разрешено. Все другие отфильтровываются.