Simplemente simulé un modelo de segundo orden autorregresivo alimentado por ruido blanco y calculé los parámetros con filtros normalizados de mínimos cuadrados cuadrados de los pedidos 1-4.
Como el filtro de primer orden sub-modela el sistema, por supuesto, las estimaciones son raras. El filtro de segundo orden encuentra buenas estimaciones, aunque tiene un par de saltos bruscos. Esto es de esperar por la naturaleza de los filtros NLMS.
Lo que me confunde son los filtros de tercer y cuarto orden. Parecen eliminar los saltos bruscos, como se ve en la figura a continuación. No puedo ver lo que agregarían, ya que el filtro de segundo orden es suficiente para modelar el sistema. Los parámetros redundantes rondan alrededor de todos modos.
¿Podría alguien explicarme este fenómeno cualitativamente? ¿Qué lo causa y es deseable?
Utilicé el tamaño de paso , muestras, y el modelo AR donde es blanco ruido con varianza 1.10 4 x ( t ) = e ( t ) - 0.9 x ( t - 1 ) - 0.2 x ( t - 2 ) e ( t )
El código MATLAB, para referencia:
% 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 )' );