Вычислять выходные данные, ошибки и веса с помощью адаптивного алгоритма LMS
Панель системных инструментов DSP/Фильтрация/Адаптивные фильтры
Системная панель инструментов DSP Поддержка HDL/Фильтрация

Блок фильтра LMS может реализовать адаптивный фильтр FIR, используя пять различных алгоритмов. Блок оценивает веса фильтра или коэффициенты, необходимые для минимизации ошибки e (n) между выходным сигналом y (n) и требуемым сигналом d (n). Выходной сигнал является отфильтрованным входным сигналом, который является оценкой требуемого сигнала. Порт Error выводит результат вычитания выходного сигнала из требуемого сигнала.
При определенных условиях этот блок также поддерживает генерацию кода SIMD. Дополнительные сведения см. в разделе Создание кода.
Input - Входной сигналПодключите сигнал, который требуется отфильтровать, указанный как скаляр или вектор столбца.
Когда вход является фиксированным, он должен быть подписан.
Типы данных: single | double | fixed point
Desired - Требуемый сигналПодключите требуемый сигнал, указанный как вектор или матрица. Требуемый сигнал должен иметь тот же тип данных, сложность и размеры, что и Input сигнал.
Если параметр Input имеет значение fixed-point, то требуемым сигналом должен быть сигнал со знаком fixed-point.
Типы данных: single | double | fixed point
Step-size - Размер шагаВведите размер шага λ. Для сходимости нормализованных уравнений LMS, 0 < start< 2. Тип ввода должен соответствовать типу Input порт.
Если параметр Input имеет значение fixed-point, размер шага должен быть знаком fixed-point.
Этот порт появляется только при установке Specify step size via параметр для Input port.
Типы данных: single | double | fixed point
Adapt - Обновить вес фильтраКогда вход в этот порт больше нуля, блок непрерывно обновляет веса фильтра. Если вход в этот порт меньше или равен нулю, веса фильтра остаются на своих текущих значениях.
Этот порт появляется только при установке Adapt port параметр для on.
Типы данных: single | double | int8 | int16 | int32 | Boolean
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 - Длина фильтра32 (по умолчанию) | скалярВведите длину вектора весов фильтра FIR.
Specify step size via - Укажите размер шага черезDialog (по умолчанию) | Input port
Dialog -- Укажите размер шага с помощью параметра Step size (mu).
Input port -- Укажите размер шага с помощью Step-size порт.
Step size (mu) - Размер шага0.1 (по умолчанию) | положительный скалярВведите размер шага λ. Для сходимости нормализованных уравнений LMS, 0 < start< 2.
Настраиваемый: Да
Этот параметр появляется только при установке Specify step size via параметр для Dialog.
Leakage factor (0 to 1) - Коэффициент утечки1.0 (по умолчанию) | скалярВведите коэффициент утечки, 0 < 1 - мкα ≤ 1.
Настраиваемый: Да
Initial value of filter weights - Начальное значение веса фильтра0 (по умолчанию) | вектор | скалярВведите начальные веса фильтра w (0) как вектор или скаляр. При вводе скаляра блок использует скалярное значение для создания вектора весов фильтра. Эта длина вектора равна длине фильтра, а все его значения равны скалярному значению.
Adapt port - Включить порт адаптацииon (по умолчанию) | offУстановите этот флажок, чтобы включить Adapt входной порт.
Reset port - Сброс портаNone (по умолчанию) | Rising edge | Falling edge | Either edge | Non-zero sampleЕсли требуется сбросить значения весов фильтра до их начальных значений, используйте параметр Reset port. Сигнал сброса должен быть той же скоростью, что и вход сигнала данных.
Выбрать None для отключения Reset порт. Для активизации порта Reset выберите один из следующих вариантов в списке:
Rising edge - запускает операцию сброса, когда вход Reset выполняет одно из следующих действий:
Увеличивается от отрицательного значения до положительного значения или нуля
Поднимается от нуля до положительного значения, где подъем не является продолжением подъема от отрицательного значения до нуля (см. следующий рисунок)

Falling edge - запускает операцию сброса, когда вход Reset выполняет одно из следующих действий:
Падает от положительного значения до отрицательного значения или нуля
Падает от нуля до отрицательного значения, где падение не является продолжением падения от положительного значения до нуля (см. следующий рисунок)

Either edge - Запускает операцию сброса, если входным сигналом сброса является Rising edge или Falling edge
Non-zero sample - Запускает операцию сброса в каждый момент времени, когда входной сигнал сброса не равен нулю
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 - Длина слов и долей весов фильтраSame as first input (по умолчанию) | Binary point scalingВыберите способ указания длины слова и длины дроби весов фильтра блока:
Same as first input - Длина слова и длина дроби весов фильтра совпадают с длиной первого входа в блок.
Binary point scaling - Вы можете ввести длину слова и дробную длину весов фильтра, в битах.
Product and quotient - Длина слова и доли продукта и частноеSame as first input (по умолчанию) | Binary point scalingВыберите способ задания длины слова и длины дроби u 'u, W' u, , и частного, Q. Здесь u - входной вектор, W - вектор весов фильтра, λ - размер шага, e - ошибка, а Q - частное, которое определено как
Same as first input - Длина слова и длина дроби этих величин совпадают с длиной первого ввода в блок.
Binary point scaling - Вы можете ввести длину слова и дробную длину этих величин, в битах. Длина слова величин должна быть одинаковой, но длины дробей могут отличаться.
Accumulator - Длина словосочетаний и дробей аккумуляторовSame as first input (по умолчанию) | Binary point scalingЭтот параметр используется для указания способа обозначения длин слов и дробей накопителей для операций u 'u и W' u.
Примечание
Не используйте этот параметр для обозначения длин слов и дробей аккумулятора для операции Q⋅u. Тип данных накопителя для этого количества автоматически устанавливается равным типу данных продукта. Сведения о минимальном, максимальном и переполнении для этого накопителя регистрируются как часть информации о продукте. Автоматическое масштабирование рассматривает этот продукт и накопитель как один тип данных.
Same as first input - Эти характеристики соответствуют характеристикам входа в блок.
Binary point scaling - Вы можете ввести длину слова и дробную длину накопителей, в битах. Длина слова обоих накопителей должна быть одинаковой, но длины дробей могут отличаться.
Примеры использования типа данных накопителя в этом блоке см. в разделах Фиксированная точка и Типы данных умножения.
Lock data type settings against changes by the fixed-point tools - Предотвращение переопределения типов данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в диалоговом окне блока.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
При выборе LMS для Algorithm , блок вычисляет веса фильтра с использованием алгоритма наименьшего среднего квадрата (LMS). Этот алгоритм определяется этими уравнениями.
(n − 1) + f (u (n), e (n), λ)
Различные алгоритмы адаптивного фильтра LMS, доступные в этом блоке, определяются как:
LMS --
(n) u * (n)
Нормализованная LMS --
)
В нормализованной LMS, чтобы преодолеть потенциальную численную нестабильность при обновлении весов, в знаменателе была добавлена небольшая положительная константа λ. Для двойной точности вход с плавающей запятой, ε является 2.2204460492503131e-016. Для ввода с плавающей запятой с одинарной прецизионностью, λ равно 1.192092896e-07. Для ввода с фиксированной запятой, λ равно 0.
Ошибка подписи LMS --
(n)) u * (n)
LMS для регистрации данных --
знак (u (n))
где u (n) является реальным.
Sign-Sign LMS --
знак (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) |
ε | Константа, корректирующая любую потенциальную числовую нестабильность, возникающую во время обновления весов. |
[1] Хейс, М.Х. Статистическая цифровая обработка и моделирование сигналов. Нью-Йорк: John Wiley & Sons, 1996.
Созданный код зависит от memcpy или memset функции (string.h) при определенных условиях.
Блок фильтра LMS поддерживает создание кода SIMD с использованием технологии Intel AVX2 в следующих условиях:
Алгоритм установлен в значение LMS или Normalized LMS.
Входной сигнал является действительным.
Входной сигнал имеет тип данных single или double.
Технология SIMD значительно повышает производительность генерируемого кода.
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
По умолчанию реализация фильтра LMS использует линейную сумму для секции FIR фильтра.
Фильтр LMS реализует суммирование дерева (которое имеет более короткий критический путь) при следующих условиях:
Фильтр LMS используется с реальными данными.
Длина слова типа данных Accumulator W 'u не менее ceil(log2(filter length)) биты шире длины слова типа данных Product W 'u.
Тип данных аккумулятора W 'u имеет ту же длину дроби, что и тип данных продукта W' u.
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Этот блок поддерживает генерацию кода для сложных сигналов.
Кодер HDL не поддерживает Normalized LMS алгоритм фильтра LMS.
Reset только порт поддерживает Boolean и unsigned входные данные.
Adapt только порт поддерживает Boolean входные данные.
Длина фильтра должна быть больше или равна 2.
Если входной сигнал является фиксированной точкой, он должен быть целым числом со знаком или фиксированной точкой со знаком с наклоном мощности два и нулевым смещением.
Типы данных с фиксированной точкой
На следующих диаграммах показаны типы данных, используемые в блоке фильтра LMS для сигналов с фиксированной точкой. Таблица суммирует определения переменных, используемых на диаграммах.
| Переменная | Определение |
|---|---|
u | Входной вектор |
W | Вектор весов фильтра |
µ | Размер шага |
e | Ошибка |
Q | Частное, |
Продукт u 'u | Тип данных продукта в диаграмме расчета энергопотребления |
Аккумулятор u 'u | Тип данных аккумулятора на схеме расчета энергии |
Продукт W 'u | Тип данных продукта в схеме свертки |
Аккумулятор W 'u | Тип данных аккумулятора на схеме свертки |
продукта | Тип данных продукта в окне «Продукт с размером шага и диаграммой ошибок» |
продукта | Тип данных продукта и аккумулятора в диаграмме обновления веса. 1 |
1The этого количества автоматически устанавливается тот же тип данных аккумулятора, что и тип данных продукта. Сведения о минимальном, максимальном и переполнении для этого накопителя регистрируются как часть информации о продукте. Автоматическое масштабирование рассматривает этот продукт и накопитель как один тип данных.


В маске блока можно задать тип данных параметров, весов, продуктов, частное и накопителей. Входные, выходные и маскирующие параметры этого блока должны иметь следующие характеристики:
Входной сигнал и требуемый сигнал должны иметь одинаковую длину слова, но их длины дробей могут отличаться.
Размер шага и коэффициент утечки должны иметь одинаковую длину слова, но их длины дробей могут отличаться.
Выходной сигнал и сигнал ошибки имеют одинаковую длину слова и ту же длину дроби, что и требуемый сигнал.
Частное и выходное произведение операций u 'u, W' u, μ⋅e и Q⋅u должны иметь одинаковую длину слова, но их длины дробей могут отличаться.
Тип данных накопителя операций u 'u и W' u должен иметь одинаковую длину слова, но их длины дробей могут отличаться.
Выходной сигнал множителя находится в виде выходных данных произведения, если, по меньшей мере, один из входных сигналов множителя является реальным. Если оба входа умножителя являются комплексными, результат умножения находится в накопительном типе данных. Дополнительные сведения см. в разделе Типы данных умножения.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

