Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Lektsia_5.doc
Скачиваний:
162
Добавлен:
11.03.2016
Размер:
431.62 Кб
Скачать

Демонстрация lmsxyplot для исследования сходимости вариантов мнк

В MATLAB имеется полезная демонстрация с названием lmsxyplot.mdlдля анализа и исследования сходимости различных вариантов алгоритма МНК. Эта демонстрация реализована в пакете Signal Processing Blockset и имеет следующую структуру

Основу блок – схемы составляют блок МНК. Например, Блок LMS пакета предназначен для реализации адаптивной фильтрации с помощью той или иной разновидности алгоритма МНК.

Он вычисляет (оценивает) коэффициенты фильтра на основе минимизации ошибки фильтра. Он имеет входные и выходные порты для входных величин и параметров алгоритма.

Желаемый сигнал подключается к порту Desiredport, входной сигнал фильтра – к портуInput. Сигнал ошибки Error формируется вычитанием этих двух сигналов.

Остальные блоки, например NLMS и др. – аналогичны.

После запуска на исполнение в окне XYGraphможно наблюдать временную диаграмму сходимости каждого из четырех рассматриваемых алгоритмов к точке минимума ошибки в плоскости, представляющей значения двух коэффициентов фильтраh1иh2. Точечные окружности представляют собой линии равного уровня значений ошибки.

На рис. представлен вид траекторий сходимости в тот момент, когда стандартный метод LMS уже достиг точки минимума ошибки, метод NLMS – почти достиг, а два других метода - знака ошибки (SELMS) и двойного знака (SSLMS) только «отправились в дорогу» с разной скоростью.

Для исследования зависимости сходимости от параметров алгоритма, например, от размера шага сходимости или длины фильтра можно двойным кликом по блоку открыть окно установки его параметров и установить желаемые значения.

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

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

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

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

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

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

В соответствующих источниках имеются оценки, согласно которым число умножений блочного метода МНК на одну итерацию составляет . Этот метод относится к быстрым методам адаптивной фильтрации.

Соседние файлы в папке Лекции