
- •Разновидности (варианты) мнк (краткий обзор)
- •Нормализованный алгоритм мнк
- •Знаковые алгоритмы мнк (Simplified lms Algorithms)
- •Алгоритм знака ошибки (The Sign Algorithm)
- •Алгоритм двойного знака (The Sign-Sign Algorithm)
- •Блочный алгоритм мнк (Blockwise Computation Algorithm)
- •Блочный алгоритм мнк в частотной области
Блочный алгоритм МНК (BLMS) позволяет
уменьшить вычислительную сложность
алгоритма МНК, особенно при большом
числе коэффициентов фильтра. Данные и
коэффициенты в этом алгоритме вычисляются
блоками. Определяется блок данных
длиной Lb
> 1, и коэффициенты фильтра обновляются
не для каждого нового значения шага k,
а один раз на протяжении этого блока.
Рекурсивное выражение для обновления
коэффициентов фильтра приобретает
поблочный вид
В этом
выражении
В
результате получаем следующее выражение
для пересчета (обновления) коэффициентов
фильтра Главная
его особенность – коэффициенты на k
– ом шаге обновляются (пересчитываются)
один раз на всем блоке длиной Lb,
т.е. когда значение шага изменяется от
значения k до значения
k+Lb.
Более детальные исследования данного
алгоритма показывают, что он с одной
стороны обеспечивает сглаживание
значений градиента, что положительно,
а с другой стороны поведение фильтра
может ухудшаться, если фильтр попадет
в диапазон неустойчивости значений
коэффициентов.Блочный алгоритм мнк (Blockwise Computation Algorithm)
определяется аналогично по значениям
на предыдущем блоке
Для реализации блочного метода в MATLAB
служит специальная функция
ha
= adaptfilt.blms(l,step,leakage,blocklen,coeffs,states),
которая возвращает объекты адаптивного
фильтра с именем ha.
Она имеет почти такие же входные
параметры, как и функция стандартного
МНК
ha
= adaptfilt.lms(l,step,leakage,coeffs,states).
Эти параметры уже рассматривались
в лекционном курсе ранее. Исключением
является дополнительный параметр
blocklen,
имеющий смысл размера (длины) блока.
Он должен быть целым положительным
числом. Чем
больше значение этого параметра, тем
быстрее сходимость, но … ухудшается
точность фильтра.
Свойства
(имена) переменных объекта, создаваемого
рассматриваемой функцией FilterLength
- число коэффициентов (длина) фильтра, Coefficients
– вектор длиной l
, содержащий начальные значения
коэффициентов, по умолчанию – нулевые
коэффициенты, States
– вектор длиной l,
имеющий смысл начального состояния
фильтра, по умолчанию - нулевой вектор, Leakage
– параметр утечки, диапазон значений
от 0 до 1, Blocklen
– вектор длины l,
определяющий размер блока данных, StepSize
– размер шага сходимости, для
определения максимального значения
размера шага должна использоваться
функция maxstep, PersistentMemory
– параметр, принимающий значения
false
или true,
определяет возможность использования
предыдущего состояния фильтра для
продолжения его работы.
Пример. Рассмотрим пример использования
функции adaptfilt.blms()
в задаче идентификации КИХ – фильтра
15 – го порядка. Скрипт – файл приведен
в приложении 4 к лекции.