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 операций умножения на итерацию.
Как правило, знаковые алгоритмы имеют более медленную скорость сходимости, чем у МНК, так как имеют более грубую оценку градиента. Поэтому их следует применять в системах, где скорость изменений входного сигнала невысокая.
|
|