Мастер Реализации Фильтра является другим блоком 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.
В этом разделе пример проводит вас по созданию фильтра фиксированной точки с Мастером Реализации Фильтра. Вы будете использовать Мастер Реализации Фильтра, чтобы удалить шум из сигнала. Этот пример имеет следующие части:
В этом разделе примера вы создадите сигнал с добавленным шумом. Позже в примере, вы отфильтруете этот сигнал с фильтром фиксированной точки, что вы проектируете с Мастером Реализации Фильтра.
Ввод
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
в командной строке.
Спектрограмма появляется следующей.
В спектрограмме вы видите шумовой сигнал как линию на уровне приблизительно 2 800 Гц, которая равна 3*Fs/8
.
Затем вы создадите фильтр фиксированной точки с помощью Мастера Реализации Фильтра. Вы создадите фильтр, который уменьшает эффекты шума на сигнале.
Откройте новую модель Simulink® и перетащите блок Filter Realization Wizard из библиотеки Filtering / Filter Implementations в модель.
Вы не должны помещать блок Filter Realization Wizard в модель для того, чтобы использовать его. Можно открыть приложение из библиотеки. Однако в целях этого примера, мы сохраним блок Filter Realization Wizard в модели.
Дважды кликните блок Filter Realization Wizard в своей модели. Панель Realize Model разработчика фильтра появляется.
Нажмите кнопку Design Filter () на левой нижней части разработчика фильтра. Это выдвигает панель Design filter инструмента.
Установите следующие поля в панели 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 должна теперь появиться следующей.
Нажмите кнопку Set quantization parameters на левой нижней части разработчика фильтра (). Это выдвигает панель Set quantization parameters инструмента.
Установите следующие поля в панели Set quantization parameters:
Выберите Fixed-point
для параметра Filter arithmetic.
Убедитесь, что флажок Best precision fraction lengths является выбранным On панели Coefficients.
Панель Set quantization parameters должна появиться следующей.
Нажмите кнопку Realize Model на левой стороне разработчика фильтра (). Это выдвигает панель Realize Model инструмента.
Установите флажок Build model using basic elements, затем нажмите кнопку Realize Model на нижней части разработчика фильтра. Блок подсистемы для нового фильтра появляется в вашей модели.
Вы не должны сохранять блок Filter Realization Wizard в той же модели как сгенерированный блок Filter. Однако для этого примера, мы сохраним блоки в той же модели.
Дважды кликните Filter
блок подсистемы в вашей модели, чтобы просмотреть реализацию фильтра.
В этом разделе примера вы отфильтруете шум от сигнала в вашей модели Simulink.
Соедините блок Signal From Workspace от библиотеки Sources до входного порта вашего блока фильтра.
Соедините блок To Workspace от библиотеки Sinks до выходного порта вашего блока фильтра. Ваши блоки должны теперь быть соединены можно следующим образом.
Откройте Сигнал От диалогового окна блока Рабочей области и установите параметр Signal на u
. Нажмите OK, чтобы сохранить ваши изменения и закрыть диалоговое окно.
Во вкладке Modeling выберите Model Settings. В панели Solver диалогового окна, набор следующие поля:
Stop time = length(u)-1
Type = Fixed-step
Нажмите OK, чтобы сохранить ваши изменения и закрыть диалоговое окно.
Запустите модель.
Во вкладке Debug выберите Information Overlays> Port Data Type. Можно теперь видеть, что вход с блоком Filter является сигналом типа double
и выход блока Filter имеет тип данных sfix16_En11
.
Теперь можно слушать и посмотреть на результаты фиксированной точки, фильтруют вас спроектированный и реализованный.
Ввод
soundsc(yout,Fs)
в командной строке, чтобы услышать выход фильтра. Необходимо услышать, что речь говорит “MATLAB”. Шумовой фрагмент сигнала должен быть близко к неслышимому.
Ввод
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) подсистемы, который реализует фильтр с помощью Sum, Gain и блоков Delay. Следующая процедура показывает вам, как оптимизировать реализацию фильтра:
Откройте панель Realize Model разработчика фильтра путем нажатия кнопки Realize Model в нижнем левом углу разработчика фильтра.
Выберите желаемую оптимизацию в области 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 от структуры фильтра.
Следующая схема иллюстрирует результаты каждой этой оптимизации.