Система идентификации конечной импульсной характеристики с использованием нормализованного LMS-алгоритма

Чтобы улучшить эффективность LMS-алгоритма, нормализованный вариант (NLMS) использует адаптивный размер шага, основанный на степени сигнала. Когда изменяется степень входного сигнала, алгоритм вычисляет вход степени и настраивает размер шага, чтобы сохранить соответствующее значение. Размер шага изменяется со временем, и в результате нормализованный алгоритм быстрее сходится с меньшим количеством выборок во многих случаях. Для входных сигналов, которые изменяются медленно с течением времени, нормализованный LMS-алгоритм может быть более эффективным подходом LMS.

Для получения примера, использующей подход LMS, смотрите Систему идентификации конечной импульсной характеристики Filter Using LMS-алгоритма.

Примечание.Если вы используете R2016a или более ранний релиз, замените каждый вызов объекта эквивалентным синтаксисом шага. Для примера, obj(x) становится step(obj,x).

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

Создайте dsp.FIRFilter объект, который представляет систему, которая будет идентифицирована. Используйте fircband функция для разработки коэффициентов фильтра. Спроектированный фильтр является lowpass фильтром, ограниченным 0,2 пульсации в полосе остановки.

filt = dsp.FIRFilter;
filt.Numerator = fircband(12,[0 0.4 0.5 1],[1 1 0 0],[1 0.2],... 
{'w' 'c'});

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

x = 0.1*randn(1000,1);
n = 0.001*randn(1000,1);
d = filt(x) + n;

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

Чтобы использовать нормированное изменение LMS-алгоритма, установите Method свойство на dsp.LMSFilter на 'Normalized LMS'. Установите длину адаптивного фильтра равную 13 отводам, а размер шага равным 0,2.

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

Передайте основной входной сигнал x и желаемый сигнал d в фильтр LMS.

[y,e,w] = lms(x,d);

Область выхода y адаптивного фильтра является сигнал, сходящийся к желаемому сигналу d, таким образом минимизируя ошибку e между двумя сигналами.

plot(1:1000, [d,y,e])
title('System Identification by Normalized LMS Algorithm')
legend('Desired','Output','Error')
xlabel('Time index')
ylabel('Signal value')

Figure contains an axes. The axes with title System Identification by Normalized LMS Algorithm contains 3 objects of type line. These objects represent Desired, Output, Error.

Сравнение адаптированного фильтра с неизвестной системой

Вектор w весов представляет коэффициенты LMS-фильтра, который приспособлен напоминать неизвестную систему ( конечную импульсную характеристику). Чтобы подтвердить сходимость, сравните числитель конечной импульсной характеристики и оценочные веса адаптивного фильтра.

stem([(filt.Numerator).' w])
title('System Identification by Normalized LMS Algorithm')
legend('Actual filter weights','Estimated filter weights',...
       'Location','NorthEast')

Figure contains an axes. The axes with title System Identification by Normalized LMS Algorithm contains 2 objects of type stem. These objects represent Actual filter weights, Estimated 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.