exponenta event banner

Сравнение производительности сходимости между алгоритмом LMS и нормализованным алгоритмом LMS

Адаптивный фильтр адаптирует свои коэффициенты фильтра к коэффициентам неизвестной системы. Целью является минимизация сигнала ошибки между выходом неизвестной системы и выходом адаптивного фильтра. Когда эти два выхода сходятся и близко совпадают для одного и того же входа, коэффициенты, как говорят, совпадают близко. Адаптивный фильтр в этом состоянии напоминает неизвестную систему. В этом примере сравнивается скорость, с которой происходит эта сходимость для нормализованного алгоритма LMS (NLMS) и алгоритма LMS без нормализации.

Неизвестная система

Создать dsp.FIRFilter представляет неизвестную систему. Передать сигнал x в качестве входных данных неизвестной системы. Требуемый сигнал d - сумма выходного сигнала неизвестной системы (КИХ-фильтр) и аддитивного шумового сигнала n.

filt = dsp.FIRFilter;
filt.Numerator = fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],... 
{'w' 'c'});
x = 0.1*randn(1000,1);
n = 0.001*randn(1000,1);
d = filt(x) + n;

Адаптивный фильтр

Создать два dsp.LMSFilter объекты, один из которых установлен в алгоритм LMS, а другой - в нормализованный алгоритм LMS. Выберите размер шага адаптации 0,2 и установите длину адаптивного фильтра равной 13 отводам.

mu = 0.2;
lms_nonnormalized = dsp.LMSFilter(13,'StepSize',mu,...
    'Method','LMS');
lms_normalized = dsp.LMSFilter(13,'StepSize',mu,...
    'Method','Normalized LMS');

Прохождение первичного входного сигнала x и желаемый сигнал d к обоим вариациям алгоритма LMS. Переменные e1 и e2 представляют ошибку между требуемым сигналом и выходом нормализованного и ненормализованного фильтров соответственно.

[~,e1,~] = lms_normalized(x,d);
[~,e2,~] = lms_nonnormalized(x,d);

Постройте график сигналов ошибок для обоих вариантов. Сигнал ошибки для варианта NLMS сходится к нулю гораздо быстрее, чем сигнал ошибки для варианта LMS. Нормализованная версия адаптируется в гораздо меньшем количестве итераций к результату почти так же хорошо, как ненормированная версия.

plot([e1,e2]);
title('Comparing the LMS and NLMS Conversion Performance');
legend('NLMS derived filter weights', ...
       'LMS derived filter weights','Location', 'NorthEast');
xlabel('Time index')
ylabel('Signal value')

Figure contains an axes. The axes with title Comparing the LMS and NLMS Conversion Performance contains 2 objects of type line. These objects represent NLMS derived filter weights, LMS derived filter weights.

См. также

Объекты

Связанные темы

Ссылки

[1] Хейс, Монсон Х., Статистическая цифровая обработка и моделирование сигналов. Хобокен, Нью-Джерси: John Wiley & Sons, 1996, pp.493-552.

[2] Хайкин, Саймон, теория адаптивных фильтров. Река Верхнее Седло, Нью-Джерси: Прентис-Холл, Инк., 1996.