Адаптивный фильтр адаптирует свои коэффициенты фильтра inorder, чтобы совпадать с коэффициентами неизвестной системы. Цель состоит в том, чтобы минимизировать сигнал ошибки между выходом неизвестной системы и выходом адаптивного фильтра. Для того же входа, когда эти два выходных параметров сходятся и соответствуют тесно, коэффициенты двух фильтров, как говорят, соответствуют тесно. Адаптивный фильтр в этом состоянии напоминает неизвестную систему. Этот пример сравнивает уровень, на котором эта сходимость происходит для этих двух LMS-алгоритмов - нормированный LMS-алгоритм, 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;
Выберите размер шага адаптации 0,2 и установите длину адаптивного фильтра к 13 касаниям.
mu = 0.2; lms_normalized = dsp.LMSFilter(13,'StepSize',mu,... 'Method','Normalized LMS'); lms_nonnormalized = dsp.LMSFilter(13,'StepSize',mu,... 'Method','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');
[1] Hayes, Монсон Х., статистическая цифровая обработка сигналов и Modeling, John Wiley & Sons, 1996, 493–552.
[2] Haykin, Саймон, адаптивная теория фильтра, Prentice-Hall, Inc., 1996