Фильтр LMS

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

Библиотека

Фильтрация / Адаптивные Фильтры

dspadpt3

Описание

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

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

y(n)=wT(n1)u(n)e(n)=d(n)y(n)w(n)=αw(n1)+f(u(n),e(n),μ)

Различные адаптивные алгоритмы фильтра LMS, доступные в этом блоке, заданы как:

  • LMS:

    f(u(n),e(n),μ)=μe(n)u*(n)

  • Нормированный LMS:

    f(u(n),e(n),μ)=μe(n)u(n)ε+uH(n)u(n)

    В Нормированном LMS, чтобы преодолеть потенциальную числовую нестабильность в обновлении весов, маленькая положительная константа, ε, была добавлена в знаменателе. Для входа с плавающей точкой с двойной точностью ε является 2.2204460492503131e-016. Для входа с плавающей точкой с одинарной точностью ε является 1.192092896e-07. Для входа фиксированной точки ε 0.

  • Ошибка знака LMS:

    f(u(n),e(n),μ)=μзнак(e(n))u*(n)

  • Данные знака LMS:

    f(u(n),e(n),μ)=μe(n)знак(u(n))

    где u (n) действителен.

  • Знак знака LMS:

    f(u(n),e(n),μ)=μзнак(e(n))знак(u(n))

    где 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

Частное, Q=μeu'u

Продукт u'u

Тип данных продукта в энергетической схеме вычисления

Аккумулятор u'u

Тип данных аккумулятора в энергетической схеме вычисления

Продукт W'u

Тип данных продукта в схеме Свертки

Аккумулятор W'u

Тип данных аккумулятора в схеме Свертки

Продукт μe

Тип данных продукта в продукте схемы размера и ошибки шага

Продукт Qu

Продукт и тип данных аккумулятора в Весе обновляют схему. 1

1The тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.

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

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

  • Размер шага и фактор утечки должны иметь тот же размер слова, но их дробные длины могут отличаться.

  • Выходной сигнал и сигнал ошибки имеют тот же размер слова и ту же дробную длину как желаемый сигнал.

  • Частное и продукт вывод u'u, W'u, μe, и Qu операции должны иметь тот же размер слова, но их дробные длины могут отличаться.

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

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

Диалоговое окно

Основная вкладка

Algorithm

Выберите алгоритм раньше вычислял веса фильтра.

Filter length

Введите длину КИХ-вектора весов фильтра.

Specify step size via

Выберите Dialog, чтобы ввести значение для размера шага в Параметрах блоков: диалоговое окно Фильтра LMS. Выберите Input port, чтобы задать размер шага с помощью входного порта неродного размера.

Step size (mu)

Введите размер шага μ. Настраиваемый (Simulink).

Leakage factor (0 to 1)

Введите фактор утечки, 0 <1 – μα ≤ 1. Настраиваемый (Simulink).

Initial value of filter weights

Задайте начальные значения КИХ-весов фильтра.

Adapt port

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

Reset port

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

Output filter weights

Установите этот флажок, чтобы экспортировать веса фильтра от порта Wts.

Вкладка типов данных

Rounding mode

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

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

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

Saturate on integer overflow

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

Parameters

Этот параметр видим, если для параметра Specify step size via вы выбираете Dialog. Выберите, как вы задаете размер слова и дробная продолжительность фактора утечки и размера шага:

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

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

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

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

Weights

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

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

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

Products & quotient

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

  • Когда вы выбираете Same as first input, размер слова и дробная продолжительность этих количеств совпадает с теми из первого входа к блоку.

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

Accumulators

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

Примечание

Этот параметр не используется, чтобы определять слово и дробные длины аккумулятора для Qu операция. Тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.

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

  • Когда вы выбираете Same as first input, эти характеристики совпадают с теми из входа к блоку.

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

Lock data type settings against changes by the fixed-point tools

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока.

Ссылки

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

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

Входной параметр

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка со знаком

Желаемый

  • Должен совпасть с Входом для сигналов с плавающей точкой

  • Должен быть любой тип данных с фиксированной точкой со знаком, когда Вход является фиксированной точкой

Неродной размер

  • Должен совпасть с Входом для сигналов с плавающей точкой

  • Должен быть любой тип данных с фиксированной точкой со знаком, когда Вход является фиксированной точкой

Адаптироваться

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

Сброс

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

Вывод

  • Должен совпасть с Входом для сигналов с плавающей точкой

  • Должен быть эквивалентным Желаемый для сигналов фиксированной точки

Ошибка

  • Должен совпасть с Входом для сигналов с плавающей точкой

  • Должен быть эквивалентным Желаемый для сигналов фиксированной точки

Wts

  • Должен совпасть с Входом для сигналов с плавающей точкой

  • Повинуется параметру Weights для сигналов фиксированной точки

Смотрите также

Смотрите Адаптивные Фильтры в Simulink для сопутствующей информации.

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

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