我只是模拟了由白噪声激发的自回归二阶模型,并使用1-4阶的标准化最小均方滤波器估计了参数。

作为一阶滤波器下模型该系统,当然,估计是奇怪的。尽管二阶滤波器有一些急剧的跳跃,但它找到了很好的估计。从NLMS过滤器的性质可以预料到这一点。

让我感到困惑的是三阶和四阶滤波器。如下图所示,它们似乎消除了急剧的跳跃。我看不到它们会添加什么,因为二阶滤波器足以对系统建模。无论如何,多余的参数都徘徊在$ 0 $附近。

有人可以定性地为我解释这种现象吗?

是什么原因造成的?

我使用步长$ \ mu = 0.01 $,$ 10 ^ 4 $样本和AR模型$ x(t)= e(t)-0.9 x(t-1)-0.2x(t-2)$,其中$ e(t)$是方差为1的白噪声。



MATLAB代码,供参考:

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


评论

我不太明白你在那儿密谋什么。您正在用NLMS模拟哪种过滤器? —显然,您拥有的参数越多,就越适合于任意过滤器;即使参数“在0左右徘徊”也不意味着它们什么也不做。

@left:我正在模拟具有恒定参数的AR(2)模型,这意味着NLMS(2)应该能够完整地描述系统。显然,额外的参数可以起到一定作用,因为它们设法减少了尖峰,但是我想知道为什么-系统过建模,这通常仅意味着估计参数的置信区间增加。

@left:对不起,我错过了你的第一句话。我正在绘制随时间变化的自适应NLMS滤波器的AR参数的估计值。即来自估计模型$ x(t)= e(t)-a_1x(t-1)-a_2x(t-2)-...- a_nx(tn)$的$ n \ in \ left \ { 1,2,3,4 \ right \} $

尝试逼近AR模型时,NLMS是否不是MA模型?

@Memming:NLMS试图反转AR模型,因此MA模型是正确的选择。

#1 楼



我修改了代码以返回错误信号(属于residue术语的一部分)。 />
该图显示了阶数= 2(蓝色),3(红色)和4(绿色)时误差xcorr的零时滞系数。如您所见,接近但不为零的滞后项的幅度越来越大。

如果我们看一下误差xcorr的FFT(频谱),那么我们就会看到,低频项(引起大漂移)正在变小(误差包含更多的高频) )。

因此,在这种情况下,过度建模的作用似乎是对错误进行高通滤波,这是有益的。(对于本例而言)。





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