
- •Разновидности (варианты) мнк (краткий обзор)
- •Нормализованный алгоритм мнк
- •Алгоритм мнк с утечкой (leaky lms)
- •Знаковые (упрощенные) алгоритмы мнк (Simplified lms Algorithms)
- •Демонстрация lmsxyplot для исследования сходимости вариантов мнк
- •Блочный алгоритм мнк (Blockwise Computation Algorithm)
- •Блочный алгоритм мнк в частотной области
В MATLAB имеется полезная демонстрация
с названием lmsxyplot.mdlдля анализа и исследования сходимости
различных вариантов алгоритма МНК.
Эта демонстрация реализована в пакете
Signal Processing Blockset и имеет следующую
структуру
Демонстрация lmsxyplot для исследования сходимости вариантов мнк
Основу блок – схемы составляют блок
МНК. Например, Блок LMS пакета предназначен
для реализации адаптивной фильтрации
с помощью той или иной разновидности
алгоритма МНК.
Он вычисляет (оценивает) коэффициенты
фильтра на основе минимизации ошибки
фильтра. Он имеет входные и выходные
порты для входных величин и параметров
алгоритма.
Желаемый сигнал подключается к порту
Desiredport,
входной сигнал фильтра – к портуInput.
Сигнал ошибки Error формируется вычитанием
этих двух сигналов.
Остальные блоки, например NLMS и др. –
аналогичны.
После запуска на исполнение в окне XYGraphможно наблюдать
временную диаграмму сходимости каждого
из четырех рассматриваемых алгоритмов
к точке минимума ошибки в плоскости,
представляющей значения двух коэффициентов
фильтраh1иh2.
Точечные окружности представляют
собой линии равного уровня значений
ошибки.
На рис. представлен вид траекторий
сходимости в тот момент, когда стандартный
метод LMS уже достиг точки минимума
ошибки, метод NLMS – почти достиг, а два
других метода - знака ошибки (SELMS) и
двойного знака (SSLMS)
только «отправились в дорогу» с разной
скоростью.
Для исследования зависимости сходимости
от параметров алгоритма, например, от
размера шага сходимости или длины
фильтра можно двойным кликом по блоку
открыть окно установки его параметров
и установить желаемые значения.
Блочный алгоритм МНК (BLMS) позволяет
уменьшить вычислительную сложность
алгоритма МНК, особенно при большом
числе коэффициентов фильтра. Это полезно
в некоторых приложениях, например, в
задачах подавления шумов и подавлении
эхо – сигналов. Данные и коэффициенты
в этом алгоритме вычисляются блоками.
Определяется блок данных длиной Lb
> 1 отсчетов, и коэффициенты фильтра
обновляются не для каждого нового
значения шага k, а один раз на протяжении
этого блока. Рекурсивное выражение
для обновления коэффициентов фильтра
приобретает поблочный вид
В этом выражении
В результате получаем следующее
выражение для пересчета (обновления)
коэффициентов фильтра
Главная его особенность – коэффициенты
на k– ом блоке данных обновляются
(пересчитываются) один раз на всем блоке
длинойLb,
т.е. когда значение шага изменяется от
значенияkдо значенияk+Lb.
Здесьiобозначает номер индекса внутри
отдельного блока. Пока индекс i не
изменится от 0 доLb+1 значение
коэффициентаHkсохраняется.
Блочный алгоритм мнк (Blockwise Computation Algorithm)
определяется аналогично по значениям
на предыдущем блоке
Более детальные исследования данного
алгоритма показывают, что он с одной
стороны обеспечивает сглаживание
значений градиента ошибки, что
положительно, а с другой стороны
поведение фильтра может ухудшаться,
если фильтр попадет в диапазон
неустойчивости значений коэффициентов.
Для реализации блочного метода в MATLAB
служит специальная функция
ha
= adaptfilt.blms(l,step,leakage,blocklen,coeffs,states),которая возвращает объекты адаптивного
фильтра с именемha.
Она имеет почти такие же входные и
выходные параметры, как и функция
стандартного МНК
ha =
adaptfilt.lms(l,step,leakage,coeffs,states).
Эти параметры уже рассматривались
в лекционном курсе ранее. Исключением
является дополнительный параметрblocklen,
имеющий смысл размера (длины) блока.
Он должен быть целым положительным
числом. Чем
больше значение этого параметра, тем
быстрее сходимость, но … ухудшается
точность фильтра.
Свойства (имена) переменных объекта в
выходной переменной ha:
FilterLength- число коэффициентов (длина) фильтра,
Coefficients– вектор длинойl, содержащий начальные значения
коэффициентов, по умолчанию – нулевые
коэффициенты,
States– вектор длинойl,
имеющий смысл начального состояния
фильтра, по умолчанию - нулевой вектор,
Leakage
– параметр утечки, диапазон значений
от 0 до 1,
Blocklen
– вектор длиныl,
определяющий размер блока данных,
StepSize
– размер шага сходимости, для
определения максимального значения
размера шага должна использоваться
функция maxstep,
PersistentMemory
– параметр, принимающий значения
false
или true,
определяет возможность использования
предыдущего состояния фильтра для
продолжения его работы.
Пример. Рассмотрим пример использования
функцииadaptfilt.blms()
в задаче идентификации КИХ – фильтра
15 – го порядка. Скрипт – файл приведен
в приложении 4 к лекции.
В соответствующих источниках имеются
оценки, согласно которым число умножений
блочного метода МНК на одну итерацию
составляет
.
Этот метод относится к быстрым методам
адаптивной фильтрации.