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

[~,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 object. The axes object 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, Монсон Х., Статистическая Цифровая обработка сигналов и Моделирование. Хобокен, NJ: John Wiley & Sons, 1996, pp.493–552.

[2] Haykin, Саймон, адаптивная теория фильтра. Верхний Сэддл-Ривер, NJ: Prentice-Hall, Inc., 1996.