Вычислите выход, ошибку и веса с помощью LMS адаптивный алгоритм
Фильтрация / Адаптивные Фильтры
dspadpt3
Блок LMS Filter может реализовать адаптивный КИХ-фильтр с помощью пяти различных алгоритмов. Блок оценивает, что веса фильтра или коэффициенты, должны были минимизировать ошибку, e(n), между выходным сигналом y(n) и желаемым сигналом, d(n). Соедините сигнал, который вы хотите отфильтровать к Input port. Входной сигнал может быть скаляром или вектор-столбцом. Соедините желаемый сигнал с Требуемым портом. Желаемый сигнал должен иметь совпадающий тип данных, сложность и размерности как входной сигнал. Выходной порт выводит отфильтрованный входной сигнал, который является оценкой желаемого сигнала. Ошибочные выходы порта результат вычитания выходного сигнала желаемого сигнала.
Когда вы выбираете LMS
для параметра Algorithm блок вычисляет веса фильтра с помощью алгоритма наименьшее количество среднего квадратичного (LMS). Этот алгоритм задан следующими уравнениями.
Различные адаптивные алгоритмы фильтра LMS, доступные в этом блоке, заданы как:
LMS:
Нормированный LMS:
В Нормированном LMS, чтобы преодолеть потенциальную числовую нестабильность в обновлении весов, маленькая положительная константа, ε, была добавлена в знаменателе. Для входа с плавающей точкой с двойной точностью ε является 2.2204460492503131e-016. Для входа с плавающей точкой с одинарной точностью ε является 1.192092896e-07. Для входа фиксированной точки ε 0.
Ошибка знака LMS:
Данные знака LMS:
где u (n) действителен.
Знак знака LMS:
где u (n) действителен.
Переменные следующие:
Переменная | Описание |
---|---|
n | Индекс текущего времени |
u (n) | Вектор буферизированных входных выборок на шаге n |
u* (n) | Сопряженное комплексное число вектора буферизированных входных выборок на шаге n |
w (n) | Вектор веса фильтра оценивает на шаге n |
y(n) | Отфильтрованный выход на шаге n |
e(n) | Ошибка оценки на шаге n |
d(n) | Желаемый ответ на шаге n |
µ | Размер шага адаптации |
α | Фактор утечки (0 <α ≤ 1) |
ε | Константа, которая корректирует любую потенциальную числовую нестабильность, которая происходит во время обновления весов. |
Используйте параметр Filter length, чтобы задать длину вектора весов фильтра.
Параметр Step size (mu) соответствует µ в уравнениях. Для сходимости нормированных уравнений LMS, 0 <µ <2. Можно или задать размер шага с помощью входного порта, неродного размера, или путем ввода значения в Параметры блоков: диалоговое окно Фильтра LMS.
Введите начальные веса фильтра w (0) как вектор или скаляр в текстовом поле Initial value of filter weights. При вводе скаляр, блок использует скалярное значение, чтобы создать вектор весов фильтра. Этот вектор имеет длину, равную длине фильтра, и все ее значения равны скалярному значению.
Когда вы устанавливаете флажок Adapt port, порт Adapt появляется на блоке. Когда вход к этому порту больше нуля, блочно-непрерывно обновления веса фильтра. Когда вход к этому порту меньше чем или равен нулю, веса фильтра остаются в своих текущих значениях.
Когда это необходимо, чтобы сбросить значение весов фильтра к их начальным значениям, используйте параметр Reset port. Блок сбрасывает веса фильтра каждый раз, когда событие сброса обнаруживается в порте Reset. Уровень сигнала сброса должен быть тем же уровнем как вход сигнала данных.
Из списка Reset port выберите None
отключить порт Reset. Чтобы включить порт Reset, выберите одно из следования из списка Reset port:
Rising edge
— Инициировал операцию сброса, когда вход Reset выполняет одно из следующих действий:
Повышения от отрицательной величины до положительного значения или нуля
Повышения от нуля до положительного значения, где повышение не является продолжением повышения от отрицательной величины, чтобы обнулить (см. следующую фигуру),
Falling edge
— Инициировал операцию сброса, когда вход Reset выполняет одно из следующих действий:
Падения от положительного значения до отрицательной величины или нуля
Падения от нуля до отрицательной величины, где падение не является продолжением падения от положительного значения, чтобы обнулить (см. следующую фигуру),
Either edge
— Инициировал операцию сброса, когда входом Reset является Rising edge
или Falling edge
(аналогичный описанному выше)
Non-zero sample
— Инициировал операцию сброса в каждом шаге расчета, что вход Reset не является нулем
Установите флажок Output filter weights, чтобы создать порт Wts на блоке. Для каждой итерации блок выводит текущие обновленные веса фильтра от этого порта.
Следующие схемы показывают типы данных, используемые в блоке LMS Filter в сигналах фиксированной точки; таблица суммирует определения переменных, используемых в схемах:
Переменная | Определение |
---|---|
u | Входной вектор |
W | Вектор весов фильтра |
µ | Неродной размер |
e | Ошибка |
Q | Частное, |
Продукт u'u | Тип данных продукта в энергетической схеме вычисления |
Аккумулятор u'u | Тип данных аккумулятора в энергетической схеме вычисления |
Продукт W'u | Тип данных продукта в схеме Свертки |
Аккумулятор W'u | Тип данных аккумулятора в схеме Свертки |
Продукт | Тип данных продукта в продукте схемы размера и ошибки шага |
Продукт | Продукт и тип данных аккумулятора в Весе обновляют схему. 1 |
1The тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.
Можно установить тип данных параметров, весов, продуктов, частного и аккумуляторов в маске блока. Входные параметры фиксированной точки, выходные параметры и параметры маски этого блока должны иметь следующие характеристики:
Входной сигнал и желаемый сигнал должны иметь тот же размер слова, но их дробные длины могут отличаться.
Размер шага и фактор утечки должны иметь тот же размер слова, но их дробные длины могут отличаться.
Выходной сигнал и сигнал ошибки имеют тот же размер слова и ту же дробную длину как желаемый сигнал.
Частное и продукт выход u'u, W'u, , и операции должны иметь тот же размер слова, но их дробные длины могут отличаться.
Тип данных аккумулятора u'u и операций W'u должен иметь тот же размер слова, но их дробные длины могут отличаться.
Выход множителя находится в типе выходных данных продукта, если по крайней мере одни из входных параметров ко множителю действительны. Если оба из входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном выполняемом умножении, смотрите Типы данных Умножения.
Выберите алгоритм раньше вычислял веса фильтра.
Введите длину КИХ-вектора весов фильтра.
Выберите Dialog
ввести значение для размера шага в Параметрах блоков: диалоговое окно Фильтра LMS. Выберите Input port
задавать размер шага с помощью входного порта неродного размера.
Введите размер шага μ. Настраиваемый (Simulink).
Введите фактор утечки, 0 <1 – μα ≤ 1. Настраиваемый (Simulink).
Задайте начальные значения КИХ-весов фильтра.
Установите этот флажок, чтобы включить Адаптировать входной порт.
Установите этот флажок, чтобы включить входной порт Сброса.
Установите этот флажок, чтобы экспортировать веса фильтра от порта Wts.
Задайте округляющийся режим для операций фиксированной точки как одно из следующего:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Для получения дополнительной информации смотрите округление режима.
Когда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate
и wrap
, смотрите режим переполнения для операций фиксированной точки.
Этот параметр отображается, если для параметра Specify step size via вы выбираете Dialog
. Выберите, как вы задаете размер слова и дробная продолжительность фактора утечки и размера шага:
Когда вы выбираете Same word length as first input
, размер слова фактора утечки и соответствия размера шага тот из первого входа с блоком. В этом режиме дробная продолжительность фактора утечки и размера шага автоматически установлена в двоичную точку, только масштабирующуюся, который предоставляет вам лучшую точность, возможную, учитывая значение и размер слова коэффициентов.
Когда вы выбираете Specify word length
, можно ввести размер слова фактора утечки и размера шага в битах. В этом режиме дробная продолжительность фактора утечки и размера шага автоматически установлена в двоичную точку, только масштабирующуюся, который предоставляет вам лучшую точность, возможную, учитывая значение и размер слова коэффициентов.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробная продолжительность фактора утечки и размера шага в битах. Фактор утечки и размер шага должны иметь тот же размер слова, но дробные длины могут отличаться.
Если для параметра Specify step size via вы выбираете Input port
, размер слова фактора утечки совпадает с размером слова входа размера шага в порте размера Шага. Дробная продолжительность фактора утечки автоматически установлена в лучшую точность, возможную на основе размера слова фактора утечки.
Выберите, как вы задаете размер слова и дробную длину весов фильтра блока:
Когда вы выбираете Same as first input
, размер слова и дробная длина весов фильтра совпадают с теми из первого входа с блоком.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину весов фильтра в битах.
Выберите, как вы задаете размер слова и дробную длину u'u, W'u, , , и частное, Q. Здесь, u является входным вектором, W является вектором весов фильтра, μ является размером шага, e является ошибкой, и Q является частным, которое задано как
Когда вы выбираете Same as first input
, размер слова и дробная продолжительность этих количеств совпадает с теми из первого входа с блоком.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробная продолжительность этих количеств в битах. Размер слова количеств должен быть тем же самым, но дробные длины могут отличаться.
Используйте этот параметр, чтобы задать, как требуется определять слово и дробные длины аккумуляторов для операций W'u и u'u.
Этот параметр не используется, чтобы определять слово и дробные длины аккумулятора для операция. Тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.
Смотрите Типы данных с фиксированной точкой и Типы данных Умножения для рисунков, изображающих использование типа данных аккумулятора в этом блоке:
Когда вы выбираете Same as first input
, эти характеристики совпадают с теми из входа с блоком.
Когда вы выбираете Binary point scaling
, можно ввести размер слова и дробную длину аккумуляторов в битах. Размер слова обоих, аккумуляторы должны быть тем же самым, но дробные длины могут отличаться.
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока.
Hayes, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.
Порт | Поддерживаемые типы данных |
---|---|
Входной параметр |
|
Желаемый |
|
Неродной размер |
|
Адаптироваться |
|
Сброс |
|
Вывод |
|
Ошибка |
|
Wts |
|
LMS Update | DSP System Toolbox |
RLS Filter | DSP System Toolbox |
Block LMS Filter | DSP System Toolbox |
Fast Block LMS Filter | DSP System Toolbox |
Смотрите Подавление помех в Simulink Используя Нормированный Адаптивный Фильтр LMS для сопутствующей информации.