Адаптивные фильтры в Simulink

Создайте акустическую среду в Simulink

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

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

  1. В командной строке MATLAB® введите dspanc.

    DSP System Toolbox™ Акустический пример Подавления помех открывается.

  2. Скопируйте и вставьте подсистему под названием Акустическая Среда в новую модель.

  3. Дважды кликните Акустическую подсистему Среды.

    Гауссов шум используется, чтобы создать сигнал, отправленный во Внешний выходной порт Микрометра. Если вход к порту Filter изменяется с 0 до 1, блок Digital Filter изменяется с фильтра lowpass на полосовой фильтр. Отфильтрованный шумовой вывод от блока Digital Filter добавляется, чтобы сигнализировать, чтобы прибытие из файла .wav произвело сигнал, отправленный в выходной порт Микрометра Пилота.

Вы теперь создали акустическую среду. В следующих темах вы используете эту акустическую среду, чтобы произвести модель, способную к адаптивному подавлению помех.

Настройка фильтра LMS для адаптивного подавления помех

В предыдущей теме Создайте Акустическую Среду в Simulink, вы создали систему, которая произвела два выходных сигнала. Вывод сигнала в порте Exterior Mic состоит из белого шума. Вывод сигнала в порте Pilot's Mic состоит из цветного шума, добавленного к сигналу из файла .wav. В этой теме вы создаете адаптивный фильтр, чтобы удалить шум из сигнала Микрометра Пилота. Эта тема принимает, что вы работаете над операционной системой Windows®:

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

    ex_adapt1_audio

    в подсказке команды MATLAB.

  2. От библиотеки DSP System Toolbox Filtering, и затем от библиотеки Adaptive Filters, перетаскивают блок LMS Filter в модель, которая содержит Акустическую подсистему Среды.

  3. Дважды кликните блок LMS Filter. Установите параметры блоков можно следующим образом, и затем нажмите OK:

    • Algorithm = Normalized LMS

    • Filter length = 40

    • Step size (mu) = 0.002

    • Leakage factor (0 to 1) = 1

    Блок использует нормированный LMS-алгоритм, чтобы вычислить сорок коэффициентов фильтра. Установка параметра Leakage factor (0 to 1) на 1 означает, что текущие содействующие значения фильтра зависят от начальных условий фильтра и всех предыдущих входных значений.

  4. Перетащите следующие блоки в свою модель.

    БлокБиблиотекаКоличество

    Постоянный

    Simulink®/Sources

    2

    Ручной переключатель

    Маршрутизация Simulink/Сигнала

    1

    Терминатор

    Simulink/Приемники

    1

    Субдискретизировать

    Операции сигнала

    1

    Средство записи аудио устройства

    Приемники

    1

    Осциллограф водопада

    Приемники

    1

  5. Соедините блоки так, чтобы ваша модель напомнила следующую фигуру.

  6. Дважды кликните блок Constant. Установите параметр Constant value на 0 и затем нажмите OK.

  7. Дважды кликните блок Downsample. Установите параметр Downsample factor, K на 32. Нажмите OK.

    Веса фильтра обновляются так часто, что существует очень мало изменения от одного обновления до следующего. Чтобы видеть более значимое изменение, необходимо субдискретизировать вывод от порта Wts.

  8. Дважды кликните блок Waterfall Scope. Окно scope Waterfall открывается.

  9. Нажмите кнопку параметров Scope.

    Окно Parameters открывается.

  10. Кликните по вкладке Axes. Установите параметры можно следующим образом:

    • Y Min = -0.188

    • Y Max = 0.179

  11. Кликните по вкладке Data history. Установите параметры можно следующим образом:

    • History traces = 50

    • Data logging = All visible

  12. Закройте окно Parameters, оставив все другие параметры в их значениях по умолчанию.

    Вы можете должны быть настроить оси в окне scope Waterfall в порядке просмотреть графики.

  13. Нажмите кнопку Fit to view в окне scope Waterfall. Затем перетащите оси, пока они не напомнят следующую фигуру.

  14. В окне модели, из меню Simulation, выбирают Model Configuration Parameters. В панели Select нажмите Solver. Установите параметры можно следующим образом, и затем нажмите OK:

    • Stop time = inf

    • Type = Fixed-step

    • Solver = Discrete (no continuous states)

  15. Запустите симуляцию и просмотрите результаты в окне scope Waterfall. Можно также слушать симуляцию с помощью динамиков, присоединенных к компьютеру.

  16. Экспериментируйте с изменением Ручного Переключателя так, чтобы вход к Акустической подсистеме Среды был или 0 или 1.

    Когда значение 0, Гауссов шум в сигнале фильтруется фильтром lowpass. Когда значение равняется 1, шум фильтруется полосовым фильтром. Адаптивный фильтр может удалить шум в обоих случаях.

Вы теперь создали модель, способную к адаптивному подавлению помех. Адаптивный фильтр в вашей модели может отфильтровать и низкочастотный шум и шум в частотном диапазоне. В следующей теме Измените Адаптивные Параметры Фильтра Во время Симуляции модели, вы изменяете блок LMS Filter и изменяете его параметры во время симуляции.

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

В предыдущей теме, Настройке Фильтра LMS для Адаптивного Подавления помех, вы создали адаптивный фильтр и использовали его, чтобы удалить шум, сгенерированный Акустической подсистемой Среды. В этой теме вы изменяете адаптивный фильтр и настраиваете его параметры во время симуляции. Эта тема принимает, что вы работаете над операционной системой Windows:

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

    ex_adapt2_audio 

    в подсказке команды MATLAB.

  2. Дважды кликните блок фильтра LMS. Установите параметры блоков можно следующим образом, и затем нажмите OK:

    • Specify step size via = Input port

    • Initial value of filter weights = 0

    • Установите флажок Adapt port.

    • Reset port = Non-zero sample

    Диалоговое окно Block Parameters: LMS Filter должно теперь выглядеть подобным следующей фигуре.

    Неродной размер, Адаптируйтесь, и порты Reset появляются на блоке LMS Filter.

  3. Перетащите следующие блоки в свою модель.

    БлокБиблиотекаКоличество

    Постоянный

    Simulink/Источники

    6

    Ручной переключатель

    Маршрутизация Simulink/Сигнала

    3

  4. Соедините блоки как показано в следующей фигуре.

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

    • Constant value = 0.002

    • Установите флажок Interpret vector parameters as 1-D.

    • Sample time (-1 for inherited) = inf

    • Output data type mode = Inherit via back propagation

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

    • Constant value = 0.04

    • Установите флажок Interpret vector parameters as 1-D.

    • Sample time (-1 for inherited) = inf

    • Output data type mode = Inherit via back propagation

  7. Дважды кликните блок Constant4. Установите параметр Constant value на 0 и затем нажмите OK.

  8. Дважды кликните блок Constant6. Установите параметр Constant value на 0 и затем нажмите OK.

  9. В окне модели, из меню Display, точки к Signals & Ports, и выбирают Wide Nonscalar Lines и Signal Dimensions.

  10. Дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt равнялся 1.

  11. Запустите симуляцию и просмотрите результаты в окне scope Waterfall. Можно также слушать симуляцию с помощью динамиков, присоединенных к компьютеру.

  12. Дважды кликните Ручной блок switch так, чтобы вход к Акустической подсистеме Среды равнялся 1. Затем дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt к 0.

    Веса фильтра, отображенные в окне scope Waterfall, остаются постоянными. Когда вход к порту Adapt 0, веса фильтра не обновляются.

  13. Дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt равнялся 1.

    Блок LMS Filter обновляет коэффициенты.

  14. Соедините блок Manual Switch1 с блоком Constant, который представляет 0.002. Затем измените вход на Акустическую подсистему Среды. Повторите эту процедуру с блоком Constant, который представляет 0.04.

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

  15. Дважды кликните блок Manual Switch3 так, чтобы вход к порту Reset равнялся 1.

    Блок сбрасывает веса фильтра к их начальным значениям. В диалоговом окне Block Parameters: LMS Filter, из списка Reset port, вы выбрали Non-zero sample. Это означает, что любой ненулевой вход к порту Reset инициировал операцию сброса.

Вы теперь экспериментировали с адаптивным подавлением помех с помощью блока LMS Filter. Вы настроили параметры своего адаптивного фильтра и просмотрели эффекты ваших изменений, в то время как модель запускалась.

Для получения дополнительной информации об адаптивных фильтрах, смотрите следующие страницы с описанием блока:

Адаптивные примеры фильтрации

Программное обеспечение DSP System Toolbox обеспечивает набор адаптивных примеров фильтрации, которые иллюстрируют типовые приложения адаптивных блоков фильтрации, перечисленных в следующей таблице.

Адаптивные примеры фильтрацииКоманды для открытия примеров в MATLAB

LMS адаптивная коррекция

lmsadeq

LMS адаптивная оценка с временной задержкой

lmsadtde

Неустановившаяся оценка канала

dspchanest

RLS адаптивное подавление помех

rlsdemo

Ссылки

[1] Hayes, Монсон Х., статистическая цифровая обработка сигналов и Modeling, John Wiley & Sons, 1996, 493–552.

[2] Haykin, Саймон, адаптивная теория фильтра, Prentice-Hall, Inc., 1996