Сравнение эффективности сходимости между 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] Hayes, Monson H., Statistical Digital Signal Processing and Modeling. Hoboken, NJ: John Wiley & Sons, 1996, pp.493-552.

[2] Haykin, Simon, Adaptive Filter Theory. Upper Saddle River, NJ: Prentice-Hall, Inc., 1996.

Для просмотра документации необходимо авторизоваться на сайте