Разновидности алгоритма МНК: стандартный МНК, нормализованный МНК, знаковый МНК

1. Стандартный МНК.

Модификация коэффициентов фильтра в МНК-фильтре производится следующим образом:

где W[k] – текущий вектор весовых коэффициентов фильтра, W[k+1] - вектор весовых коэффициентов фильтра на следующей итерации, – шаг сходимости, e[k] – ошибка фильтра, X[k] – вектор входного сигнала.

Вычислительная сложность МНК-алгоритма 2L+1 умножений и 2L сложений на одну итерацию (L – порядок фильтра)

2. Нормализованный МНК (НМНК)

Нормализованный МНК-разновидность МНК, в которой шаг сходимости зависит от мощности входного сигнала. При этом коэффициенты фильтра модифицируются по выражению:

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

В результате постоянный шаг сходимости заменяется на переменный шаг сходимости . При этом на налагается ограничение:

Преимущество НМНК перед МНК в том, что выбрав определенный коэффициент , можно быть уверенным в том, что процесс адаптации не станет расходящимся при слишком большой мощности входного сигнала, а также будет иметь оптимальную скорость сходимости при малой мощности входного сигнала. При этом вычислительная сложность алгоритма НМНК не намного больше, чем МНК и составляет 2L+4 умножений и 2L+3 сложений на одну итерацию.

2. Знаковые разновидности МНК

Идея знакового МНК заключается в замене значений ошибки и вектора значений входного сигнала на знак ошибки и вектор знаков сигнала при вычислении вектора весовых коэффициентов. Это позволяет сократить количество вычислений на итерацию. Существуют три разновидности этого метода:

1. Алгоритм знака ошибки (Sign-error LMS, SELMS)

В этом алгоритме значение ошибки заменяется ее знаком:

Такая замена позволяет сократить одно умножение на итерацию, т. е. вместо 2L+1 умножений на итерацию у МНК получается 2L умножений на итерацию в SELMS (L – порядок фильтра).

2. Алгоритм знака сигнала (Sign-data LMS, SDLMS)

В этом алгоритме вектор значений входного сигнала заменяется вектором знаков сигнала:

Здесь уменьшение количества вычислений уже гораздо существеннее – L+1 умножений на одну итерацию.

3. Алгоритм двойного знака (Sign-sign LMS, SSLMS)

Этот алгоритм представляет собой комбинацию предыдущих, здесь используются и знак ошибки, и вектор знаков сигнала:

В таком алгоритме операция умножения используется только для вычисления свертки, т. е. алгоритм имеет всего L операций умножения на итерацию.

Как правило, знаковые алгоритмы имеют более медленную скорость сходимости, чем у МНК, так как имеют более грубую оценку градиента. Поэтому их следует применять в системах, где скорость изменений входного сигнала невысокая.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: