Por que a modelagem excessiva de um filtro AR NLMS adaptável corrige picos acentuados?

10

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.0 0

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.μ=0,01104x(t)=e(t)-0,9x(t-1 1)-0,2x(t-2)e(t)

insira a descrição da imagem aqui

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 )' );
Andreas
fonte
2
Eu não entendo direito o que você está tramando lá. Que tipo de filtro você está simulando com o NLMS? - Obviamente, quanto mais parâmetros você tiver, melhor será capaz de ajustar-se a um filtro arbitrário; mesmo se os parâmetros "pairarem em torno de 0", isso não significa que eles não fazem nada.
usar o seguinte código
@left: estou simulando um modelo AR (2) com parâmetros constantes, o que significa que o NLMS (2) deve ser capaz de descrever o sistema completamente. Obviamente, os parâmetros extras fazem alguma coisa, pois conseguem reduzir os picos, mas estou me perguntando por que - o sistema é super modelado, o que geralmente significa apenas que o intervalo de confiança para os parâmetros estimados aumenta.
Andreas
@ esquerda: Desculpe, eu perdi sua primeira frase. Estou plotando os valores estimados dos parâmetros AR de um filtro NLMS adaptável ao longo do tempo. seja, do modelo estimado paraumanx(t)=e(t)-uma1 1x(t-1 1)-uma2x(t-2)-...-umanx(t-n)n{1 1,2,3,4}
Andreas
O NLMS não é um modelo MA enquanto você tenta aproximar um modelo AR?
Memming 11/03/12
11
@ Memming: O NLMS está tentando inverter o modelo AR, portanto, um modelo MA é a coisa certa a fazer aqui.
Peter K.

Respostas:

2

O que parece estar acontecendo é que, quando você começa a modelar demais, o sinal de erro fica cada vez menos branco.

Modifiquei seu código para retornar o sinal de erro (parte do residuetermo).

Esse gráfico mostra os coeficientes off-zero-lag xcorrdo erro da ordem = 2 (azul), 3 (vermelho) e 4 (verde). Como você pode ver, os termos de atraso quase zero mas estão ficando maiores em magnitude.

Se observarmos o FFT (espectro) do xcorrerro, veremos que os termos de frequência mais baixa (que causam grandes desvios) estão ficando menores (o erro está contendo mais frequências altas).

Portanto, parece que o efeito de modelagem excessiva nesse caso é filtrar com alta frequência o erro, o que (neste exemplo) é benéfico.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

function [th,err]=ar_nlms(y,order,mu)
eps = 0.000000001;
N=length(y);
th=zeros(order,N); // estimated parameters
err = zeros(1,N);
for t=order+1:N
    phi = -y( t-1:-1:t-order, : );
    err(t) = y(t)-phi'*th(:,t-1);
    residue = phi*( err(t) );
    th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
    size(residue)
end
Peter K.
fonte