Acabei de simular um modelo de segunda ordem auto-regressivo, alimentado pelo ruído branco, e estimei os parâmetros com filtros de mínimos quadrados médios normalizados das ordens 1-4.
Como o filtro de primeira ordem submodela o sistema, é claro que as estimativas são estranhas. O filtro de segunda ordem encontra boas estimativas, embora tenha alguns saltos acentuados. Isso é de se esperar da natureza dos filtros NLMS.
O que me confunde são os filtros de terceira e quarta ordem. Eles parecem eliminar os saltos agudos, como pode ser visto na figura abaixo. Não vejo o que eles adicionariam, pois o filtro de segunda ordem é suficiente para modelar o sistema. Os parâmetros redundantes ficam em torno de qualquer maneira.
Alguém poderia me explicar esse fenômeno qualitativamente? O que causa e é desejável?
Eu usei o tamanho do passo , amostras, e o modelo AR que é branco ruído com variância 1.
O código MATLAB, para referência:
% 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 )' );