¿Por qué el sobremodelado de un filtro AR NLMS adaptativo repara picos agudos?


10

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

¿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 )μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

ingrese la descripción de la imagen aquí

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

2
No entiendo muy bien lo que estás tramando allí. ¿Qué tipo de filtro estás simulando con el NLMS? - Obviamente, cuantos más parámetros tenga, mejor podrá ajustarse a un filtro arbitrario; incluso si los parámetros "se mueven alrededor de 0", eso no significa que no hagan nada.
Leftaroundabout

@left: estoy simulando un modelo AR (2) con parámetros constantes, lo que significa que el NLMS (2) debería poder describir el sistema por completo. Obviamente, los parámetros adicionales hacen algo, ya que logran reducir los picos, pero me pregunto por qué : el sistema está sobremodelado, lo que generalmente significa que aumenta el intervalo de confianza para los parámetros estimados.
Andreas

@left: Lo siento, me perdí tu primera oración. Estoy trazando los valores estimados de los parámetros AR de un filtro NLMS adaptativo a lo largo del tiempo. Es decir, del modelo estimado para x ( t ) = e ( t ) - a 1 x ( t - 1 ) - a 2 x ( t - 2 ) - . . . - a n x ( t - n ) n { 1 , 2 , 3 , 4 }anx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}
Andreas

¿No es NLMS un modelo de MA mientras intenta aproximar un modelo de AR?
Memming

1
@Memming: El NLMS está tratando de invertir el modelo AR, por lo que un modelo MA es lo que hay que hacer aquí.
Peter K.

Respuestas:


2

Lo que parece estar sucediendo es que, a medida que comienza a modelar en exceso, la señal de error se vuelve cada vez menos blanca.

Modifiqué su código para devolver la señal de error (parte del residuetérmino).

Este gráfico muestra los coeficientes de retardo fuera de cero xcorrdel error del orden = 2 (azul), 3 (rojo) y 4 (verde). Como puede ver, los términos de retraso cercanos a cero son cada vez mayores en magnitud.

Si observamos el FFT (espectro) del xcorrerror, entonces vemos que los términos de frecuencia más baja (que causan las grandes desviaciones) son cada vez más pequeños (el error contiene más frecuencias altas).

Entonces, parece que el efecto del sobremodelado en este caso es filtrar el error de paso alto, lo que (para este ejemplo) es beneficioso.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.