Мастер реализации фильтра - это еще один блок Toolbox™ системы DSP, который может использоваться для проектирования и реализации цифровых фильтров. Этот инструмент можно использовать для фильтрации одноканальных сигналов с плавающей или фиксированной точкой. Как и блок «Проектирование цифрового фильтра», двойной щелчок по блоку «Мастер реализации фильтра» открывает конструктор фильтров. В отличие от блока «Проектирование цифрового фильтра», мастер реализации фильтра запускает конструктор фильтров с выбранной панелью «Реализация модели». Эта панель оптимизирована для использования с программным обеспечением DSP System Toolbox.
Дополнительные сведения см. на странице ссылки на блок мастера реализации фильтров. Сведения о выборе между блоком «Проектирование цифрового фильтра» и мастером реализации фильтра см. в разделе Выбор блока проектирования фильтра.
В этом разделе учебное пособие содержит инструкции по созданию фильтра с фиксированной точкой с помощью мастера реализации фильтра. Для удаления шума из сигнала используется мастер реализации фильтра. Это учебное пособие состоит из следующих частей:
В этом разделе учебного пособия создается сигнал с добавленным шумом. Далее в учебном пособии этот сигнал фильтруется с помощью фильтра с фиксированной точкой, разработанного с помощью мастера реализации фильтра.
Напечатать
load mtlb soundsc(mtlb,Fs)
в командной строке MATLAB ®. Вы должны услышать голос «MATLAB.» Это сигнал, к которому вы добавите шум.
Создание шумового сигнала путем ввода
noise = cos(2*pi*3*Fs/8*(0:length(mtlb)-1)/Fs)';
в командной строке. Вы можете услышать шумовой сигнал, введя
soundsc(noise,Fs)
Добавление шума к исходному сигналу путем ввода
u = mtlb + noise;
в командной строке.
Масштабирование сигнала по шуму путем ввода
u = u/max(abs(u));
в командной строке. Вы масштабируете сигнал, чтобы избежать переполнения в дальнейшем. Вы можете услышать масштабированный сигнал с шумом, введя
soundsc(u,Fs)
Просмотр масштабированного сигнала с шумом путем ввода
spectrogram(u,256,[],[],Fs);colorbar
в командной строке.
Спектрограмма выглядит следующим образом.

В спектрограмме можно увидеть шумовой сигнал как линию примерно на 2800 Гц, что равно 3*Fs/8.
Далее с помощью мастера реализации фильтров создается фильтр с фиксированной точкой. Вы создадите фильтр, который уменьшит влияние шума на сигнал.
Откройте новую модель Simulink ® и перетащите в модель блок мастера реализации фильтров из библиотеки реализации фильтров/фильтров.
Примечание
Для использования в модели не требуется размещать блок мастера реализации фильтра. Приложение можно открыть в библиотеке. Однако для целей данного учебного пособия в модели будет сохранен блок мастера реализации фильтра.
Дважды щелкните по блоку Мастер реализации фильтра в модели. Появится панель Реализовать модель конструктора фильтров.
Нажмите кнопку Design Filter
() в левом нижнем углу конструктора фильтров. При этом открывается панель «Фильтр проекта» инструмента.
Установите следующие поля на панели «Фильтр проекта»:
Задать для метода проектирования значение IIR -- Constrained Least Pth-norm
Установить Fs в Fs
Установить Fpass в значение 0.2*Fs
Установить Fstop в значение 0.25*Fs
Задать максимальный радиус полюса равным 0.8
Нажмите кнопку «Фильтр проекта»
Теперь панель «Фильтр проекта» должна выглядеть следующим образом.

Нажмите кнопку Set quantization parameters в левом нижнем углу конструктора фильтров
(). Это приводит вперед панель Задать параметры квантования инструмента.
Установите следующие поля на панели Задать параметры квантования:
Выбрать Fixed-point для арифметического параметра Filter.
Убедитесь, что на панели Коэффициенты (Coefficients) установлен флажок Длины дробей наилучшей точности (Best precision fraction lengts).
Панель Задать параметры квантования должна выглядеть следующим образом.

Нажмите кнопку «Реализовать модель» в левой части конструктора фильтров ().
При этом открывается панель «Реализация модели» инструмента.
Установите флажок Построить модель с использованием базовых элементов (Build model using basic elements), а затем нажмите кнопку Реализовать модель (Implement Model) в нижней части конструктора фильтров. В модели появится блок подсистемы для нового фильтра.

Примечание
Не требуется сохранять блок мастера реализации фильтра в той же модели, что и созданный блок фильтра. Однако в данном учебном пособии блоки будут сохранены в одной модели.
Дважды щелкните значок Filter блок подсистемы в модели для просмотра реализации фильтра.
В этом разделе учебного пособия рассматривается фильтрация шума от сигнала в модели Simulink.
Подключите блок «Сигнал из рабочей области» из библиотеки «Источники» к входному порту блока фильтра.
Подключите блок к рабочей области (Simulink) из библиотеки Sinks к выходному порту блока фильтра. Теперь блоки должны быть подключены следующим образом.

Откройте диалоговое окно «Сигнал из блока рабочего пространства» и задайте для параметра «Сигнал» значение u. Нажмите кнопку ОК, чтобы сохранить изменения и закрыть диалоговое окно.
На вкладке Моделирование (Modeling) выберите Параметры модели (Model Settings). На панели «Решатель» диалогового окна задайте следующие поля:
Время остановки = length(u)-1
Тип = Fixed-step
Нажмите кнопку ОК, чтобы сохранить изменения и закрыть диалоговое окно.
Запустите модель.
На вкладке «Отладка» выберите «Информационные наложения» > «Тип данных порта». Теперь можно увидеть, что вход в блок фильтра является сигналом типа double и выходной сигнал блока фильтра имеет тип данных sfix16_En11.

Теперь вы можете слушать и смотреть на результаты фильтра с фиксированной точкой, который вы разработали и внедрили.
Напечатать
soundsc(yout,Fs)
в командной строке для прослушивания выходных данных фильтра. Вы должны услышать голос «MATLAB.» Шумовая часть сигнала должна быть близка к неразборчивой.
Напечатать
figure spectrogram(yout,256,[],[],Fs);colorbar
в командной строке.

Из колонок на стороне входной и выходной спектрограмм видно, что шум уменьшен примерно на 40 дБ.
В области Текущая информация о фильтре (Current Filter Information) конструктора фильтров отображается структура и количество секций второго порядка в фильтре.
Измените структуру фильтра и количество секций фильтра следующим образом:
Выберите команду Преобразовать структуру (Convert Structure) в меню Правка (Edit), чтобы открыть диалоговое окно Преобразовать структуру (Convert Structure). Для получения дополнительной информации см. раздел «Преобразование в новую структуру» в документации по Toolbox™ обработки сигналов.
Выберите пункт Преобразовать в сечения второго порядка (Convert to Second-Order Sections) в меню Править (Edit), чтобы открыть диалоговое окно Преобразовать в SOS (Convert to SOS). Дополнительные сведения см. в разделе «Преобразование в разделы второго порядка» в документации панели инструментов обработки сигналов.
Мастер реализации фильтров может реализовать цифровой фильтр, используя либо цифровые блоки фильтров из библиотеки системных инструментов DSP, либо создав блок подсистемы (Simulink), реализующий фильтр с помощью блоков Sum (Simulink), Gain (Simulink) и Delay. Следующая процедура показывает, как оптимизировать реализацию фильтра:
Откройте панель «Реализовать модель» конструктора фильтров, нажав кнопку «Реализовать модель
» в левом нижнем углу конструктора фильтров.
Выберите необходимые оптимизации в области Оптимизация (Optimization) на панели Реализовать модель (Implement Model). См. следующие описания и иллюстрации каждой опции оптимизации.

Оптимизация для нулевого коэффициента усиления - удаление путей с нулевым коэффициентом усиления.
Оптимизация для единичных коэффициентов усиления - замена коэффициентов усиления, равных единице, проводом (короткое замыкание).
Оптимизировать для отрицательных выигрышей - заменить выигрыши равными -1 проводом (короткое замыкание) и измените соответствующие суммы на вычитания.
Оптимизировать цепочки задержки - заменить любую цепочку задержки, состоящую из n единичных задержек, одной задержкой на n.
Оптимизировать для значений масштаба единицы (Optimize for unity scale values ) - удаление всех умножений значений шкалы на 1 из структуры фильтра.
Следующая диаграмма иллюстрирует результаты каждой из этих оптимизаций.
