БИХ-проект фильтра Lowpass в Simulink

Этот пример показывает, как разработать классику lowpass, БИХ просачивается Simulink®.

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

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

Наконец, пример демонстрирует Переменный БИХ-Фильтр Пропускной способности, который позволяет вам изменить частоту среза фильтра во время выполнения.

filterBuilder

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

Чтобы начать разрабатывать БИХ lowpass блоки фильтра с помощью filterBuilder, выполните команду filterBuilder('lp'). Диалоговое окно Lowpass Design открывается.

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

Разработайте восьмой порядок Баттерворт lowpass фильтр с частотой среза 5 kHz, приняв частоту дискретизации кГц 44.1.

Установите Impulse response на IIR, Order mode к Specify и Order к 8. Чтобы задать частоту среза, установите Frequency constraints на Half power (3 dB) frequency. Чтобы задать частоты в Гц, установите Frequency units на Hz, Input sample rate к 44100 и Half power (3 dB) frequency к 5000. Установите Design method на Butterworth.

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

Сгенерируйте блок от этого проекта и используйте его в модели. Откройте модель ex_iir_design. В Filter Builder, на вкладке Code Generation, нажимают Generate Model. В окне Export to Simulink задайте Block name как Butter и Destination как Current. Можно также принять решение создать блок с помощью базовых элементов, таких как задержки и усиления, или использовать один из блоков фильтра DSP System Toolbox™. Этот пример использует блок фильтра.

Нажмите Realize model, чтобы сгенерировать блок Simulink. Можно теперь соединить порты ввода и вывода блока с источником и снизить блоки в модели ex_iir_design.

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

Чебышевский тип я фильтрую

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

Во вкладке Main Filter Builder, набор

  1. Magnitude Constraints к Passband ripple.

  2. Passband ripple к 0.5.

  3. Design method к Chebyshev type I.

Нажмите Apply и затем нажмите View Filter Response.

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

Подобно Фильтру Баттерворта можно сгенерировать блок от этого проекта путем нажатия на Generate Model на вкладке Code Generation, и затем нажатия на Realize model.

Чебышевский фильтр типа II

Чебышевский проект типа II позволяет вам управлять затуханием полосы задерживания. В полосе пропускания нет никаких пульсаций. Меньшее затухание полосы задерживания включает более крутой спад. В этом примере затухание полосы задерживания является дБ 80. Установите вкладку Filter Builder Main как показано и нажмите Apply.

Нажмите View Filter Response.

Чтобы сгенерировать блок от этого проекта, на вкладке Code Generation, нажимают Generate Model, и затем нажимают Realize model.

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

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

Чтобы сгенерировать блок от этого проекта, на вкладке Code Generation, нажимают Generate Model, и затем нажимают Realize model.

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

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

Эти данные показывают ответ значения для седьмого порядка проект Баттерворта.

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

Блок фильтра Lowpass

Как альтернатива Filter Builder, можно использовать блок Lowpass Filter в модели Simulink. Блок Lowpass Filter комбинирует этапы разработки и реализации в один шаг. Фильтр разрабатывает свои коэффициенты с помощью эллиптического метода и позволяет минимальный заказ и пользовательские проекты порядка.

Блок Lowpass Filter используется в модели ex_lowpass, чтобы отфильтровать шумный синусоидальный сигнал, выбранный в 44.1 kHz. Исходные и отфильтрованные сигналы отображены в спектре анализатор.

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

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

Переменный БИХ-блок фильтра пропускной способности

Можно также разработать фильтры, которые позволяют вам изменять частоту среза во время выполнения. Блок Variable Bandwidth IIR Filter может использоваться для таких случаев. Обратитесь к Настраиваемой Фильтрации Lowpass Шумного Входа в примере Simulink для модели, которая использует этот блок.

Похожие темы