LMS Update

Оцените веса адаптивного фильтра LMS

  • Библиотека:
  • DSP System Toolbox/Фильтрация/Адаптивные фильтры

  • LMS Update block

Описание

Блок LMS Update оценивает веса адаптивного фильтра LMS. Блок принимает данные и ошибку как входы и вычисляет веса фильтров на основе алгоритма, который выбирает блок. Для получения дополнительной информации об алгоритмах см. «Алгоритмы».

Можно использовать этот блок для вычисления веса адаптивного фильтра в приложениях, таких как система идентификации, обратное моделирование и LMS-алгоритмы filtered-x, которые используются в акустическом шумоподавлении. Для получения дополнительной информации см. раздел « Ссылки».

Порты

Вход

расширить все

Вход данных в адаптивный фильтр. Блок принимает входы с одной точностью или с плавающей точкой двойной точности. Все входы должны быть скалярами и должны иметь совпадающий тип данных и точность.

Типы данных: single | double
Поддержка комплексного числа: Да

Ошибка между сигналом выхода и желаемым сигналом.

Типы данных: single | double
Поддержка комплексного числа: Да

Чтобы включить этот порт, установите Step size source равным Input port.

Типы данных: single | double

Когда вход к этому порту не равен нулю, блок обновляет веса фильтра. Когда вход этого порта равен 0, веса фильтров не изменяются.

Типы данных: single | double | Boolean | int16 | int32 | int64 | int8 | uint16 | uint32 | uint64 | uint8

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

Типы данных: single | double | Boolean | int16 | int32 | int64 | int8 | uint16 | uint32 | uint64 | uint8

Выход

расширить все

Длина вектора весов фильтра является значением в параметре Filter length.

Типы данных: single | double

Параметры

расширить все

Блок использует один из перечисленных алгоритмов, чтобы вычислить веса фильтров. Для получения дополнительной информации об алгоритмах см. «Алгоритмы».

Filter length задает длину вектора весов, который блок генерирует через Wts выходной порт.

  • Property - Задайте размер адаптации фильтра, используя параметр Step size (mu).

  • Input port - Передайте размер адаптации фильтра, используя Mu входной порт.

Step size (mu) указывает величину, на которую веса фильтров обновляются в каждой итерации. Выберите оптимальный размер шага, чтобы фильтр был стабильным, а скорость сходимости была оптимальной.

Чтобы включить этот параметр, установите Step size source равным Property.

Этот параметр настраивается. Изменить его значение можно даже во время симуляции.

Leakage factor (0 to 1) препятствует неограниченному росту коэффициентов фильтра путем уменьшения дрейфа коэффициентов от их оптимальных значений. Коэффициент утечки 1.0 указывает на отсутствие утечек. Если вы столкнулись с дрейфом коэффициента, то есть большими колебаниями относительно оптимального решения, уменьшите коэффициент утечки, пока колебание коэффициента не станет маленьким.

Этот параметр настраивается. Изменить его значение можно даже во время симуляции.

Этот параметр задает начальное значение весов фильтра, w(n-1). Блок использует это значение, чтобы вычислить веса, w(n), когда n = 1. Для получения дополнительной информации см. «Алгоритмы».

При установке этого флажка на блоке появляется Adapt входной порт. Когда вход к этому порту больше 0, блок обновляет веса фильтра. Когда вход этого порта меньше или равен 0, веса фильтров не изменяются.

При установке этого флажка на блоке появляется Reset входной порт. Когда вход к этому порту больше 0, блок сбрасывает веса фильтра к их начальным значениям. Когда вход этого порта меньше или равен 0, веса фильтров не изменяются.

  • Code generation

    Симулируйте модель с использованием сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска, но обеспечивает более высокую скорость симуляции, чем Interpreted execution.

  • Interpreted execution

    Симулируйте модель с помощью MATLAB®  интерпретатор. Эта опция сокращает время запуска, но имеет более низкую скорость симуляции, чем Code generation.

Характеристики блоков

Типы данных

double | single

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Алгоритмы

Блок вычисляет оценки веса фильтра, используя w(n)=αw(n1)+f(u(n),e(n),μ).

Функция f(u(n),e(n),μ) определяется согласно LMS-алгоритму, который вы задаете через параметр Algorithm:

  • LMSf(u(n),e(n),μ)=μe(n)u*(n)

  • Normalized LMSf(u(n),e(n),μ)=μe(n)u(n)ε+uH(n)u(n)

    В Normalized LMS алгоритм, ε является небольшой положительной константой, которая преодолевает потенциальную числовую нестабильность в обновлении весов.

    Для входов с двойной точностью с плавающей точкой, ε есть 2.2204460492503131e-016. Для входов с одной точностью с плавающей точкой ε есть 1.192092896e-07. Для входов с фиксированной точкой ε равно 0.

  • Sign-Error LMSf(u(n),e(n),μ)=μзнак(e(n))u*(n)

  • Sign-Data LMSf(u(n),e(n),μ)=μe(n)знак(u(n)), где u (n) реально

  • Sign-Sign LMSf(u(n),e(n),μ)=μзнак(e(n))знак(u(n)), где u (n) реально

В предыдущих уравнениях:

  • n - Текущий индекс времени

  • u (n) - вектор буферизованных входных выборок на шаге n

  • u * (n) - комплексный сопряженный вектор буферизованных входных выборок на шаге n

  • w (n) - вектор оценок веса фильтра на шаге n

  • e(n) - ошибка расчета на шаге n

  • µ - размер шага адаптации

  • α - коэффициент утечки (0 ≤ α ≤ 1)

Ссылки

[1] Мадисетти, Виджай и Дуглас Уильямс. «Введение в адаптивные фильтры». Руководство по цифровой обработке сигналов. Бока Ратон, FL: CRC Press, 1999.

[2] Ахтар, М. Т., М. Абэ, М. Кавамата. «Модифицированные-отфильтрованные-x LMS-алгоритм системы активного контроля шума с улучшенным оперативным моделированием вторичного пути». Симпозиум IEEE по схемам и системам, 2004 год.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2016b