То В этом примере показано, как спроектировать классического БИХ lowpass, просачивается Simulink®.
Пример сначала представляет использование создания фильтра filterBuilder
. Критический параметр в этом проекте является частотой среза, частотой, на которой степень фильтра затухает к половине (-3
дБ) номинальное значение полосы пропускания. Пример показывает, как заменить проект Баттерворта или на Чебышевский или на эллиптический фильтр того же порядка и получить более крутой спад за счет некоторой пульсации в полосе пропускания и/или полосе задерживания фильтра. Пример также исследует проекты минимального порядка.
Пример затем показывает, как спроектировать и использовать lowpass, просачивается Simulink с помощью интерфейса, доступного от блока Lowpass Filter..
Наконец, пример демонстрирует Variable Bandwidth IIR 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
. Запустите модель. Представление в Спектре Анализатор показывает исходные и отфильтрованные сигналы.
Теперь спроектируйте фильтр Чебышевский Тип 1. Чебышевский тип, который я проектирую, позволяет вам управлять полосой пропускания. В полосе задерживания нет все еще никаких пульсаций. Большие пульсации включают более крутой спад. В этой модели пульсация от пика к пику задана как 0,5 дБ.
Во вкладке Main Filter Builder, набор
Magnitude Constraints к Passband ripple
.
Passband ripple к 0.5
.
Design method к Chebyshev type I
.
Нажмите Apply и затем нажмите View Filter Response.
Увеличивая масштаб полосы пропускания, вы видите, что пульсации содержатся в области значений [-0.5, 0] дБ.
Подобно Фильтру Баттерворта можно сгенерировать блок из этого проекта путем нажатия на Generate Model на вкладке Code Generation, и затем нажатия на Realize model.
Чебышевский проект типа 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 нулях под углом π радианов.
Как альтернатива 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 позволяет вам проектировать фильтры, которые аппроксимируют произвольно близко к Баттерворту и Чебышевским фильтрам. Чтобы аппроксимировать фильтр Чебышевский Тип 1, сделайте затухание в полосе задерживания произвольно большим, например, 180
дБ. Чтобы аппроксимировать Чебышевский фильтр Типа II, сделайте неравномерность в полосе пропускания произвольно маленькой, например, 1e-4
. Чтобы аппроксимировать Фильтр Баттерворта, сделайте затухание в полосе задерживания произвольно большим и неравномерность в полосе пропускания произвольно маленький.
Можно также спроектировать фильтры, которые позволяют вам изменять частоту среза во время выполнения. Блок Variable Bandwidth IIR Filter может использоваться для таких случаев. Обратитесь к Настраиваемой Фильтрации Lowpass Шумного Входа в примере Simulink для модели, которая использует этот блок.