Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Brush_Lecture_5.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
199.17 Кб
Скачать

Блочный алгоритм мнк (Blockwise Computation Algorithm)

Блочный алгоритм МНК (BLMS) позволяет уменьшить вычислительную сложность алгоритма МНК, особенно при большом числе коэффициентов фильтра. Данные и коэффициенты в этом алгоритме вычисляются блоками. Определяется блок данных длиной Lb > 1, и коэффициенты фильтра обновляются не для каждого нового значения шага k, а один раз на протяжении этого блока. Рекурсивное выражение для обновления коэффициентов фильтра приобретает поблочный вид

В этом выражении определяется аналогично по значениям на предыдущем блоке

В результате получаем следующее выражение для пересчета (обновления) коэффициентов фильтра

Главная его особенность – коэффициенты на k – ом шаге обновляются (пересчитываются) один раз на всем блоке длиной Lb, т.е. когда значение шага изменяется от значения k до значения k+Lb. Более детальные исследования данного алгоритма показывают, что он с одной стороны обеспечивает сглаживание значений градиента, что положительно, а с другой стороны поведение фильтра может ухудшаться, если фильтр попадет в диапазон неустойчивости значений коэффициентов.

Для реализации блочного метода в 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 к лекции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]