首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

自适应滤波器的概念、原理、算法实现及应用(2)

自适应滤波器的概念、原理、算法实现及应用(2)

(1)信号模型
自适应滤波的目的仍然是从观测信号中提取真实准确的期望信号,因此涉及到的信号有:

期望信号 d(n)

输入信号 x(n)=d(n)+v(n)

输出信号 y(n)

(2)算法原理
一个M阶滤波器,系数为w(m),则输出为:

y(n)=Σw(m)x(n-m) m=0…M

写成矩阵形式: y(j)=WT(j)*X(j)

n时刻的输出误差为: e(j)=d(j)-y(j)= d(j)- WT(j)*X(j)

定义目标函数为 E[e(j)^2],则有:

J(j)=E[e(j)^2]= E[(d(j)- WT(j)*X(j))^2]

当上述误差达到最小时,即实现最优滤波,这种目标函数确定的为最小方差自适应滤波。

对于目标函数J(j),需要求得使其取到最小值对应的W,这里使用梯度下降法进行最优化:

W(j+1)=W(j)+1/2*μ(-▽J(j))

▽J(j)=-2E[X(j)*( d(j)- WT(j)*X(j))]= -2E[X(j)e(j)]

W(j+1)=W(j)+μE[X(j)e(j)]

其中-2X(j)e(j)称为瞬时梯度,因为瞬时梯度是真实梯度的无偏估计,这里可以使用瞬时梯度代替真实梯度。

W(j+1)=W(j)+μX(j)e(j)

由此,可以得到自适应滤波最佳系数的迭代公式。

3.算法的收敛性
在最小均方误差自适应滤波算法中,最佳滤波器系数应该满足:

▽J(j)=0

即:-2E[X(j)*( d(j)- WT(j)*X(j))]=0

经整理后,可以得到:

WoptT =Rxx-1*Rxd

上式说明,自适应滤波的最佳滤波器系数同维纳滤波相同,与输入信号以及期望信号的相关矩阵有关。

对W(j+1)=W(j)+μX(j)e(j)等号两边求期望,并通过一系列推导,可得:

E[W(j+1)]=Wopt+Q(I-μΛ)jQH(W0-Wopt)

式中Rxx=QHΛQ, W0为自适应滤波系数的初值。

当j取到无穷大时,滤波器应达到最优状态,因此:

(I-μΛ)j=0,则有:|I-μΛ|《=1

上式即为最小均方自适应滤波的收敛条件。

Λ为输入信号的自相关矩阵Rxx的特征值构成的对角阵。

4.变步长自适应滤波算法
在整个迭代过程中,步长不变的情况称为定步长算法。为了保证算法的收敛性,一般要取一个比较小的步长值,但步长过小又容易导致算法收敛过慢。比较理想的情况是,在迭代的初始阶段,误差值较大时,取一个较大的迭代步长,以实现较快的收敛速度;随着迭代次数增加,误差逐渐减小,步长也应相应减小,达到较高的收敛精度。这种思想便称为变步长自适应滤波算法。

常用的变步长自适应滤波算法根据输入信号的或者误差值确定步长。

这里介绍两种具体的变步长算法:

(1)归一化变步长自适应滤波算法

μj =α/(β+XjTXj)

α,β均为常数,且满足0《α《2,β》=0。

该算法使用输入信号的能量对步长因子进行归一化,确保其取到合适的值。

(2)Sigmod函数变步长自适应滤波算法

μj=β(1-exp(-αej^2))

α,β均为常数,且满足0《α,0=《β《μmax。

从上述表达式中可以明显看出,随着误差增大,步长值也增大。

5.解相关自适应滤波算法
实验发现,当输入信号之间的相关性比较强时,自适应滤波的效果比较差。因此需要去除相邻两次输入信号序列的相关性,以得到较好的滤波效果。

解相关自适应滤波算法的实现过程为:

r= XjTXj-1/ Xj-1TXj-1

Zj=Xj-rXj-1

μj=βej/ ZjTXj

Wj+1=Wj+μjZj

6.变换域自适应滤波算法
根据解相关自适应滤波算法的思想,使用一组正交基对输入信号进行变换,在变换域上进行自适应滤波,最后再将滤波结果逆变换至时间域。常见的变换有傅里叶变换,分数阶傅里叶变换,小波变换,余弦变换。

算法应用与实现
下面讲述如何在实际问题中应用自适应滤波算法:

问题背景:一个点目标在x,y平面上绕单位圆做圆周运动,由于外界干扰,其运动轨迹发生了偏移。其中,x方向的干扰为均值为0,方差为0.05的高斯噪声;y方向干扰为均值为0,方差为0.06的高斯噪声。

问题分析与思路:

将物体的运动轨迹分解为X方向和Y方向,并假设两个方向上运动相互独立。分别将运动轨迹离散为一系列点,作为滤波器的输入,分别在两个方向上进行滤波,最终再合成运动轨迹。

程序设计思路:

生成期望信号-添加噪声-设置滤波器系数初值-迭代运算-最优滤波输出
返回列表