Perché l'over-modeling di un filtro NLMS AR adattivo corregge picchi acuti?


10

Ho appena simulato un modello di secondo ordine auto-regressivo alimentato dal rumore bianco e valutato i parametri con filtri normalizzati al minimo medio quadrato degli ordini 1-4.

Poiché il filtro del primo ordine sottostima il sistema, ovviamente le stime sono strane. Il filtro del secondo ordine trova buone stime, sebbene abbia un paio di salti netti. Ciò è prevedibile dalla natura dei filtri NLMS.

Ciò che mi confonde sono i filtri del terzo e quarto ordine. Sembrano eliminare i salti bruschi, come si vede nella figura sotto. Non riesco a vedere cosa aggiungerebbero, poiché il filtro del secondo ordine è sufficiente per modellare il sistema. I parametri ridondanti si aggirano comunque intorno a .0

Qualcuno potrebbe spiegare questo fenomeno per me, qualitativamente? Cosa lo provoca ed è desiderabile?

Ho usato la dimensione del passo , campioni e il modello AR dove è bianco rumore con varianza 1.10 4 x ( t ) = e ( t ) - 0,9 x ( t - 1 ) - 0,2 x ( t - 2 ) e ( t )μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

inserisci qui la descrizione dell'immagine

Il codice MATLAB, per riferimento:

% 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 )' );

2
Non capisco bene cosa stai tramando lì. Che tipo di filtro stai simulando con il NLMS? - Ovviamente, più parametri hai, migliore sarà la possibilità di adattarti a un filtro arbitrario; anche se i parametri "passano intorno a 0" ciò non significa che non facciano nulla.
leftaroundabout

@left: sto simulando un modello AR (2) con parametri costanti, il che significa che il NLMS (2) dovrebbe essere in grado di descrivere completamente il sistema. Ovviamente i parametri extra fanno qualcosa, poiché riescono a ridurre i picchi, ma mi chiedo perché : il sistema è sovrastimato, il che di solito significa solo che l'intervallo di confidenza per i parametri stimati aumenta.
Andreas,

anx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}

NLMS non è un modello MA mentre stai tentando di approssimare un modello AR?
Memming

1
@Memming: il NLMS sta cercando di invertire il modello AR, quindi un modello MA è la cosa giusta da fare qui.
Peter K.

Risposte:


2

Ciò che sembra accadere è, quando inizi a sovrastimare, il segnale di errore diventa sempre meno bianco.

Ho modificato il codice per restituire il segnale di errore (parte del residuetermine).

Questo diagramma mostra i coefficienti off-zero-lag xcorrdell'errore per ordine = 2 (blu), 3 (rosso) e 4 (verde). Come puoi vedere, i termini di ritardo vicini allo zero, ma stanno diventando sempre più grandi.

Se osserviamo la FFT (spettro) xcorrdell'errore, allora vediamo che i termini di frequenza più bassa (che causano le grandi derive) stanno diventando più piccoli (l'errore contiene più alte frequenze).

Quindi, in questo caso, l'effetto dell'over-modeling è quello di filtrare l'errore passa-alto, il che (per questo esempio) è vantaggioso.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.