Адаптивные фильтры являются фильтрами, коэффициенты которых или веса изменяются в зависимости от времени, чтобы адаптироваться к статистике сигнала. Они используются во множестве полей включая коммуникации, средства управления, радар, гидролокатор, сейсмологию и биоинженерию.
В этой теме вы изучаете, как создать акустическую среду, которая симулирует и белый шум и окрашенный шум, добавленный к входному сигналу. Вы дальнейшее использование эта среда, чтобы создать модель, способную к адаптивному подавлению помех с помощью адаптивной фильтрации:
В MATLAB® командная строка, введите dspanc
.
DSP System Toolbox™ Акустический пример Подавления помех открывается.
Скопируйте и вставьте подсистему под названием Акустическая Среда в новую модель.
Дважды кликните Акустическую подсистему Среды.
Гауссов шум используется, чтобы создать сигнал, отправленный во Внешний выходной порт Микрометра. Если вход к порту Filter изменяется с 0 до 1, блок Digital Filter изменяется с фильтра lowpass на полосовой фильтр. Отфильтрованный шумовой выход от блока Digital Filter добавляется, чтобы сигнализировать о прибытии из .wav
файл, чтобы произвести сигнал, отправленный в выходной порт Микрометра Пилота.
Вы теперь создали акустическую среду. В следующих темах вы используете эту акустическую среду, чтобы произвести модель, способную к адаптивному подавлению помех.
В предыдущей теме Создайте Акустическую Среду в Simulink, вы создали систему, которая произвела два выходных сигнала. Выход сигнала в порте Exterior Mic состоит из белого шума. Выход сигнала в порте Pilot's Mic состоит из цветного шума, добавленного к сигналу от .wav
файл. В этой теме вы создаете адаптивный фильтр, чтобы удалить шум из сигнала Микрометра Пилота. Эта тема принимает, что вы работаете над Windows® операционная система:
Если модель, в которой вы создали, Создает Акустическую Среду в Simulink, не открыто на вашем рабочем столе, можно открыть эквивалентную модель путем ввода
в командной строке MATLAB.
От библиотеки DSP System Toolbox Filtering, и затем от библиотеки Adaptive Filters, перетаскивают блок LMS Filter в модель, которая содержит Акустическую подсистему Среды.
Дважды кликните блок 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
средние значения, что текущие содействующие значения фильтра зависят от начальных условий фильтра и всех предыдущих входных значений.
Перетащите следующие блоки в свою модель.
Блок | Библиотека | Количество |
---|---|---|
Постоянный | Simulink®/ Источники | 2 |
Ручной переключатель | Маршрутизация Simulink/Сигнала | 1 |
Терминатор | Simulink/Приемники | 1 |
Downsample | Операции сигнала | 1 |
Средство записи аудио устройства | Приемники | 1 |
Осциллограф водопада | Приемники | 1 |
Соедините блоки так, чтобы ваша модель напомнила следующую фигуру.
Дважды кликните блок Constant. Установите параметр Constant value на 0
и затем нажмите OK.
Дважды кликните блок Downsample. Установите параметр Downsample factor, K на 32
. Нажмите OK.
Веса фильтра обновляются так часто, что существует очень мало изменения от одного обновления до следующего. Чтобы видеть более значимое изменение, необходимо проредить выход от порта Wts.
Дважды кликните блок Waterfall Scope. Окно scope Waterfall открывается.
Нажмите кнопку параметров Scope.
Окно Parameters открывается.
Кликните по вкладке Axes. Установите параметры можно следующим образом:
Y Min = -0.188
Y Max = 0.179
Кликните по вкладке Data history. Установите параметры можно следующим образом:
History traces = 50
Data logging = All visible
Закройте окно Parameters, оставив все другие параметры в их значениях по умолчанию.
Вы можете должны быть настроить оси в окне scope Waterfall для того, чтобы просмотреть графики.
Нажмите кнопку Fit to view в окне scope Waterfall. Затем перетащите оси, пока они не напомнят следующую фигуру.
Во вкладке Modeling нажмите Model Settings. В панели Solver, установленной параметры можно следующим образом, и затем, нажимают OK:
Stop time = inf
Type = Fixed-step
Solver = Discrete (no continuous states)
Запустите симуляцию и просмотрите результаты в окне scope Waterfall. Можно также слушать симуляцию с помощью динамиков, присоединенных к компьютеру.
Экспериментируйте с изменением Ручного Переключателя так, чтобы вход к Акустической подсистеме Среды был или 0 или 1.
Когда значение 0, Гауссов шум в сигнале фильтруется фильтром lowpass. Когда значение равняется 1, шум фильтруется полосовым фильтром. Адаптивный фильтр может удалить шум в обоих случаях.
Вы теперь создали модель, способную к адаптивному подавлению помех. Адаптивный фильтр в вашей модели может отфильтровать и низкочастотный шум и шум в частотном диапазоне. В следующей теме Измените Адаптивные Параметры Фильтра Во время Симуляции модели, вы изменяете блок LMS Filter и изменяете его параметры в процессе моделирования.
В предыдущей теме, Настройке Фильтра LMS для Адаптивного Подавления помех, вы создали адаптивный фильтр и использовали его, чтобы удалить шум, сгенерированный Акустической подсистемой Среды. В этой теме вы изменяете адаптивный фильтр и настраиваете его параметры в процессе моделирования. Эта тема принимает, что вы работаете над операционной системой Windows:
Если модель, в которой вы создали, Создает Акустическую Среду в Simulink, не открыто на вашем рабочем столе, можно открыть эквивалентную модель путем ввода
ex_adapt2_audio
в командной строке MATLAB.
Дважды кликните блок фильтра 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.
Перетащите следующие блоки в свою модель.
Блок | Библиотека | Количество |
---|---|---|
Постоянный | Simulink/Источники | 6 |
Ручной переключатель | Маршрутизация Simulink/Сигнала | 3 |
Соедините блоки как показано в следующем рисунке.
Дважды кликните блок 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
Дважды кликните блок 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
Дважды кликните блок Constant4. Установите параметр Constant value на 0
и затем нажмите OK.
Дважды кликните блок Constant6. Установите параметр Constant value на 0
и затем нажмите OK.
Во вкладке Debug выберите Information Overlays> Nonscalar Signals и Signal Dimensions.
Дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt равнялся 1.
Запустите симуляцию и просмотрите результаты в окне scope Waterfall. Можно также слушать симуляцию с помощью динамиков, присоединенных к компьютеру.
Дважды кликните Ручной блок switch так, чтобы вход к Акустической подсистеме Среды равнялся 1. Затем дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt к 0.
Веса фильтра, отображенные в окне scope Waterfall, остаются постоянными. Когда вход к порту Adapt 0, веса фильтра не обновляются.
Дважды кликните Руководство Switch2 так, чтобы вход к порту Adapt равнялся 1.
Блок LMS Filter обновляет коэффициенты.
Соедините блок Manual Switch1 с блоком Constant, который представляет 0.002. Затем измените вход в Акустическую подсистему Среды. Повторите эту процедуру с блоком Constant, который представляет 0.04.
Вы видите, что система достигает устойчивого состояния быстрее, когда размер шага больше.
Дважды кликните блок Manual Switch3 так, чтобы вход к порту Reset равнялся 1.
Блок сбрасывает веса фильтра к их начальным значениям. В диалоговом окне Block Parameters: LMS Filter, из списка Reset port, вы выбрали Non-zero sample
. Это означает, что любой ненулевой вход к порту Reset инициировал операцию сброса.
Вы теперь экспериментировали с адаптивным подавлением помех с помощью блока LMS Filter. Вы настроили параметры своего адаптивного фильтра и просмотрели эффекты ваших изменений, в то время как модель запускалась.
Для получения дополнительной информации об адаптивных фильтрах, смотрите следующие страницы с описанием блока:
[1] Hayes, Монсон Х., Статистическая Цифровая обработка сигналов и Моделирование. Хобокен, NJ: John Wiley & Sons, 1996, pp.493–552.
[2] Haykin, Саймон, адаптивная теория фильтра. Верхний Сэддл-Ривер, NJ: Prentice-Hall, Inc., 1996.