Я просто смоделировал авторегрессивную модель второго порядка на основе белого шума и оценил параметры с помощью нормализованных фильтров наименьших квадратов порядка 1-4.
Поскольку фильтр первого порядка недооценивает систему, оценки, конечно, странные. Фильтр второго порядка находит хорошие оценки, хотя имеет несколько резких скачков. Этого следует ожидать от природы фильтров NLMS.
Что меня смущает, так это фильтры третьего и четвертого порядка. Похоже, они устраняют резкие скачки, как видно на рисунке ниже. Я не вижу, что они добавят, поскольку фильтра второго порядка достаточно для моделирования системы. В любом случае избыточные параметры колеблются около .
Может ли кто-нибудь качественно объяснить мне это явление? Чем это вызвано и желательно ли?
Я использовал размер шага , выборок, и модель AR где - белый шум с дисперсией 1.
Код MATLAB, для справки:
% ar_nlms.m
function th=ar_nlms(y,order,mu)
N=length(y);
th=zeros(order,N); % estimated parameters
for t=na+1:N
phi = -y( t-1:-1:t-na, : );
residue = phi*( y(t)-phi'*th(:,t-1) );
th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
end
% main.m
y = filter( [1], [1 0.9 0.2], randn(1,10000) )';
plot( ar_nlms( y, 2, 0.01 )' );