LMS Filter

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

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

    Поддержка/фильтрация HDL-файлов DSP System Toolbox

  • LMS Filter block

Описание

Блок LMS Filter может реализовать адаптивный конечная импульсная характеристика с помощью пяти различных алгоритмов. Блок оценивает веса фильтра или коэффициенты, необходимые для минимизации ошибки, e(n), между выходным сигналом y(n) и желаемым сигналом, d(n). Выходом является отфильтрованный входной сигнал, который является оценкой необходимого сигнала. Порт Ошибки выводит результат вычитания сигнала выхода из необходимого сигнала.

При определенных условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерация кода.

Порты

Вход

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

Соедините сигнал, который вы хотите фильтровать, в виде скаляра или вектора-столбца.

Когда вход является фиксированной точкой, он должен быть подписан.

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

Соедините требуемый сигнал, заданный как вектор или матрица. Желаемый сигнал должен иметь совпадающий тип данных, сложность и размерности, что и Input сигнал.

Когда Input является фиксированной точкой, желаемый сигнал должен быть подписанным фиксированной точкой.

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

Введите μ размера шага. Для сходимости нормализованных уравнений LMS 0 < µ < 2. Входной тип должен совпадать с типом Input порт.

Когда Input является фиксированной точкой, размер шага должен быть подписанным фиксированной точкой.

Зависимости

Этот порт появляется только при установке Specify step size via параметр в Input port.

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

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

Зависимости

Этот порт появляется только при установке Adapt port параметр в on.

Типы данных: single | double | int8 | int16 | int32 | Boolean

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

Для сброса типов событий смотрите Reset параметр.

Зависимости

Этот порт появляется только, когда вы устанавливаете параметр Reset port на Rising edge, Falling edge, Either edge, или Non-zero sample.

Типы данных: single | double | int8 | int16 | int32 | Boolean

Выход

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

Выводит отфильтрованный входной сигнал, который является оценкой необходимого сигнала. Это тот же размер и сложность, что и входной сигнал.

Сигнал выхода имеет совпадающий тип данных в качестве необходимого сигнала.

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

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

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

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

Для каждой итерации блок выводит текущие обновленные веса фильтров из этого порта.

Тип данных весов должен совпадать с типом Input порт для сигналов с плавающей точкой. Подчиняется Weights параметр для сигналов с фиксированной точкой.

Зависимости

Этот порт появляется только при установке Output filter weights параметр в On.

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

Параметры

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

Главная вкладка

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

Введите длину вектора весов конечных импульсных характеристик.

  • Dialog -- Задайте размер шага с помощью параметра Step size (mu).

  • Input port -- Задайте размер шага при помощи Step-size порт.

Введите μ размера шага. Для сходимости нормализованных уравнений LMS 0 < µ < 2.

Настраиваемый: Да

Зависимости

Этот параметр появляется только, когда вы устанавливаете Specify step size via параметр в Dialog.

Введите коэффициент утечки 0 < 1 - мкα ≤ 1.

Настраиваемый: Да

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

Установите этот флажок, чтобы включить Adapt входной порт.

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

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

  • Rising edge - Запускает операцию сброса, когда вход Reset делает одно из следующего:

    • Повышается с отрицательного значения до положительного значения или нуля

    • Поднимается с нуля до положительного значения, где подъем не является продолжением подъёма с отрицательного значения до нуля (см. следующий рисунок)

  • Falling edge - Запускает операцию сброса, когда вход Reset делает одно из следующего:

    • Падает от положительного значения до отрицательного значения или нуля

    • Падает с нуля до отрицательного значения, где падение не является продолжением падения с положительного значения до нуля (см. следующий рисунок)

  • Either edge - Запускает операцию сброса, когда вход Reset является Rising edge или Falling edge

  • Non-zero sample - Запускает операцию сброса в каждый шаг расчета, когда вход сброса не равен нулю

Выберите параметр Output filter weights, чтобы экспортировать веса фильтров из Wts порт. Для каждой итерации блок выводит текущие обновленные веса фильтров из этого порта.

Вкладка «Тип данных»

Задайте режим округления для операций с фиксированной точкой как один из следующих:

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

Для получения дополнительной информации смотрите режим округления.

Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate и wrap, см. Режим переполнения для операций с фиксированной точкой.

Выберите, как вы задаете размер слова и длину дроби коэффициента утечки и размер шага:

  • Same word length as first input - Длина слова коэффициента утечки и размер шага совпадают с длиной слова первого входа в блок. В этом режиме длина дроби коэффициента утечки и размера шага автоматически устанавливается на только двоичную точку, которая обеспечивает вам лучшую точность, учитывая значение и размер слова коэффициентов.

  • Specify word length - Вы можете ввести размер слова коэффициента утечки и размер шага, в битах. В этом режиме длина дроби коэффициента утечки и размера шага автоматически устанавливается на только двоичную точку, которая обеспечивает вам лучшую точность, учитывая значение и размер слова коэффициентов.

  • Binary point scaling - Вы можете ввести размер слова и длину дроби коэффициента утечки и размер шага, в битах. Коэффициент утечки и размер шага должны иметь одинаковый размер слова, но длины дробей могут различаться.

Для Specify step size via параметр, если вы выбираете Input port, размер слова коэффициента утечки совпадает с размером слова размера шага, входа в Step-size порт. Длина фракции коэффициента утечки автоматически устанавливается на лучшую точность, основанную на размере слова коэффициента утечки.

Зависимости

Этот параметр видим, только если установить параметр Specify step size via равным Dialog

Выберите, как вы задаете размер слова и длину дроби весов фильтра блока:

  • Same as first input - размер слова и длина дроби весов фильтра совпадают с длинами первых входов блока.

  • Binary point scaling - Вы можете ввести размер слова и длину дроби весов фильтра, в битах.

Выберите, как вы задаете размер слова и длину дроби u 'u, W' u, μe, Qu, и частный, Q. Здесь, u является вектором входа, W является вектором весов фильтра, μ является размером шага, e является ошибкой, и Q является фактором, который определяется как Q=μeu'u

  • Same as first input - размер слова и длина дроби этих величин совпадают с величинами первого входа в блок.

  • Binary point scaling - Вы можете ввести размер слова и длину дроби этих величин, в битах. Размер слова для величин должна быть одинаковой, но длины дробей могут различаться.

Используйте этот параметр, чтобы задать, как вы хотите обозначить слово и длины дробей аккумуляторов для операций u 'u и W' u.

Примечание

Не используйте этот параметр, чтобы обозначить слово и длины дроби аккумулятора для Qu операция. Тип данных аккумулятора для этой величины автоматически устанавливается таким же, как и тип данных продукта. Информация о минимальном, максимальном и переполнении для этого аккумулятора регистрируется как часть информации о продукте. Autoscaling рассматривает этот продукт и аккумулятор как один тип данных.

  • Same as first input - Эти характеристики совпадают с характеристиками входов блока.

  • Binary point scaling - Вы можете ввести размер слова и длину дроби аккумуляторов, в битах. Размер слова обоих аккумуляторов должна быть одинаковой, но длины дробей могут различаться.

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

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

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

Типы данных

double | fixed point | integer | single

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

no

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

no

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

yes

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

no

Подробнее о

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

Ссылки

[1] Хейс, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.

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

.
Представлено до R2006a