Создание цифровых фильтров

Обзор блока Создания цифровых фильтров

Можно использовать блок Digital Filter Design для разработки и реализации цифрового фильтра. Фильтр, который вы проектируете, может фильтровать одноканальные или многоканальные сигналы. Блок Создание Цифровых Фильтров идеально подходит для симуляции численного поведения вашего фильтра в системе с плавающей точкой, такой как персональный компьютер или чип DSP. Можно использовать Simulink® Coder™ продукт, чтобы сгенерировать код С из блока фильтра.

Создание фильтра

Вы выполняете все создания фильтра и анализ в приложении filter designer, которое открывается при двойном клике по блоку Создания цифровых фильтров. Дизайнер фильтров предоставляет обширные параметры создания фильтра и инструменты анализа, такие как графики с нулем полюса и импульсной характеристикой.

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

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

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

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

Чтобы узнать, как сохранить создания фильтра, см. Сохранение и открытие сеансов создания фильтра». Чтобы узнать, как импортировать и экспортировать создания фильтра, смотрите Импорт и Экспорт Квантованных Фильтров.

Примечание

Можно использовать блок Создание Цифровых Фильтров для разработки и реализации фильтра. Для реализации предварительно спроектированного фильтра используйте блоки Дискретный конечная импульсная характеристика или Биквадский фильтр. Оба метода реализуют создание фильтра одинаковым образом и имеют одинаковое поведение во время симуляции и генерации кода.

Для получения дополнительной информации см. Digital Filter Design страницы с описанием блоков. Для получения информации о выборе между блоком Создание Цифровых Фильтров и мастером реализации фильтра см. раздел «Выбор блока создания фильтра».

Выберите Создание фильтра блок

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

Общие черты

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

  • Создания фильтра и опции анализа - Оба блока используют приложение filter designer для создания фильтра и анализа.

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

Различия

Блок Создание Цифровых Фильтров и мастер реализации фильтра обрабатывают следующие вещи по-разному:

  • Поддерживаемые структуры фильтра - оба блока поддерживают многие из одних и тех же базовых структур фильтра, но мастер реализации фильтра поддерживает больше структур, чем Создание цифровых фильтров блок. Это связано с тем, что блок может реализовать фильтры, используя блоки Sum, Gain и Delay. Список всех поддерживаемых структур см. на страницах Filter Realization Wizard и Digital Filter Design блоков.

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

  • Блок от мастера - блок Создание Цифровых Фильтров является самим фильтром, но блок Filter Realization Wizard просто позволяет вам создавать новые фильтры и помещать их в существующую модель. Таким образом, Мастер реализации фильтра не является блоком, который обрабатывает данные в вашей модели, это мастер, который генерирует блоки фильтров (или подсистемы), которые можно затем использовать для обработки данных в вашей модели.

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

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

  • Создание цифровых фильтров

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

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

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

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

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

    • Используйте, чтобы визуализировать структуру фильтра, так как блок может создать фильтр из блоков Sum, Gain и Delay.

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

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

Создайте Lowpass фильтр в Simulink

Можно использовать блок Создание Цифровых Фильтров для разработки и реализации цифровой конечной импульсной характеристики или БИХ. В этой теме вы используете его, чтобы создать фильтр lowpass конечную импульсную характеристику:

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

  2. Из библиотеки DSP System Toolbox™ Filtering, а затем из библиотеки Filter Implementations, щелкните - и - перетащите блок Создание Цифровых Фильтров в модель.

  3. Дважды кликните блок Создание Цифровых Фильтров.

    Откроется приложение filter designer.

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

    • Response Type = Lowpass

    • Design Method = FIR, Equiripple

    • Filter Order = Minimum order

    • Units = Normalized (0 to 1)

    • wpass = 0.2

    • wstop = 0.5

  5. Нажмите Design Filter в нижней части приложения, чтобы спроектировать фильтр.

    Ваш блок Создание Цифровых Фильтров теперь представляет фильтр с заданными параметрами.

  6. В Edit меню выберите Convert Structure.

    Откроется диалоговое окно Convert Structure.

  7. Выберите Direct-Form FIR Transposed и нажмите OK.

  8. Переименуйте свой блок Digital Filter Design - Lowpass.

Блок Создание цифровых фильтров теперь представляет фильтр lowpass с структурой Direct-Form конечной импульсной характеристики Transposed. Фильтр пропускает все частоты до 20% частоты Найквиста (половина частоты дискретизации) и останавливает частоты, большие или равные 50% частоты Найквиста, заданные параметрами wpass и wstop. В следующей теме, «Создание фильтра Highpass в Simulink», вы используете блок Digital Filter Design для создания фильтра Highpass. Для получения дополнительной информации о реализации предварительно спроектированного фильтра, смотрите Реализации Цифрового Фильтра.

Создайте фильтр Highpass в Simulink

В этой теме вы создаете фильтр highpass с использованием блока Создание Цифровых Фильтров:

  1. Если модель, созданная вами в Create a Lowpass Filter in Simulink, не открыта на рабочем столе, можно открыть эквивалентную модель, введя

    ex_filter_ex4  

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

  2. Из библиотеки DSP System Toolbox Filtering, а затем из библиотеки Filter Implementations, щелкните - и - перетащите второй блок Создание Цифровых Фильтров в модель.

  3. Дважды кликните блок Создание Цифровых Фильтров.

    Откроется приложение filter designer.

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

    • Response Type = Highpass

    • Design Method = FIR, Equiripple

    • Filter Order = Minimum order

    • Units = Normalized (0 to 1)

    • wstop = 0.2

    • wpass = 0.5

  5. Нажмите кнопку Design Filter в нижней части приложения, чтобы спроектировать фильтр.

    Ваш блок Создание Цифровых Фильтров теперь представляет фильтр с заданными параметрами.

  6. В Edit меню выберите Convert Structure.

    Откроется диалоговое окно Convert Structure.

  7. Выберите Direct-Form FIR Transposed и нажмите OK.

  8. Переименуйте свой блок Digital Filter Design - Highpass .

Теперь блок реализует фильтр высокой частоты с прямой формой структуры транспонирования конечной импульсной характеристики. Фильтр пропускает все частоты, большие или равные 50% частоты Найквиста (половина частоты дискретизации), и останавливает частоты, меньшие или равные 20% частоты Найквиста, заданные параметрами wpass и wstop. Этот высокочастотный фильтр противоположен lowpass, описанному в разделе «Создание Lowpass в Simulink». Высокочастотный фильтр пропускает частоты, остановленные lowpass, и останавливает частоты, переданные lowpass. В следующей теме, Filter High-Frequency Noise in Simulink, вы используете эти блоки Digital Filter Design, чтобы создать модель, способную удалить высокую частоту шум из сигнала. Для получения дополнительной информации о реализации предварительно спроектированного фильтра, смотрите Реализации Цифрового Фильтра.

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

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

  1. Если модель, созданная вами в Create a Highpass Filter in Simulink, не открыта на рабочем столе, можно открыть эквивалентную модель, введя

    ex_filter_ex5 

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

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

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

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

    1

    Random Source

    Источники

    1

    Sine Wave

    Источники

    1

    Time Scope

    Сливы

    1

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

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

    БлокУстановка параметров
    Добавить
    • Icon shape = rectangular

    • List of signs = ++

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

    • Minimum = 0

    • Maximum = 4

    • Sample mode = Discrete

    • Sample time = 1/1000

    • Samples per frame = 50

    Sine wave
    • Frequency (Hz) = 75

    • Sample time = 1/1000

    • Samples per frame = 50

    Time Scope
    • File> Number of Input Ports> 3

    • View> Configuration Properties

      • Откройте вкладку Time и установите Time span = One frame period

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

  5. На вкладке Modeling нажмите Model Settings. Откроется диалоговое окно Configuration Parameters.

  6. На панели Solver установите параметры следующим образом и нажмите OK:

    • Start time = 0

    • Stop time = 5

    • Type = Fixed-step

    • Solver = Discrete (no continuous states)

  7. На вкладке Simulation выберите Run.

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

  8. После завершения симуляции выберите View > Legend из меню Time Scope. Легенда появится в окне Time Scope. Вы можете кликнуть-и-перетащить его в любое место на дисплее возможностей отображения. Чтобы изменить имена каналов, дважды кликните внутри легенды и замените имена каналов по умолчанию следующими:

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

    • Создание цифровых фильтров - Lowpass = Filtered Noisy Sine Wave

    • Sine wave = Original Sine Wave

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

  9. В окне Time Scope выберите View > Style и установите следующее:

    СигналЛинияМаркерЦвет
    Шумный Sine wave - NoneBlack
    Отфильтрованный шумный Sine wave - diamondRed
    Исходный Sine wave None *Blue
  10. Теперь отображение Time Scope должно выглядеть следующим образом:

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

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