В этом примере показано, как использовать Filter Designer как удобную альтернативу функциям создания фильтра в командной строке.
Filter Designer - мощный графический пользовательский интерфейс (GUI) в Signal Processing Toolbox™ для разработки и анализа фильтров.
Filter Designer позволяет вам быстро проектировать цифровые КИХ или БИХ фильтры путем установки спецификаций эффективности фильтра, путем импорта фильтров из рабочей рабочей области MATLAB ® или путем добавления, перемещения или удаления полюсов и нулей. Filter Designer также предоставляет инструменты для анализа фильтров, таких как графики величины и фазового отклика и диаграмм нулей и полюсов.
Тип filterDesigner
в командной строке MATLAB:
>> filterDesigner
Диалоговое окно Совета Day отображений с предложениями по использованию Filter Designer. Затем в графическом интерфейсе пользователя отображается фильтр по умолчанию.
У графического интерфейса пользователя трёх основных областей:
Область информации о текущем фильтре
Область отображения фильтра и
Панель « Проект»
В верхней половине графического интерфейса пользователя отображается информация о спецификациях фильтра и ответах для текущего фильтра. Область Current Filter Information, в верхнем левом углу, отображает свойства фильтра, а именно структуру фильтра, порядок, количество используемых разделов и является ли фильтр стабильным или недействительным. Это также обеспечивает доступ к менеджеру фильтров для работы с несколькими фильтрами.
Область Filter Display, в правом верхнем углу, отображает различные отклики фильтра, такие как, величина ответ, задержка группы и коэффициенты фильтрации.
Нижняя половина графический интерфейс пользователя является интерактивным фрагментом Filter Designer. Панель проекта, в нижней половине, где вы задаете свои спецификации фильтра. Он управляет отображаемым в двух других верхних областях. Другие панели могут отображаться в нижней половине при помощи кнопок боковой панели.
Инструмент включает контекстно-зависимую справку. Можно щелкнуть правой кнопкой мыши или нажать кнопку «Что это?» для получения информации о различных частях инструмента.
Мы спроектируем фильтр нижних частот, который пропускает все частоты, меньше или равные 20% частоты Найквиста (половина частоты дискретизации), и ослабляет частоты, большие или равные 50% частоты Найквиста. Мы будем использовать конечную импульсную характеристику фильтр Equiripple с этими спецификациями:
Ослабление полосы пропускания 1 дБ
Затухание в полосе задерживания 80 дБ
Ширина полосы пропускания 0,2 [Нормировано (0 к 1)]
Частота полосы остановки 0,5 [Нормирована (от 0 до 1)]
Для реализации этого проекта мы будем использовать следующие спецификации:
1. Выберите Lowpass в раскрывающемся меню в разделе Response Type и Equiripple в разделе FIR Design Method. В целом при изменении типа отклика или метода проекта параметры фильтра и область отображения фильтра обновляются автоматически.
2. Выберите Specify order в области Порядок Фильтра и введите 30.
3. КИХ-фильтр Equiripple имеет опцию Коэффициент Плотности, которая управляет плотностью сетки частот. Увеличение значения создает фильтр, который более близко аппроксимирует идеальный фильтр равновесия, но с увеличением расчетов требуется больше времени. Оставьте это значение в 20.
4. Выберите Normalized (от 0 до 1) в раскрывающемся меню Units в области Frequency Specifications.
5. Введите 0.2 для wpass и 0.5 для wstop в области Спецификации.
6. Wpass и Wstop, в области «Спецификации величин» - положительные веса, по одному на полосу, используемые во время оптимизации в фильтре конечные импульсные характеристики Equiripple. Оставьте эти значения равными 1.
7. После установки спецификаций проекта нажмите кнопку Проекта Filter в нижней части графического интерфейса пользователя, чтобы спроектировать фильтр.
Величина фильтра отображается в области Filter Analysis после вычисления коэффициентов.
После разработки фильтра можно просмотреть следующие анализы фильтров в окне отображения, нажав любую из кнопок на панели инструментов:
В порядке слева направо кнопки:
Величина
Фазовый отклик
Величина и фазовые отклики
Групповая задержка
Фаза фазовой задержки
Импульсная характеристика
Переходная характеристика
Диаграмма нулей и полюсов
Коэффициенты Фильтра
Информация о фильтре
Можно изменить модули оси X или Y, щелкнув правой кнопкой мыши по подписи по осям и выбрав требуемые модули. Текущие модули измерения имеют флажок.
В области Отображение (Display) можно кликнуть по любой точке графика, чтобы добавить маркер данных, который отображает значения в этой точке. При щелчке правой кнопкой мыши по маркеру данных отображается меню, в котором можно перемещать, удалять или корректировать внешний вид маркеров данных.
Чтобы минимизировать затраты на реализацию фильтра, мы постараемся уменьшить количество коэффициентов при помощи опции Минимальный порядок в панели проекта.
Измените выбор в порядке фильтра на Минимальный порядок в области проекта и оставьте другие параметры в их нынешнем виде.
Нажмите кнопку «Проект фильтра», чтобы создать новый фильтр.
Как видно в области Current Filter Information, порядок фильтра уменьшился с 30 до 16, количество рябей уменьшилось, и ширина перехода стала шире. Спецификации полосы пропускания и полосы упора все еще соответствуют критериям проекта.
Щелкнув правой кнопкой мыши график и выбрав Параметры анализа (Analysis Parameters), можно отобразить диалоговое окно для изменения параметров конкретного анализа. (Можно также выбрать Параметры анализа (Analysis Parameters) из меню Анализ (Analysis).)
Чтобы сохранить отображаемые параметры в качестве значений по умолчанию, нажмите кнопку Сохранить как значение по умолчанию (Save as Default). Чтобы восстановить заданные MATLAB значения по умолчанию, нажмите кнопку «Восстановить исходные значения по умолчанию».
Как только вы удовлетворены вашим проектом, вы можете экспортировать ваш фильтр в следующие пункты назначения:
Рабочее пространство MATLAB
MAT-файл
Текстовый файл
Выберите Экспорт из меню Файла.
Когда вы принимаете решение экспортировать в рабочее пространство MATLAB или в MAT-файл, можно экспортировать фильтр как коэффициенты. Если доступен DSP System Toolbox™, можно также экспортировать фильтр как системный объект.
Filter Designer позволяет вам сгенерировать код MATLAB, чтобы повторно создать фильтр. Это позволяет вам встраивать проект в существующий код или автоматизировать создание фильтров в скрипте.
Выберите Generate MATLAB code в меню File, выберите Создание Фильтра Function и укажите имя файла в диалоговом окне Generate MATLAB code.
Следующий код был сгенерирован из фильтров минимального порядка, которые мы проектировали выше:
Если DSP System Toolbox™ установлен, панель Set quantization parameters доступна на боковой панели:
Можно использовать эту панель для квантования и анализа фильтров двойной точности. С помощью 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™ - генерирует, создает и развертывает код для процессоров C6000 Instruments Техаса.
Filter Design HDL Coder- генерирует синтезируемый код VHDL или Verilog для фильтров с фиксированной точкой
Simulink ® - генерирует фильтры из атомарных блоков Simulink