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

Алгоритм мнк (справочные сведения)

В предыдущей лекции был подробно рассмотрен алгоритм метода наименьших квадратов (LMSalgorithm), который наиболее часто применяется в практических задачах адаптивной фильтрации из-за его низкой вычислительной сложности. Длястационарноговходного сигнала алгоритм МНК сходится к оптимальному фильтруHopt, получаемому из уравнения Винера - Хопфа.

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

.

Схема работы фильтра, использующего алгоритм МНК.

Значения коэффициентов фильтра hj(k)на каждомk –ом шаге входного сигнала обновляются (настраиваются) по вышеприведенному выражению.

Коэффициенты

Алгоритм обновления коэффициентов.

Задаются:

  • Значения (отсчеты) случайного входного сигнала фильтра {x1), x(2), x(3),...}

  • Значения желаемого (опорного) сигнала {d[1], d[2], d[3],…},коррелированные с сигналомx[k].

Выполнять:

  1. Инициализировать (задать) начальные значения вектора коэффициентов фильтра H[0],напримерH[0]=0.

  2. Для итераций (шагов, номеров отсчетов) k = 0, 1, 2, …, kmax

    1. Получить новую пару значений сигналов {X[k], d[k]},

    2. Вычислить выход фильтра ,

    3. Вычислить ошибку выхода фильтра ,

    4. Вычислить новые коэффициенты фильтра Или в поэлементной форме

Вычислительная сложность алгоритма: 2N умножений и сложений на одну итерациюk. При частоте отсчетовFsнеобходимо выполнять (2N)*Fsумножений и сложений в секунду.

Пользовательская функция MATLAB для синтеза адаптивного МНК - фильтра, реализующая вышеприведенный алгоритм,

function [W,dhat,e]=fir_lms(mu,W0,x,d)

% Функция адаптивной фильтрации по алгоритму МНК

%Входные параметры:

% mu - размер шага сходимости

% W0 - начальные значения вектора коэффициентов фильтра (L x 1)

% x - входной сигнал (M x 1)

% d - желаемый сигнал (M x 1)

% Выходные параметры:

% W - матрица настройки (эволюции) коэффициентов фильтра (L x (M+1))

% dhat - выход адаптивного фильтра (M x 1)

% e - ошибка адаптивного фильтра (M x 1)

%

L=length(W0);

start_iter=1;

end_iter=min([length(x),length(d)]);

W=zeros(L, end_iter);

dhat=zeros(end_iter,1);

e=zeros(end_iter, 1);

W(:,1:start_iter)=W0*ones(1,start_iter);

X= zeros(L,1);

for n = start_iter:end_iter;

X(2:L)=X(1:L-1);

X(1)=x(n);

dhat(n)=X'*W(:,n);

e(n)=d(n)-dhat(n);

W(:,n+1)=W(:,n)+mu*e(n)*X;

end;

Подавление широкополосного шума с помощью адаптивного устройства предсказания

Рассмотрим ещё один пример адаптивной фильтрации шумов с использованием алгоритма МНК. Пусть полезный сигнал является узкополосным, а шум – широкополосным (см. рис. ниже)

В этом случае полезный гармонический сигнал искажен широкополосным гауссовским шумом n(n).Особенностью данной задачи является то обстоятельство, что нет источника для сигналаx(n),коррелированного с шумомn(n).Задача может казаться неразрешимой для использования адаптивного фильтра. Однако её можно все-таки решить, если в качестве сигнал x(n) использовать задержанный на определенное число тактов Δ=k/fs сигналd(n).Адаптивный фильтр с выходомy(n)в этом случае используется как линейный предсказывающий фильтр для задержанного входного сигналаd(n).При этом задержка Δ выбирается экспериментально, с тем, чтобы обеспечить наилучшую степень очистки полезного сигналаAcos(2πfn/fs ) от шума n(n).

Ниже приведен пример модели такой задачи с использованием функции fir_lms(). Скрипт- файл помещен в приложении 3.

В качестве полезного сигнала в задаче используется гармонический сигнал s=sin(2*pi*500*t) с частотой 500 Гц, широкополосный шум генерируется функцией n=randn(1, length(t)). Экспериментально подобрана задержка сигнала d(n) на 7 тактов, реализуемая функцией x=filter([0 0 0 0 0 0 0 1], 1, d). Если в качестве выходного сигнала использовать сигнал на выходе сигнала ошибки e(n), то данный фильтр будет подавлять низкочастотный сигнал и выделять высокочастотную составляющую. Этот можно видеть на нижеследующей иллюстрации.

Адаптивный

КИХ - фильтр

Z

y(n)

x(n)

e(n)

d(n)=Acos(2πfn/fs)+n(n)

Выходной сигнал

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