exponenta event banner

Блок проектирования цифрового фильтра

Обзор блока проектирования цифрового фильтра

Для проектирования и реализации цифрового фильтра можно использовать блок «Проектирование цифрового фильтра». Проектируемый фильтр может фильтровать одноканальные или многоканальные сигналы. Блок проектирования цифрового фильтра идеально подходит для моделирования числового поведения фильтра в системе с плавающей запятой, такой как персональный компьютер или микросхема DSP. Продукт Simulink ® Coder™ можно использовать для создания кода C из блока фильтров.

Проектирование и анализ фильтров

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

Реализация фильтра

После разработки фильтра с помощью конструктора фильтров блок автоматически реализует фильтр с помощью указанной структуры фильтра. Затем можно использовать блок для фильтрации сигналов в модели. Можно также точно настроить фильтр, изменив параметры спецификации фильтра во время моделирования. Выходы блока проектирования цифрового фильтра численно совпадают с выходами эквивалентного фильтра System object™ при прохождении того же входа.

Сохранение, экспорт и импорт фильтров

Блок проектирования цифровых фильтров позволяет сохранять проектируемые фильтры, экспортировать фильтры (в рабочее пространство MATLAB ®, MAT-файлы и т.д.) и импортировать фильтры, разработанные в другом месте.

Сведения о том, как сохранить проекты фильтров, см. в разделе Сохранение и открытие сеансов проектирования фильтров. Сведения об импорте и экспорте конструкций фильтров см. в разделе Импорт и экспорт квантованных фильтров.

Примечание

Для проектирования и реализации фильтра можно использовать блок «Проектирование цифрового фильтра». Для реализации заранее разработанного фильтра используйте блоки дискретного фильтра FIR или Biquad Filter. Оба метода реализуют конструкцию фильтра одинаковым образом и имеют одинаковое поведение во время моделирования и генерации кода.

Дополнительные сведения см. на странице ссылок на блок «Проектирование цифрового фильтра». Сведения о выборе между блоком «Проектирование цифрового фильтра» и мастером реализации фильтра см. в разделе Выбор блока проектирования фильтра.

Выбор блока конструкции фильтра

В этом разделе описываются сходства и различия между блоками «Проектирование цифрового фильтра» и «Мастер реализации фильтра».

Общие черты

Блок проектирования цифрового фильтра и мастер реализации фильтра аналогичны следующим способам:

  • Параметры конструирования и анализа фильтров - оба блока используют приложение конструктора фильтров для конструирования и анализа фильтров.

  • Выходные значения - если выводом обоих блоков является плавающая точка с двойной точностью, плавающая точка с одной точностью или фиксированная точка, выходные значения обоих блоков численно совпадают с выходными значениями эквивалентных системных объектов при передаче одного и того же ввода.

Различия

Блок проектирования цифрового фильтра и мастер реализации фильтра выполняют следующие операции по-разному:

  • Поддерживаемые структуры фильтров - оба блока поддерживают многие из тех же базовых структур фильтров, но мастер реализации фильтров поддерживает больше структур, чем блок проектирования цифровых фильтров. Это происходит потому, что блок может реализовать фильтры, используя блоки суммы, усиления и задержки. Список всех поддерживаемых структур см. на страницах «Мастер реализации фильтров» и «Справочник по проектированию цифровых фильтров».

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

  • Блок в сравнении с мастером (Block versus Wizard) - блок «Digital Filter Design» является самим фильтром, но блок «Filter Implementation Wizard» (Мастер реализации фильтров) позволяет создавать новые фильтры и помещать их в существующую модель. Таким образом, мастер реализации фильтров не является блоком, обрабатывающим данные в модели, а является мастером, генерирующим блоки фильтров (или подсистемы), которые затем можно использовать для обработки данных в модели.

Когда использовать каждый блок

Ниже приведены конкретные ситуации, в которых подходит только блок проектирования цифрового фильтра или мастер реализации фильтра.

  • Проектирование цифрового фильтра

    • Используется для моделирования фильтров с плавающей запятой с одинарной и двойной точностью.

    • Используется для создания высокооптимизированного кода ANSI ® C, реализующего фильтры с плавающей запятой для встраиваемых систем .

  • Мастер реализации фильтра

    • Используется для моделирования числового поведения фильтров с фиксированной точкой в микросхеме DSP, программируемой на месте матрице вентилей (FPGA) или интегральной схеме (ASIC).

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

    • Используйте для визуализации структуры фильтра, поскольку блок может создавать фильтр из блоков «Сумма», «Коэффициент усиления» и «Задержка».

    • Используется для быстрого создания нескольких блоков фильтров.

Для получения дополнительной информации см. раздел Мастер реализации фильтра и страница ссылки на блок Мастер реализации фильтра.

Создание фильтра нижних частот в Simulink

Можно использовать блок «Проектирование цифрового фильтра» для проектирования и реализации цифрового фильтра FIR или IIR. В этом разделе он используется для создания фильтра нижних частот FIR:

  1. Откройте Simulink и создайте новый файл модели.

  2. В библиотеке DSP System Toolbox™ Filtering, а затем в библиотеке Filter Implementations щелкните и перетащите в модель блок Digital Filter Design.

  3. Дважды щелкните на блоке «Проектирование цифрового фильтра».

    Откроется приложение дизайнера фильтров.

  4. Задайте параметры следующим образом и нажмите кнопку ОК:

    • Тип ответа = Lowpass

    • Метод проектирования = FIR, Equiripple

    • Порядок фильтрации = Minimum order

    • Единицы = Normalized (0 to 1)

    • wpass = 0.2

    • wstop = 0.5

  5. Щелкните Дизайн-фильтр в нижней части приложения, чтобы создать фильтр.

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

  6. В меню «Правка» выберите «Преобразовать структуру».

    Откроется диалоговое окно Преобразовать структуру (Convert Structure).

  7. Выберите «Прямая форма» «Перенос FIR» и нажмите «ОК».

  8. Переименование блока Digital Filter Design - Lowpass.

Блок проектирования цифрового фильтра теперь представляет фильтр нижних частот с прямой структурой FIR. Фильтр пропускает все частоты вплоть до 20% частоты Найквиста (половины частоты дискретизации) и останавливает частоты, превышающие или равные 50% частоты Найквиста, как определено параметрами wpass и wstop. В следующем разделе Создание фильтра верхних частот в Simulink используется блок проектирования цифрового фильтра для создания фильтра верхних частот. Дополнительные сведения о реализации заранее разработанного фильтра см. в разделе Реализации цифровых фильтров.

Создание фильтра верхних частот в Simulink

В этом разделе описывается создание фильтра верхних частот с помощью блока «Проектирование цифрового фильтра»:

  1. Если модель, созданная в разделе Создание фильтра нижних частот в Simulink, не открыта на рабочем столе, можно открыть эквивалентную модель, введя

    ex_filter_ex4  

    в командной строке MATLAB.

  2. В библиотеке DSP System Toolbox Filtering, а затем в библиотеке Filter Implementations щелкните и перетащите в модель второй блок Digital Filter Design.

  3. Дважды щелкните на блоке «Проектирование цифрового фильтра».

    Откроется приложение дизайнера фильтров.

  4. Установите следующие параметры:

    • Тип ответа = Highpass

    • Метод проектирования = FIR, Equiripple

    • Порядок фильтрации = Minimum order

    • Единицы = Normalized (0 to 1)

    • wstop = 0.2

    • wpass = 0.5

  5. Нажмите кнопку «Создать фильтр» в нижней части приложения, чтобы создать фильтр.

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

  6. В меню «Правка» выберите «Преобразовать структуру».

    Откроется диалоговое окно Преобразовать структуру (Convert Structure).

  7. Выберите «Прямая форма» «Перенос FIR» и нажмите «ОК».

  8. Переименование блока Digital Filter Design - Highpass .

Блок теперь реализует фильтр верхних частот с прямой структурой переноса FIR. Фильтр пропускает все частоты, превышающие или равные 50% частоты Найквиста (половине частоты дискретизации), и останавливает частоты, меньшие или равные 20% частоты Найквиста, как определено параметрами wpass и wstop. Этот фильтр верхних частот противоположен фильтру нижних частот, описанному в разделе Создание фильтра нижних частот в Simulink. Фильтр верхних частот пропускает частоты, остановленные фильтром нижних частот, и останавливает частоты, пропущенные фильтром нижних частот. В следующем разделе «Фильтрация высокочастотного шума в Simulink» эти блоки проектирования цифрового фильтра используются для создания модели, способной удалять высокочастотный шум из сигнала. Дополнительные сведения о реализации заранее разработанного фильтра см. в разделе Реализации цифровых фильтров.

Фильтрация высокочастотного шума в Simulink

В предыдущих разделах для создания фильтров нижних и верхних частот КИХ использовались блоки проектирования цифровых фильтров. В этом разделе эти блоки используются для построения модели, которая удаляет высокочастотный шум из сигнала. В этой модели для создания высокочастотного шума используется фильтр верхних частот, возбуждаемый равномерным случайным сигналом. После добавления этого шума к синусоиде используется фильтр нижних частот для фильтрации высокочастотного шума:

  1. Если модель, созданная в разделе Создание фильтра верхних частот в Simulink, не открыта на рабочем столе, можно открыть эквивалентную модель, введя

    ex_filter_ex5 

    в командной строке MATLAB.

  2. Щелкните и перетащите следующие блоки в модель.

    БлокБиблиотекаКоличество
    Добавить (Simulink)

    Библиотека математических операций Simulink

    1

    Случайный источник

    Источники

    1

    Синусоидальная волна

    Источники

    1

    Объем времени

    Сливы

    1

  3. Задайте параметры для этих блоков, как указано в следующей таблице. Оставьте параметры, не перечисленные в таблице, в настройках по умолчанию.

    Настройки параметров для других блоков

    БлокНастройка параметров
    Добавить
    • Форма значка = rectangular

    • Список знаков = ++

    Случайный источник
    • Тип источника =  = Uniform

    • Минимум = 0

    • Максимум = 4

    • Примерный режим = Discrete

    • Время выборки = 1/1000

    • Выборки на кадр = 50

    Синусоидальная волна
    • Частота (Гц) = 75

    • Время выборки = 1/1000

    • Выборки на кадр = 50

    Объем времени
    • Файл > Количество входных портов > 3

    • Просмотр > Свойства конфигурации

      • Откройте вкладку «Время» и задайте интервал времени = One frame period

  4. Подключите блоки, как показано на следующем рисунке. Для выполнения этой задачи может потребоваться изменить размер некоторых блоков.

  5. На вкладке Моделирование (Modeling) щелкните Параметры модели (Model Settings). Откроется диалоговое окно Параметры конфигурации (Configuration Parameters).

  6. На панели Решатель (Solver) задайте параметры следующим образом и нажмите кнопку ОК.

    • Время начала = 0

    • Время остановки = 5

    • Тип = Fixed-step

    • Решатель = Discrete (no continuous states)

  7. На вкладке Моделирование (Simulation) выберите Выполнить (Run).

    Начинается моделирование модели, и в области отображаются три входных сигнала.

  8. После завершения моделирования выберите «Вид» > «Легенда» в меню «Область времени». Легенда появится в окне Область времени (Time Scope). Можно щелкнуть и перетащить его в любом месте экрана области. Чтобы изменить имена каналов, дважды щелкните внутри легенды и замените имена каналов по умолчанию на следующие:

    • Добавить = Noisy Sine Wave

    • Конструкция цифрового фильтра - Lowpass = Filtered Noisy Sine Wave

    • Синусоидальная волна = Original Sine Wave

    На следующем шаге задаются цвет, стиль и маркер каждого канала.

  9. В окне «Область времени» выберите «Вид» > «Стиль» и задайте следующие параметры:

    СигналЛинияМаркерЦвет
    Шумная синусоидальная волна - НичегоЧерный
    Отфильтрованная шумная синусоидальная волна - алмазКрасный
    Исходная синусоидальная волна Ничего *Синий
  10. Теперь появится следующее окно «Time Scope»:

    Видно, что фильтр нижних частот отфильтровывает высокочастотный шум в шумовой синусоиде.

Теперь для построения модели, которая удаляет высокочастотный шум из сигнала, используются блоки проектирования цифрового фильтра. Дополнительные сведения об этих блоках см. на странице ссылок на блоки проекта цифрового фильтра. Сведения о другом блоке, способном разрабатывать и внедрять фильтры, см. в разделе Мастер реализации фильтров. Сведения о том, как сохранить проекты фильтров, см. в разделе Сохранение и открытие сеансов проектирования фильтров. Сведения об импорте и экспорте конструкций фильтров см. в разделе Импорт и экспорт квантованных фильтров.