exponenta event banner

Проектирование низкочастотного фильтра IIR в Simulink

В этом примере показано, как проектировать классические фильтры IIR нижних частот в Simulink ®.

В примере сначала представлена конструкция фильтра с использованием filterBuilder. Критическим параметром в этой конструкции является частота отсечки, частота, при которой мощность фильтра затухает до половины (-3 dB) номинальное значение полосы пропускания. В примере показано, как заменить конструкцию Баттерворта либо Чебышевым, либо эллиптическим фильтром того же порядка и получить более крутой накат за счет некоторой пульсации в полосе пропускания и/или полосе останова фильтра. В примере также рассматриваются конструкции минимального порядка.

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

Наконец, в примере показан фильтр IIR переменной полосы пропускания, который позволяет изменять частоту отключения фильтра во время выполнения.

filterBuilder

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

Начало проектирования блоков фильтров нижних частот IIR с использованием filterBuilder, выполните команду filterBuilder('lp'). Откроется диалоговое окно Конструирование нижних частот (Lowpass Design).

Фильтр Баттерворта

Проектирование фильтра нижних частот Butterworth восьмого порядка с частотой отсечки 5 кГц, предполагая частоту дискретизации 44.1 КГц.

Установите импульсную характеристику в значение IIR, режим заказа для Specify, и Заказ на 8. Чтобы задать частоту отсечения, задайте для параметра Ограничения частоты значение Half power (3 dB) frequency. Чтобы задать частоты в Гц, установите для параметра Frequency units значение Hz, Входная частота выборки для 44100и частота половинной мощности (3 дБ) к 5000. Задайте для метода Design значение Butterworth.

Нажмите кнопку «Применить». Чтобы визуализировать частотную характеристику фильтра, щелкните Вид (View) Отклик фильтра (Filter Response). Фильтр максимально плоский. Отсутствует пульсация в полосе пропускания или в полосе останова. Отклик фильтра находится в пределах маски спецификации (красная пунктирная линия).

Создайте блок из этой конструкции и используйте его в модели. Открытие модели ex_iir_design. В Построителе фильтров на вкладке Создание кода щелкните Создать модель. В окне Экспорт в Simulink укажите имя блока как Butter и Назначение как Current. Можно также выбрать построение блока с использованием базовых элементов, таких как задержки и коэффициенты усиления, или использовать один из блоков фильтра DSP System Toolbox™. В этом примере используется блок фильтра.

Нажмите «Реализовать модель», чтобы создать блок Simulink. Теперь можно подключить входной и выходной порты блока к исходному и приемному блокам в ex_iir_design модель.

В модели шумная синусоидальная волна, дискретизированная в 44.1 кГц проходит через фильтр. Синусоидальная волна испорчена гауссовым шумом с нулевым средним и дисперсией 10–5. Запустите модель. В окне Spectrum Analyzer отображаются исходные и отфильтрованные сигналы.

Фильтр типа I Чебышева

Теперь проектируйте фильтр типа I Чебышева. Конструкция Чебышева типа I позволяет управлять полосой пропускания. В стоп-полосе до сих пор нет ряби. Более крупные ряби обеспечивают более крутой накат. В этой модели пульсация от пика к пику задается как 0,5 дБ.

На вкладке «Главная» окна «Построитель фильтров» установите значение

  1. Ограничения по величине Passband ripple.

  2. Пульсация полосы пропускания в 0.5.

  3. Метод проектирования для Chebyshev type I.

Щелкните Применить (Apply), а затем Просмотр ответа фильтра (View Filter Response).

Увеличиваясь на полосе пропускания, можно увидеть, что рябь содержится в диапазоне [-0,5, 0] дБ.

Подобно фильтру Butterworth, можно создать блок из этой конструкции, щелкнув Создать модель (Generate Model) на вкладке Создание кода (Code Generation), а затем щелкнув Реализовать модель (Implement model).

Фильтр типа II Чебышева

Конструкция Чебышёва типа II позволяет управлять затуханием стоп-полосы. Рябь в полосе пропускания отсутствует. Меньшее затухание полосы останова обеспечивает более крутое скатывание. В этом примере ослабление полосы останова равно 80 дБ. Установите вкладку «Построитель фильтров», как показано на рисунке, и нажмите кнопку «Применить».

Щелкните Вид (View) Ответ фильтра (Filter Response).

Чтобы создать блок из этой конструкции, на вкладке «Создание кода» нажмите кнопку «Создать модель», а затем нажмите кнопку «Реализовать модель».

Эллиптический фильтр

Эллиптический фильтр может обеспечить более крутое скатывание по сравнению с предыдущими конструкциями, позволяя пульсации как в полосе остановки, так и в полосе пропускания. Чтобы проиллюстрировать это поведение, используйте те же характеристики полосы пропускания и полосы останова, которые указаны в проектах Чебышева. Установите вкладку «Построитель фильтров», как показано на рисунке, и нажмите кнопку «Применить».

Чтобы создать блок из этой конструкции, на вкладке «Создание кода» нажмите кнопку «Создать модель», а затем нажмите кнопку «Реализовать модель».

Проекты минимального заказа

Чтобы задать полосу пропускания и полосу останова с точки зрения частот и величины допустимой пульсации, используйте конструкцию минимального порядка. В качестве примера убедитесь, что для параметра Order фильтра Butterworth установлено значение Minimumи задайте для метода Design значение Butterworth. Установите частоты полосы пропускания и полосы останова в значение 0.1*22050 Гц и 0.3*22050 Гц, пульсация полосы пропускания и затухание полосы останова до 1 дБ и 60 дБ соответственно. Фильтр седьмого порядка необходим для соответствия спецификациям конструкции Butterworth. Следуя тому же подходу для других методов проектирования, можно проверить, что для конструкций Чебышева типа I и типа II требуется фильтр пятого порядка. Для эллиптической конструкции достаточно фильтра четвертого порядка.

На этом рисунке показан отклик величины для конструкции Баттерворта седьмого порядка.

График полюса-нуля для конструкции Баттерворта седьмого порядка показывает ожидаемую кластеризацию 7 полюсов вокруг угла нулевых радиан на единичной окружности и соответствующих 7 нулей под углом δ радиан.

Блок фильтра нижних частот

В качестве альтернативы построителю фильтров можно использовать блок фильтра нижних частот в модели Simulink. Блок фильтра нижних частот объединяет этапы проектирования и реализации в один шаг. Фильтр проектирует свои коэффициенты с помощью эллиптического метода и допускает минимальную и пользовательскую конструкции порядка.

В модели используется блок фильтра нижних частот. ex_lowpass для фильтрации шумового синусоидального сигнала, дискретизированного в 44.1 кГц. Исходные и отфильтрованные сигналы отображаются в анализаторе спектра.

model = 'ex_lowpass';
open_system(model);
set_param(model,'StopTime','1024/44100 * 1000')
sim(model);

Блок Lowpass Filter позволяет проектировать фильтры, которые приближаются произвольно близко к фильтрам Баттерворта и Чебышева. Для аппроксимации фильтра типа I Чебышева сделать ослабление стоп-полосы произвольно большим, например, 180 дБ. Для аппроксимации фильтра Чебышева типа II сделайте пульсацию полосы пропускания произвольно малой, например, 1e-4. Для аппроксимации фильтра Баттерворта необходимо произвольно увеличить затухание полосы останова и произвольно уменьшить пульсацию полосы пропускания.

Блок фильтра IIR с переменной полосой пропускания

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

Связанные темы