Отфильтруйте мастер реализации

Обзор мастера реализации фильтра

Мастер Реализации Фильтра является другим блоком DSP System Toolbox™, который может использоваться к разработке и реализации цифровые фильтры. Можно использовать этот инструмент, чтобы отфильтровать одноканальные сигналы или фиксированной точки с плавающей точкой. Как блок Digital Filter Design, дважды кликая блок Filter Realization Wizard открывает разработчика фильтра. В отличие от блока Digital Filter Design, Мастер Реализации Фильтра запускает разработчика фильтра с выбранной панели Realize Model. Эта панель оптимизирована для использования с программным обеспечением DSP System Toolbox.

Для получения дополнительной информации смотрите страницу с описанием блока Filter Realization Wizard. Для получения информации о выборе между блоком Digital Filter Design и Мастером Реализации Фильтра, смотрите, Выбирают Filter Design Block.

Разработка и реализация фиксированная точка просачивается Simulink

В этом разделе пример проводит вас по созданию фильтра фиксированной точки с Мастером Реализации Фильтра. Вы будете использовать Мастер Реализации Фильтра, чтобы удалить шум из сигнала. Этот пример имеет следующие части:

Часть 1 — создает сигнал с добавленным шумом

В этом разделе примера вы создадите сигнал с добавленным шумом. Позже в примере, вы отфильтруете этот сигнал с фильтром фиксированной точки, что вы разрабатываете с Мастером Реализации Фильтра.

  1. Ввод

    load mtlb
    soundsc(mtlb,Fs)

    в командной строке MATLAB®. Необходимо услышать, что речь говорит “MATLAB”. Это - сигнал, в который вы добавите шум.

  2. Создайте шумовой сигнал путем ввода

    noise = cos(2*pi*3*Fs/8*(0:length(mtlb)-1)/Fs)';

    в командной строке. Можно услышать шумовой сигнал путем ввода

    soundsc(noise,Fs)
  3. Добавьте шум в исходный сигнал путем ввода

    u = mtlb + noise;

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

  4. Масштабируйте сигнал с шумом путем ввода

    u = u/max(abs(u));

    в командной строке. Вы масштабируете сигнал стараться избегать переполнения позже. Можно услышать масштабированный сигнал с шумом путем ввода

    soundsc(u,Fs)
  5. Просмотрите масштабированный сигнал с шумом путем ввода

    spectrogram(u,256,[],[],Fs);colorbar

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

Спектрограмма появляется можно следующим образом.

В спектрограмме вы видите шумовой сигнал как строку на уровне приблизительно 2 800 Гц, которая равна 3*Fs/8.

Часть 2 — создает фильтр фиксированной точки с мастером реализации фильтра

Затем вы создадите фильтр фиксированной точки с помощью Мастера Реализации Фильтра. Вы создадите фильтр, который уменьшает эффекты шума на сигнале.

  1. Откройте новую модель Simulink® и перетащите блок Filter Realization Wizard от библиотеки Filtering / Filter Implementations в модель.

    Примечание

    Вы не должны помещать блок Filter Realization Wizard в модель в порядке использовать его. Можно открыть приложение из библиотеки. Однако в целях этого примера, мы сохраним блок Filter Realization Wizard в модели.

  2. Дважды кликните блок Filter Realization Wizard в своей модели. Панель Realize Model разработчика фильтра появляется.

  3. Нажмите кнопку Design Filter () на левой нижней части разработчика фильтра. Это выдвигает панель Design filter инструмента.

  4. Установите следующие поля в панели Design filter:

    • Установите Design Method на IIR -- Constrained Least Pth-norm

    • Установите Fs на Fs

    • Установите Fpass на 0.2*Fs

    • Установите Fstop на 0.25*Fs

    • Установите Max pole radius на 0.8

    • Нажмите кнопку Design Filter

    Панель Design filter должна теперь появиться можно следующим образом.

  5. Нажмите кнопку Set quantization parameters на левой нижней части разработчика фильтра (). Это выдвигает панель Set quantization parameters инструмента.

  6. Установите следующие поля в панели Set quantization parameters:

    • Выберите Fixed-point для параметра Filter arithmetic.

    • Убедитесь, что флажок Best precision fraction lengths устанавливается на панели Coefficients.

    Панель Set quantization parameters должна появиться можно следующим образом.

  7. Нажмите кнопку Realize Model на левой стороне разработчика фильтра (). Это выдвигает панель Realize Model инструмента.

  8. Установите флажок Build model using basic elements, затем нажмите кнопку Realize Model на нижней части разработчика фильтра. Блок подсистемы для нового фильтра появляется в вашей модели.

    Примечание

    Вы не должны сохранять блок Filter Realization Wizard в той же модели как сгенерированный блок Filter. Однако для этого примера, мы сохраним блоки в той же модели.

  9. Дважды кликните блок подсистемы Filter в своей модели, чтобы просмотреть реализацию фильтра.

Часть 3 — создает модель, чтобы отфильтровать сигнал

В этом разделе примера вы отфильтруете шум от сигнала в вашей модели Simulink.

  1. Соедините блок Signal From Workspace от библиотеки Sources до входного порта вашего блока фильтра.

  2. Соедините блок To Workspace от библиотеки Sinks до выходного порта вашего блока фильтра. Ваши блоки должны теперь быть соединены можно следующим образом.

  3. Откройте диалоговое окно блока Signal From Workspace и установите параметр Signal на u. Нажмите OK, чтобы сохранить ваши изменения и закрыть диалоговое окно.

  4. Откройте диалоговое окно Model Configuration Parameters из меню Simulation модели. В панели Solver диалогового окна, набор следующие поля:

    • Stop time = length(u)-1

    • Type = Fixed-step

    Нажмите OK, чтобы сохранить ваши изменения и закрыть диалоговое окно.

  5. Запустите модель.

  6. Из меню Display модели выберите Signals & Ports> Port Data Types. Можно теперь видеть, что вход к блоку Filter является сигналом типа, double и вывод блока Filter имеют тип данных sfix16_En11.

Часть 4 — исследует результаты фильтрации

Теперь можно слушать и посмотреть на результаты фиксированной точки, фильтруют вас разработанный и реализованный.

  1. Ввод

    soundsc(yout,Fs)

    в командной строке, чтобы услышать вывод фильтра. Необходимо услышать, что речь говорит “MATLAB”. Шумовой фрагмент сигнала должен быть близко к неслышимому.

  2. Ввод

    figure
    spectrogram(yout,256,[],[],Fs);colorbar

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

От шкал палитры со стороны спектрограмм ввода и вывода вы видите, что шум уменьшался приблизительно на 40 дБ.

Установите структуру фильтра и количество разделов фильтра

Область Current Filter Information разработчика фильтра показывает структуру и количество разделов второго порядка в вашем фильтре.

Измените структуру фильтра и количество разделов фильтра вашего фильтра можно следующим образом:

  • Выберите Convert Structure из меню Edit, чтобы открыть диалоговое окно Convert Structure. Для получения дополнительной информации см. “Преобразование в Новую Структуру” в документации Signal Processing Toolbox™.

  • Выберите Convert to Second-Order Sections из меню Edit, чтобы открыть диалоговое окно Convert to SOS. Для получения дополнительной информации см. “Преобразование в Разделы Второго порядка” в документации Signal Processing Toolbox.

Оптимизируйте структуру фильтра

Мастер Реализации Фильтра может реализовать цифровой фильтр с помощью или цифровых блоков фильтра от библиотеки DSP System Toolbox или путем создания блока (Simulink) подсистемы, который реализует фильтр с помощью Суммы, Усиления и блоков Задержки. Следующая процедура показывает вам, как оптимизировать реализацию фильтра:

  1. Откройте панель Realize Model разработчика фильтра путем нажатия кнопки Realize Model в нижнем левом углу разработчика фильтра.

  2. Выберите желаемую оптимизацию в области Optimization панели Realize Model. См. следующие описания и рисунки каждой опции оптимизации.

  • Optimize for zero gains — Удалите пути нулевого усиления.

  • Optimize for unity gains — Замените усилениями, равными одному с проводом (короткое замыкание).

  • Optimize for negative gains — Замените усилениями, равными -1 с проводом (короткое замыкание), и измените соответствующие суммы на вычитания.

  • Optimize delay chains — Замените любой цепочкой задержки, составленной из единичных задержек n с одной задержкой n.

  • Optimize for unity scale values — Удалите все умножение значения шкалы 1 от структуры фильтра.

Следующая схема иллюстрирует результаты каждой этой оптимизации.