
- •Разновидности (варианты) мнк (краткий обзор)
- •Нормализованный алгоритм мнк
- •Знаковые алгоритмы мнк (Simplified lms Algorithms)
- •Алгоритм знака ошибки (The Sign Algorithm)
- •Алгоритм двойного знака (The Sign-Sign Algorithm)
- •Блочный алгоритм мнк (Blockwise Computation Algorithm)
- •Блочный алгоритм мнк в частотной области
Метод
наименьших квадратов (англ. LMS)
адаптивной фильтрации, рассмотренный
в двух предыдущих лекциях, обеспечивает
простую настройку (пересчет) коэффициентов
адаптивного фильтра для достижения
минимума целевой функции. По сравнению
с другим конкурирующим методом,
рекурсивным методом наименьших квадратов
(RLS), который будет рассмотрен в курсе
позднее, он требует значительно меньшего
объема вычислений и меньшего объема
памяти. Но скорость сходимости
стандартного МНК - алгоритма сравнительно
низкая и зависит от свойств корреляционной
матрицы входного сигнала. Поэтому были
предприняты попытки по разработке
вариантов МНК, в которых решались задачи
повышения скорости сходимости и также
уменьшения вычислительной сложности
алгоритма. Ниже приведено перечисление
этих вариантов вместе с краткой
формулировкой их назначения. Более
подробные сведения и практические
примеры приведены далее в этой лекции. Основные
варианты (модификации) МНК: Нормализованный
МНК (normalized LMS) – улучшает скорость
сходимости и устойчивость МНК с помощью
учета мощности сигнала на каждом шаге
итераций. МНК
с утечкой (leaky LMS)
– в стандартный алгоритм МНК вводится
специальный коэффициент утечки для
улучшения сходимости. Знаковые
алгоритмы МНК (sign
LMS) – три разновидности
МНК, в которых для уменьшения
вычислительной сложности вместо
значения сигнала или ошибки фильтра
используют знаки этих величин, благодаря
чему операции умножения заменяются
на более простые операции сложения. Блочный
МНК - для уменьшения объема вычислений
и улучшения сходимости алгоритма,
обновление коэффициентов фильтра
выполняется один раз на определенный
выбранный размер блока данных. Блочный
МНК с вычислениями в частотной области
– разновидность блочного МНК, в котором
для увеличения скорости вычислений
используется вычисление свертки в
частотной области.
Разновидности (варианты) мнк (краткий обзор)
Выражение для коррекции коэффициентов
адаптивного фильтра для стандартного
алгоритма МНК
Из выражения очевидно, что размер шага
сходимости μ - постоянный и не зависит
от мощности сигнала X[k]. При больших
значениях X[k] величина коррекции
коэффициента
или в
поэлементной (скалярной) записи для
j = 0,1,2,…,N-1
В этих
выражениях
Нормализованный алгоритм мнк
.
может
резко возрасти. Это может неблагоприятно
повлиять на сходимость алгоритма. Для
преодоления такого недостатка был
предложен т.н. нормализованный алгоритм
МНК, в котором обновление коэффициентов
выполняется по выражению
- некоторый постоянный шаг сходимости,
- мощность входного сигнала X[k],
- небольшой положительный коэффициент
от 0 до 1, устраняющий резкое увеличение
(коррекцию) коэффициента при мощности
сигнала, близкой к нулю.
В результате мы получили процедуру
обновления коэффициентов фильтра по
методу МНК, но с переменным шагом
сходимости
Для реализации нормализованного метода
наименьших квадратов в MATLAB имеется
специальная функция ha
= adaptfilt.nlms(l,step,leakage,offset,coeffs,states),
которая возвращает в объекте с именем
ha параметры
и характеристики адаптивного КИХ -
фильтра, такие, как его коэффициенты,
длину фильтра, коэффициент утечки, шаг
сходимости, состояние фильтра. Входные
параметры функции: l
- длина (число коэффициентов)
адаптивного фильтра, step
- размер шага сходимости NLMS. Этот
параметр влияет на скорость сходимости.
Его значение должно быть в интервале
от 0 до 2, значение по умолчанию =1. offset
– необязательный параметр, его значение
должно быть ≥ 0. Используется для
исключения деления на 0 или близкое к
нулю значение. В выше приведенных
формулах обозначается через ψ. coeffs
– вектор начальных значений коэффициентов
фильтра с длиной, равной порядку
фильтра. По умолчанию – нулевой вектор. states
- вектор начального состояния фильтра.
По умолчанию – это вектор размером l
-1 с нулевыми значениями. Рассмотрим
пример применения этой функции в
адаптивном фильтре для компенсации
случайного шума в гармоническом
сигнале. В задаче формируется сигнал
с шумом, обозначенный через d,
который подается на опорный вход
фильтра, на основной вход фильтра
подается шум, коррелированный с шумом
на опорном входе. Используются и
сопоставляются с результатами фильтра
Винера стандартный алгоритм МНК и
нормализованный алгоритм МНК. Результаты
представлены ниже на рис. Скрипт –
файл приведен в Приложении 1 к лекции.
,
зависящим от мощности входного сигнала.
По вычислительной сложности стандартный
и нормализованный МНК практически
равноценны. Стандартный МНК требует
2N+1 умножений и 2N+1
сложений на одну итерацию, нормализованный
алгоритм 2N+4
умножений и 2N
+ 3 сложений, N - порядок
фильтра.
Число
коэффициентов для каждого из трех
фильтров составляло 10. В стандартном
МНК использовался размер шага сходимости
Hlms.StepSize = 0.0064, в нормализованном МНК
- hnlms.StepSize = 0,1.
Скорость сходимости нормированного
МНК выше, что видно из сопоставления
кривых обучения, представленных ниже
на рис. Как следует из результатов, оба
метода сходятся к одинаковому значению
среднеквадратичной ошибки, равной
10-2. Скорость сходимости зависит
от выбранного значения шага сходимости,
в чем можно убедиться, меняя в программе
значение шага сходимости μ2. Программная
процедура размещена в Приложении 2.