В этом примере показано, как использовать Filter Designer в качестве удобной альтернативы функциям создания фильтра командной строки.
Filter Designer является мощным графическим интерфейсом пользователя (GUI) в Signal Processing Toolbox™ для того, чтобы проектировать и анализировать фильтры.
Filter Designer позволяет вам быстро спроектировать цифрового КИХ или БИХ-фильтры путем установки требований по производительности фильтра, путем импорта фильтров из рабочей области MATLAB® или путем добавления, перемещаясь или удаляя полюса и нули. Filter Designer также обеспечивает инструменты для анализа фильтров, таких как величина и графики фазового отклика и нулевые полюсом графики.
Введите filterDesigner в командной строке MATLAB:
>> filterDesigner
Диалоговое окно Совета дня отображается с предложениями для использования Filter Designer. Затем графический интерфейс пользователя отображается с фильтром по умолчанию.
Графический интерфейс пользователя имеет три основных области:
Текущая область информации о Фильтре
Область Отображения Фильтра и
Панель Проекта
Верхняя половина графический интерфейса пользователя отображает информацию о спецификациях фильтра и ответах для текущего фильтра. Текущая область информации о Фильтре, в верхнем левом углу, отображает свойства фильтра, а именно, структура фильтра, порядок, количество используемых разделов и устойчив ли фильтр или нет. Это также предоставляет доступ менеджеру по Фильтру по работе с несколькими фильтрами.
Область Отображения Фильтра, в верхнем правом углу, отображает различные ответы фильтра, такой как, ответ величины, групповую задержку и коэффициенты фильтра.
Более низкая половина графический интерфейса пользователя является интерактивным фрагментом Filter Designer. Панель Проекта, в более низкой половине - то, где вы задаете свои спецификации фильтра. Это управляет тем, что отображено в других двух верхних областях. Другие панели могут быть отображены в более низкой половине при помощи кнопок боковой панели.
Инструмент включает Контекстно-зависимую справку. Можно ли щелкнуть правой кнопкой или нажать ли, What - Это? кнопка, чтобы получить информацию о различных частях инструмента.
Мы спроектируем фильтр нижних частот, который передает все частоты, меньше чем или равные 20% частоты Найквиста (половина частоты дискретизации), и ослабляет частоты, больше, чем или равный 50% частоты Найквиста. Мы будем использовать КИХ фильтр Equiripple с этими спецификациями:
Затухание полосы пропускания 1 дБ
Затухание в полосе задерживания 80 дБ
Частота полосы пропускания 0.2 [Нормированный (от 0 до 1)]
Частота полосы задерживания 0.5 [Нормированный (от 0 до 1)]
Чтобы реализовать этот проект, мы будем использовать следующие спецификации:
1. Выберите Lowpass из выпадающего меню под Response Type и Equiripple под КИХ-Методом разработки. В общем случае, когда вы изменяете Тип Ответа или Метод разработки, параметры фильтра и обновление области Отображения Фильтра автоматически.
2. Выберите порядок Specify в области Filter Order и войдите 30.
3. КИХ-фильтр Equiripple имеет опцию Фактора Плотности, которая управляет плотностью сетки частоты. Увеличение значения создает фильтр, который более тесно аппроксимирует идеал equiripple фильтр, но больше времени требуется, когда расчет увеличивается. Оставьте это значение в 20.
4. Выберите Normalized (от 0 до 1) в опускающемся меню Units в области Frequency Specifications.
5. Войдите 0.2 для wpass и 0.5 для wstop в области Frequency Specifications.
6. Wpass и Wstop, в области Magnitude Specifications являются положительными весами, один на полосу, используемую во время оптимизации в КИХ фильтр Equiripple. Оставьте эти значения в 1.
7. После установки спецификаций проекта нажмите кнопку Design Filter в нижней части графический интерфейса пользователя, чтобы спроектировать фильтр.
Ответ величины фильтра отображен в области Filter Analysis после того, как коэффициенты будут вычислены.
Если вы спроектировали фильтр, можно просмотреть следующие исследования фильтра в окне экрана путем нажимания любой из кнопок на панели инструментов:
В порядке слева направо, кнопки
Ответ величины
Фазовый отклик
Величина и Фазовые отклики
Ответ групповой задержки
Ответ задержки фазы
Импульсная характеристика
Переходной процесс
Нулевой полюсом график
Отфильтруйте коэффициенты
Отфильтруйте информацию
Filter Designer позволяет вам измеряться, как тесно ваш проект соответствует спецификациям фильтра при помощи масок Спецификации, которые накладывают спецификации фильтра на графике отклика. В области Отображения, когда график Величины отображен, щелчок правой кнопкой по метке 'Magnitude (dB)' оси Y и выбирает Magnitude. Затем выберите Specification Mask из меню View, чтобы наложить спецификации фильтра на графике отклика.
Ответ величины фильтра с маской Спецификации показывают ниже:
Можно изменить x-или модули оси Y путем щелчка правой кнопкой по мыши по подписи по осям и выбора желаемых модулей. Текущие модули имеют галочку.
В области Отображения можно нажать на любую точку в графике добавить маркер данных, который отображает значения в той точке. Щелчок правой кнопкой по маркеру данных отображает меню, куда можно переместить, удалить или настроить внешний вид маркеров данных.
Чтобы минимизировать стоимость реализации фильтра, мы попытаемся сократить количество коэффициентов при помощи опции Минимального порядка в панели проекта.
Измените выбор в Порядке фильтра к Минимальному порядку в области Проекта и оставьте другие параметры как они.
Нажмите кнопку Design Filter, чтобы спроектировать новый фильтр.
Как вы видите в области Current Filter Information, порядок фильтра, уменьшенный от 30 до 16, количество уменьшенных пульсаций и ширина перехода, стал более широким. Полоса пропускания и спецификации полосы задерживания все еще соответствуют критериям расчета.
Путем щелчка правой кнопкой по графику и выбора Analysis Parameters, можно отобразить диалоговое окно для изменения специфичных для анализа параметров. (Можно также выбрать Analysis Parameters из меню Analysis.)
Чтобы сохранить отображенные параметры как значения по умолчанию, нажмите Save as Default. Чтобы восстановить заданные MATLAB значения по умолчанию, нажмите Restore Original Defaults.
Если вы удовлетворены своим проектом, можно экспортировать фильтр в следующие места назначения:
Рабочее пространство MATLAB
Matfile
Текстовый файл
Выберите Export из меню File.
Когда вы принимаете решение экспортировать в рабочее пространство MATLAB или в MAT-файл, можно экспортировать фильтр как коэффициенты. Если DSP System Toolbox™ доступен, можно также экспортировать фильтр как Системный объект.
Filter Designer позволяет вам генерировать код MATLAB, чтобы воссоздать ваш фильтр. Это позволяет вам встроить свой проект в существующий код или автоматизировать создание ваших фильтров в скрипте.
Выберите Generate MATLAB code из меню File, выберите Filter Design Function и задайте имя файла в Сгенерировать диалоговом окне кода MATLAB.
Следующий код был сгенерирован от фильтра минимального порядка, который мы спроектировали выше:
Если вам установили DSP System Toolbox™, панель параметров квантования Набора доступна на боковой панели:
Можно использовать эту панель, чтобы квантовать и анализировать фильтры с двойной точностью. С DSP System Toolbox можно квантовать от с двойной точностью до с одинарной точностью. Если у вас есть Fixed-Point Designer, можно квантовать фильтры к точности фиксированной точки. Обратите внимание на то, что вы не можете смешать и вычисления с фиксированной точкой с плавающей точкой в своем фильтре.
Меню Targets Filter Designer позволяет вам генерировать различные типы кода, представляющего ваш фильтр. Например, можно сгенерировать заголовочные файлы C, коэффициенты XILINX (COE) файлы (с DSP System Toolbox) и VHDL, Verilog наряду с испытательными стендами (с Filter Design HDL Coder™).
Filter Designer также интегрирует дополнительную функциональность от этих других продуктов MathWorks™:
DSP System Toolbox - Добавляет усовершенствованного КИХ и БИХ-методы проектирования (т.е. преобразования Фильтра, Многоскоростные фильтры) и генерирует эквивалентный блок для фильтра
Embedded Coder™ - Генерирует, создает и развертывает код для процессоров Texas Instruments C6000.
Filter Design HDL Coder - Генерирует синтезируемый код VHDL или Verilog для фильтров фиксированной точки
Simulink®-Генерирует фильтры от атомарных блоков Simulink