Вычислите выход, ошибку и веса с помощью LMS адаптивный алгоритм
DSP System Toolbox / Фильтрующий / Адаптивные Фильтры
Поддержка HDL DSP System Toolbox / фильтрация
Блок LMS Filter может реализовать адаптивный КИХ-фильтр при помощи пяти различных алгоритмов. Блок оценивает веса фильтра, или коэффициенты должны были минимизировать ошибку, e(n), между выходным сигналом y(n) и желаемым сигналом, d(n). Выход является отфильтрованным входным сигналом, который является оценкой желаемого сигнала. Ошибочные выходы порта результат вычитания выходного сигнала желаемого сигнала.
При особых условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерацию кода.
Input
— Входной сигналСоедините сигнал, что вы хотите отфильтровать в виде скаляра или вектор-столбца.
Когда вход является фиксированной точкой, он должен быть подписан.
Типы данных: single
| double
| fixed point
Desired
— Желаемый сигналСоедините желаемый сигнал в виде вектора или матрицы. Желаемый сигнал должен иметь совпадающий тип данных, сложность и размерности как Input
сигнал.
Когда Input является фиксированной точкой, желаемый сигнал должен быть фиксированной точкой со знаком.
Типы данных: single
| double
| fixed point
Step-size
Неродной размерВведите размер шага μ. Для сходимости нормированных уравнений LMS, 0 <µ <2. Входной тип должен совпадать с типом Input
порт.
Когда Input является фиксированной точкой, неродной размер должен быть фиксированной точкой со знаком.
Этот порт появляется только, когда вы устанавливаете Specify step size via
параметр к Input port
.
Типы данных: single
| double
| fixed point
Adapt
— Обновите веса фильтраКогда вход к этому порту больше нуля, блочно-непрерывно обновления веса фильтра. Когда вход к этому порту меньше чем или равен нулю, веса фильтра остаются в своих текущих значениях.
Этот порт появляется только, когда вы устанавливаете Adapt port
параметр к on
.
Типы данных: single
| double
| int8
| int16
| int32
| Boolean
Reset
— Сбросьте веса фильтраСигнал сбросить значение весов фильтра к их начальным значениям в виде вектора. Блок сбрасывает веса фильтра каждый раз, когда событие сброса обнаруживается в порте Reset. Уровень сигнала сброса должен быть тем же уровнем как вход сигнала данных.
Для типов события сброса смотрите Reset
параметр.
Этот порт появляется только, когда вы устанавливаете параметр Reset port на Rising edge
, Falling edge
, Either edge
, или Non-zero sample
.
Типы данных: single
| double
| int8
| int16
| int32
| Boolean
Output
— Выходной сигналВыводит отфильтрованный входной сигнал, который является оценкой желаемого сигнала. Это одного размера и сложность с входным сигналом.
Выходной сигнал имеет совпадающий тип данных как желаемый сигнал.
Типы данных: single
| double
| fixed point
Error
— Ошибка между Выходом и Желаемыми сигналамиВыводит результат вычитания выходного сигнала желаемого сигнала.
Сигнал ошибки имеет совпадающий тип данных как желаемый сигнал.
Типы данных: single
| double
| fixed point
Wts
— Обновленные веса фильтраДля каждой итерации блок выводит текущие обновленные веса фильтра от этого порта.
Тип данных весов должен совпадать с типом Input
порт для сигналов с плавающей точкой. Выполняет Weights
параметр для сигналов фиксированной точки.
Этот порт появляется только, когда вы устанавливаете Output filter weights
параметр к On
.
Типы данных: single
| double
| fixed point
Algorithm
— Выберите алгоритмLMS
(значение по умолчанию) | Normalized LMS
| Sign-Error LMS
| Sign-Data LMS
| Sign-Sign LMS
Выберите алгоритм раньше вычислял веса фильтра.
Filter length
— Отфильтруйте длину
(значение по умолчанию) | скалярВведите длину КИХ-вектора весов фильтра.
Specify step size via
— Задайте размер шага черезDialog
(значение по умолчанию) | Input port
Dialog
– Задайте размер шага при помощи параметра Step size (mu).
Input port
– Задайте размер шага при помощи Step-size
порт.
Step size (mu)
Неродной размер
(значение по умолчанию) | положительная скалярная величинаВведите размер шага μ. Для сходимости нормированных уравнений LMS, 0 <µ <2.
Настраиваемый: да
Этот параметр появляется только, когда вы устанавливаете Specify step size via
параметр к Dialog
.
Leakage factor (0 to 1)
— Фактор утечки
(значение по умолчанию) | скалярВведите фактор утечки, 0 <1 – μα ≤ 1.
Настраиваемый: да
Initial value of filter weights
— Начальное значение весов фильтра
(значение по умолчанию) | вектор | скалярВведите начальные веса фильтра w (0) как вектор или скаляр. При вводе скаляр, блок использует скалярное значение, чтобы создать вектор из весов фильтра. Эта длина вектора равна длине фильтра, и все ее значения равны скалярному значению.
Adapt port
— Порт Enable Adapton
(значение по умолчанию) | off
Установите этот флажок, чтобы включить Adapt
входной порт.
Reset port
— Порт ResetNone
(значение по умолчанию) | Rising edge
| Falling edge
| Either edge
| Non-zero sample
Когда это необходимо, чтобы сбросить значение весов фильтра к их начальным значениям, используйте параметр Reset port. Сигнал сброса должен быть тем же уровнем как вход сигнала данных.
Выберите None
отключить Reset
порт. Чтобы включить порт Reset, выберите одно из следования из списка:
Rising edge
— Инициировал операцию сброса, когда вход Reset выполняет одно из следующих действий:
Повышения от отрицательной величины до положительного значения или нуля
Повышения от нуля до положительного значения, где повышение не является продолжением повышения от отрицательной величины, чтобы обнулить (см. следующую фигуру),
Falling edge
— Инициировал операцию сброса, когда вход Reset выполняет одно из следующих действий:
Падения от положительного значения до отрицательной величины или нуля
Падения от нуля до отрицательной величины, где падение не является продолжением падения от положительного значения, чтобы обнулить (см. следующую фигуру),
Either edge
— Инициировал операцию сброса, когда входом Reset является Rising edge
или Falling edge
Non-zero sample
— Инициировал операцию сброса в каждом шаге расчета, что вход Reset не является нулем
Output filter weights
— Выведите веса фильтраon
(значение по умолчанию) | off
Выберите параметр Output filter weights, чтобы экспортировать веса фильтра от Wts
порт. Для каждой итерации блок выводит текущие обновленные веса фильтра от этого порта.
Rounding mode
— Метод округления операцииFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющийся режим для операций фиксированной точки как одно из следующего:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Для получения дополнительной информации смотрите округление режима.
Saturate on integer overflow
— Метод действия переполненияКогда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate
и wrap
, смотрите режим переполнения для операций фиксированной точки.
Parameters
ПараметрыSame word length as first input
(значение по умолчанию) | Specify word length
| Binary point scaling
Выберите, как вы задаете размер слова и дробная продолжительность фактора утечки и размера шага:
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
Weights
— Word и дробная длина весов фильтраSame as first input
(значение по умолчанию) | Binary point scaling
Выберите, как вы задаете размер слова и дробную длину весов фильтра блока:
Same as first input
– Размер слова и дробная длина весов фильтра совпадают с теми из первого входа с блоком.
Binary point scaling
– Можно ввести размер слова и дробную длину весов фильтра в битах.
Product and quotient
— Word и дробная длина продукта и частногоSame as first input
(значение по умолчанию) | Binary point scaling
Выберите, как вы задаете размер слова и дробную длину u'u, W'u, , , и частное, Q. Здесь, u является входным вектором, W является вектором из весов фильтра, μ является размером шага, e является ошибкой, и Q является частным, которое задано как
Same as first input
– Размер слова и дробная продолжительность этих количеств совпадает с теми из первого входа с блоком.
Binary point scaling
– Можно ввести размер слова и дробная продолжительность этих количеств в битах. Размер слова количеств должен быть тем же самым, но дробные длины могут отличаться.
Accumulator
— Word и дробные длины аккумуляторовSame as first input
(значение по умолчанию) | Binary point scaling
Используйте этот параметр, чтобы задать, как вы хотите определять слово и дробные длины аккумуляторов для операций W'u и u'u.
Примечание
Не используйте этот параметр, чтобы определять слово и дробные длины аккумулятора для операция. Тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.
Same as first input
– Эти характеристики совпадают с теми из входа с блоком.
Binary point scaling
– Можно ввести размер слова и дробную длину аккумуляторов в битах. Размер слова обоих, аккумуляторы должны быть тем же самым, но дробные длины могут отличаться.
Для рисунков, изображающих использование типа данных аккумулятора в этом блоке, смотрите Типы данных Фиксированной точки и Умножения.
Lock data type settings against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете в диалоговом окне блока.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Когда вы выбираете 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) |
ε | Константа, которая корректирует любую потенциальную числовую нестабильность, которая происходит во время обновления весов. |
[1] Hayes, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.
Сгенерированный код использует memcpy
или memset
функции (string.h
) при определенных обстоятельствах.
Блок LMS Filter поддерживает использование генерации кода SIMD технология Intel AVX2 при этих условиях:
Algorithm установлен в LMS
или Normalized LMS
.
Входной сигнал с действительным знаком.
Входной сигнал имеет тип данных single
или double
.
Технология SIMD значительно улучшает производительность сгенерированного кода.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
По умолчанию реализация Фильтра LMS использует линейную сумму для раздела FIR фильтра.
Фильтр LMS реализует древовидное суммирование (который имеет более короткий критический путь) при следующих условиях:
Фильтр LMS используется с действительными данными.
Размер слова Аккумулятора тип данных W'u, по крайней мере, ceil(log2(filter
length))
биты шире, чем размер слова продукта тип данных W'u.
Аккумулятор тип данных W'u имеет ту же дробную длину как продукт тип данных W'u.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Этот блок поддерживает генерацию кода для комплексных сигналов.
HDL Coder не поддерживает Normalized LMS
алгоритм Фильтра LMS.
Reset
порт поддерживает только Boolean
и unsigned
входные параметры.
Adapt
порт поддерживает только Boolean
входные параметры.
Filter length должен быть больше или быть равен 2.
Если вход является фиксированной точкой, это должно быть целое число со знаком или подписанная фиксированная точка с наклоном степени двойки и нулевым смещением.
Типы данных с фиксированной точкой
Следующие схемы показывают типы данных, используемые в блоке LMS Filter для сигналов фиксированной точки. Таблица суммирует определения переменных, используемых в схемах.
Переменная | Определение |
---|---|
u | Входной вектор |
W | Вектор из весов фильтра |
µ | Неродной размер |
e | Ошибка |
Q | Частное, |
Продукт u'u | Тип данных продукта в энергетической схеме вычисления |
Аккумулятор u'u | Тип данных аккумулятора в энергетической схеме вычисления |
Продукт W'u | Тип данных продукта в схеме Свертки |
Аккумулятор W'u | Тип данных аккумулятора в схеме Свертки |
Продукт | Тип данных продукта в продукте схемы размера и ошибки шага |
Продукт | Продукт и тип данных аккумулятора в Весе обновляют схему. 1 |
1Тип данных аккумулятора для этого количества автоматически собирается совпасть с типом данных продукта. Минимум, максимум и информация о переполнении для этого аккумулятора регистрируются как часть информации о продукте. Автомасштабирование обрабатывает этот продукт и аккумулятор как один тип данных.
Можно установить тип данных параметров, весов, продуктов, частного и аккумуляторов в маске блока. Входные параметры фиксированной точки, выходные параметры и параметры маски этого блока должны иметь эти характеристики:
Входной сигнал и желаемый сигнал должны иметь тот же размер слова, но их дробные длины могут отличаться.
Размер шага и фактор утечки должны иметь тот же размер слова, но их дробные длины могут отличаться.
Выходной сигнал и сигнал ошибки имеют тот же размер слова и ту же дробную длину как желаемый сигнал.
Частное и продукт выход u'u, W'u, , и операции должны иметь тот же размер слова, но их дробные длины могут отличаться.
Тип данных аккумулятора u'u и операций W'u должен иметь тот же размер слова, но их дробные длины могут отличаться.
Выход множителя находится в типе выходных данных продукта, если по крайней мере одни из входных параметров ко множителю действительны. Если оба из входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации смотрите Типы данных Умножения.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.