Warum behebt eine Übermodellierung eines adaptiven AR NLMS-Filters scharfe Spitzen?


10

Ich habe gerade ein automatisch regressives Modell zweiter Ordnung simuliert, das durch weißes Rauschen angetrieben wird, und die Parameter mit normalisierten Filtern des kleinsten mittleren Quadrats der Ordnungen 1 bis 4 geschätzt.

Da der Filter erster Ordnung das System untermodelliert, sind die Schätzungen natürlich seltsam. Der Filter zweiter Ordnung findet gute Schätzungen, obwohl er einige scharfe Sprünge aufweist. Dies ist aufgrund der Art der NLMS-Filter zu erwarten.

Was mich verwirrt, sind die Filter dritter und vierter Ordnung. Sie scheinen die scharfen Sprünge zu eliminieren, wie in der folgenden Abbildung zu sehen ist. Ich kann nicht sehen, was sie hinzufügen würden, da der Filter zweiter Ordnung ausreicht, um das System zu modellieren. Die redundanten Parameter bewegen sich sowieso um .0

Könnte mir jemand dieses Phänomen qualitativ erklären? Was verursacht es und ist es wünschenswert?

Ich habe die Schrittgröße , 10 4 Proben und das AR-Modell x ( t ) = e ( t ) - 0,9 x ( t - 1 ) - 0,2 x ( t - 2 ) verwendet, wobei e ( t ) weißes Rauschen ist Varianz 1.μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

Geben Sie hier die Bildbeschreibung ein

Der MATLAB-Code als Referenz:

% 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
Ich verstehe nicht ganz, was Sie dort planen. Welche Art von Filter simulieren Sie mit dem NLMS? - Je mehr Parameter Sie haben, desto besser können Sie sich an einen beliebigen Filter anpassen. Selbst wenn Parameter "um 0 schweben", heißt das nicht, dass sie nichts tun.
links um den

@left: Ich simuliere ein AR (2) -Modell mit konstanten Parametern, was bedeutet, dass das NLMS (2) das System vollständig beschreiben kann. Natürlich tun die zusätzlichen Parameter etwas, da sie es schaffen, die Spitzen zu reduzieren, aber ich frage mich, warum - das System ist übermodelliert, was normalerweise nur bedeutet, dass das Konfidenzintervall für die geschätzten Parameter zunimmt.
Andreas

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

Ist NLMS nicht ein MA-Modell, während Sie versuchen, ein AR-Modell zu approximieren?
Memming

1
@Memming: Das NLMS versucht, das AR-Modell zu invertieren , daher ist ein MA-Modell hier das Richtige.
Peter K.

Antworten:


2

Wenn Sie mit der Übermodellierung beginnen, wird das Fehlersignal immer weniger weiß.

Ich habe Ihren Code geändert, um das Fehlersignal (Teil des residueBegriffs) zurückzugeben.

Dieses Diagramm zeigt die Verzögerungskoeffizienten außerhalb des Nullpunkts xcorrdes Fehlers für Ordnung = 2 (blau), 3 (rot) und 4 (grün). Wie Sie sehen können, werden die Terme mit einer Verzögerung nahe, aber nicht Null immer größer.

Wenn wir uns die FFT (das Spektrum) des xcorrFehlers ansehen, sehen wir, dass die Terme mit niedrigerer Frequenz (die die großen Abweichungen verursachen) kleiner werden (der Fehler enthält mehr hohe Frequenzen).

Es scheint also, dass die Übermodellierung in diesem Fall dazu führt, dass der Fehler hochpassgefiltert wird, was (für dieses Beispiel) von Vorteil ist.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.