为什么对自适应AR NLMS滤波器进行过建模可以解决尖峰?


10

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

由于一阶滤波器对系统建模不足,因此估计当然很奇怪。尽管二阶滤波器有一些急剧的跳跃,但它找到了很好的估计。从NLMS过滤器的性质可以预期到这一点。

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

有人可以定性地为我解释这种现象吗?是什么原因造成的,它是可取的吗?

我用步长,的样品,并且AR模型其中是白色差异噪声1。μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

在此处输入图片说明

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

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

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

@left:对不起,我错过了你的第一句话。我正在绘制随时间变化的自适应NLMS滤波器的AR参数的估计值。即从估计的模型为anx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}
Andreas

尝试逼近AR模型时,NLMS是否不是MA模型?
纪念2012年

1
@Memming:NLMS正在尝试反转 AR模型,因此MA模型是正确的做法。
Peter K.

Answers:


2

似乎正在发生的是,随着您开始过度建模,错误信号变得越来越白。

我修改了您的代码以返回错误信号(该residue术语的一部分)。

此图显示了xcorr阶数= 2(蓝色),3(红色)和4(绿色)时的误差的零时滞系数。如您所见,接近但不为零的滞后项的幅度越来越大。

如果我们看一下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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.