Вычислите выход, ошибку и веса, используя адаптивный алгоритм LMS
Фильтрация/адаптивность фильтров
dspadpt3
Блок Block LMS Filter реализует адаптивный фильтр с наименьшим средним квадратом (LMS), где адаптация весов фильтров происходит один раз для каждого блока выборок. Блок оценивает веса фильтра, или коэффициенты, необходимые для минимизации ошибки, e (n), между выходным сигналом, y (n), и желаемым сигналом, d (n). Подключите сигнал, который вы хотите фильтровать, к Input port. Входной сигнал может быть скаляром или вектором-столбцом. Соедините сигнал, который вы хотите смоделировать, с Desired
порт. Требуемый сигнал должен иметь совпадающий тип данных, сложность и размерности, что и входной сигнал. The Output
порт выводит отфильтрованный входной сигнал. The Error
порт выводит результат вычитания сигнала выхода из требуемого сигнала.
Блок вычисляет веса фильтров с помощью алгоритма адаптивного фильтра Block LMS. Этот алгоритм определяется следующими уравнениями.
Функция обновления веса для алгоритма адаптивного фильтра Block LMS задана как
Переменные следующие.
Переменная | Описание |
---|---|
n | Текущий индекс времени |
i | Переменная итерации в каждом блоке, |
k | Номер блока |
N | Размер блока |
u (n) | Вектор буферизованных входных выборок на шаге n |
w (n) | Вектор оценок отвода фильтра на шаге n |
y (<reservedrangesplaceholder0>) | Отфильтрованный выход на шаге n |
e (n) | Ошибка расчета в момент n |
d (<reservedrangesplaceholder0>) | Необходимый ответ во время n |
μ | Размер шага адаптации |
Используйте параметр Filter length, чтобы задать длину вектора весов фильтра.
Параметр Block size определяет, сколько выборок входного сигнала получено до обновления весов фильтра. Количество строк во входе должно быть целым числом, кратным параметру Block size.
Параметру Step-size (mu) адаптации соответствует w в уравнениях. Можно либо задать размер шага с помощью порта входа, Step-size, либо ввести значение в диалоговом окне Параметров блоков: Block LMS Filter.
Используйте параметр Leakage factor (0 to 1), чтобы задать коэффициент утечки, , в утечечном LMS-алгоритме, показанном ниже.
Введите начальные веса фильтра в виде вектора или скаляра в Initial value of filter weights текстовое поле. Когда вы вводите скаляр, блок использует скалярное значение, чтобы создать вектор весов фильтра. Этот вектор имеет длину, равную длине фильтра, и все его значения равны скалярному значению
Когда вы устанавливаете флажок Adapt port, Adapt
порт появляется на блоке. Когда вход к этому порту больше нуля, блок постоянно обновляет веса фильтра. Когда вход этого порта равен нулю, веса фильтров остаются на своих текущих значениях.
Когда необходимо сбросить значение весов фильтра до их начальных значений, используйте параметр Reset input. Блок сбрасывает веса фильтра всякий раз, когда событие сброса обнаруживается в порту сброса. Скорость сигнала сброса должна быть такой же скоростью, как и входной сигнал данных.
Из списка Reset input выберите None
чтобы отключить порт сброса. Чтобы включить порт сброса, выберите один из следующих вариантов из списка Reset input:
Rising edge
- Запускает операцию сброса, когда вход Reset делает одно из следующего:
Повышается с отрицательного значения до положительного значения или нуля
Поднимается с нуля до положительного значения, где подъем не является продолжением подъёма с отрицательного значения до нуля (см. следующий рисунок).
Falling edge
- Запускает операцию сброса, когда вход Reset делает одно из следующего:
Падает от положительного значения до отрицательного значения или нуля
Падает с нуля до отрицательного значения, где падение не является продолжением падения с положительного значения до нуля (см. следующий рисунок)
Either edge
- Запускает операцию сброса, когда вход Reset является Rising edge
или Falling edge
(как описано выше)
Non-zero sample
- Запускает операцию сброса в каждый шаг расчета, когда вход сброса не равен нулю
Установите флажок Output filter weights, чтобы создать Wts
порт на блоке. Для каждой итерации блок выводит текущие обновленные веса фильтров из этого порта.
Введите длину вектора весов конечных импульсных характеристик.
Введите количество выборок, которые необходимо получить перед обновлением весов фильтра. Количество строк во входе должно быть целым числом, кратным Block size.
Выберите Dialog
для ввода значения mu в диалоговом окне Параметров блоков: LMS Filter. Выберите Input port
для определения mu с помощью входного порта Step-size.
Введите размер шага. Настраиваемый (Simulink).
Введите коэффициент утечки, . Настраиваемый (Simulink).
Задайте начальные значения весов конечной импульсной характеристики фильтра.
Установите этот флажок, чтобы включить входной порт Adapt.
Установите этот флажок, чтобы включить входной порт сброса.
Установите этот флажок, чтобы экспортировать веса фильтров из порта Wts.
Хейс, М. Х. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.
Порт | Поддерживаемые типы данных |
---|---|
Вход |
|
Желаемый |
|
Размер шага |
|
Приспособиться |
|
Сброс |
|
Выход |
|
Ошибка |
|
Wts |
|
Фильтр Fast Block LMS | DSP System Toolbox |
Адаптивный фильтр Калмана (устаревший) | DSP System Toolbox |
Фильтр LMS | DSP System Toolbox |
RLS-фильтр | DSP System Toolbox |
Смотрите Шумоподавление в Simulink с использованием нормализованного адаптивного фильтра LMS для получения соответствующей информации.