维纳滤波原理及其matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
本文介绍了维纳滤波的原理及其matlab 实现,以案例的形式展示FIR 维纳滤波的特性。 关键字:FIR 维纳滤波 Matlab
1.引言
滤波技术是信号分析、处理技术的重要分支,无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的。信号分析检测与处理的一个十分重要的内容就是从噪声中提取信号,实现这种功能的有效手段之一是设计一种具有最佳线性过滤特性的滤波器,当伴有噪声的信号通过这种滤波器的时候,它可以将信号尽可能精确地重现或对信号做出尽可能精确的估计,而对所伴随噪声进行最大限度地抑制。维纳滤波器就是这种滤波器的典型代表之一。
2.维纳滤波概述
维纳(Wiener )是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。
一个线性系统,如果它的单位样本响应为)(n h ,当输入一个随机信号)(n x ,且
)()()(n v n s n x +=
(1)
其中)(n x 表示信号,)(n v )表示噪声,则输出)(n y 为
∑-=
m
m n x m h n y )()()(
(2)
我们希望)(n x 通过线性系统)(n h 后得到的)(n y 尽量接近于)(n s ,因此称)(n y 为)(n s 的估计值,用^
)(n s 表示,即
^
)()(n s n y =
(3)
则维纳滤波器的输入—输出关系可用下面图1表示。
图1
实际上,式(2)所示的卷积形式可以理解为从当前和过去的观察值)(n x ,)1(-n x ,
)2(-n x …)(m n x -,…来估计信号的当前值^
)(n s 。因此,用)(n h 进行过滤问题实际上是
一种统计估计问题。
一般地,从当前的和过去的观察值)(n x ,)1(-n x ,)2(-n x …估计当前的信号值
^
)()(n s n y =成为过滤或滤波;从过去的观察值,估计当前的或者将来的信号值)0)(()(^
≥+=N N n s n y 称为外推或预测;从过去的观察值,估计过去的信号值
)1)(()(^>-=N N n s n y 称为平滑或内插。
因此维纳滤波器又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓的最佳与最优是以最小均方误差为准则的。
如果我们分别以)(n s 与^
)(n s 表示信号的真实值与估计值,而用)(n e 表示他们之间的误差,即
)()()(^
n s n s n e -=
(4)
显然)(n e 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即它的平方的统计期望最小:
min )]([)(2
==n E n e ξ (5)
采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概
率的描述。
3.维纳-霍夫方程的求解
为了按(5)式所示的最小均方误差准则来确定维纳滤波器的冲激响应)(n h ,令)(n ξ对
)(j h 的导数等于零,即可得
m i m R
i h m R i
xx
xs ∀-=
∑,)()()(
(6)
式中,)(m R xs 是)(n s 与)(n x 的互相关函数,)(m R xx 是)(n x 的自相关函数,分别定义为
)]()([m n s n x E R xs += )]()([m n x n x E R xx +=
式(6)称为维纳滤波器的标准方程或维纳-霍夫(Wiener-Hopf )方程。如果已知)(m R xs 和
)(m R xx ,那么解此方程即可求的维纳滤波器的冲激响应。
式(6)所示标准方程右端的求和范围即i 的取值范围没有具体标明,实际上有三种情况:
(1) 有限冲激响应(FIR )维纳滤波器,i 从0到1-N 取得有限个整数值;
(2) 非因果无限冲激响应(非因果IIR )维纳滤波器,i 从∞-到∞+取所有整数值; (3) 因果无限冲激响应(因果IIR )维纳滤波器,i 从0到∞+取正整数值。
上述三种情况下标准方程的解法不同,本文只描述FIR 维纳滤波器的求解。 设滤波器冲激响应序列的长度为N ,冲激响应矢量为
T
N h h h h )]1()....1()0([-=
(7)
滤波器输入数据矢量为
T
N n x n x n x n x )]1()...1()([)(+--=
(8)
则滤波器的输出为
)()()()(^
n x h h n x n s n y T
T ===
(9)
这样,式(6)所示的维纳-霍夫方程可写成
R h P T
T
=或Rh P =
(10)
其中
)]()([n s n x E P =
(11)
是)(n s 与)(n x 的互相关函数,它是一个N 维列矢量;R 是)(n x 的自相关函数,是N 阶方阵
)]()([n x n x E R T
=
(12)
利用求逆矩阵的方法直接求解式(10),得
P R h opt 1
-=
(13) 这里opt 表示“最佳”,这就是FIR 维纳滤波器的冲激响应。
维纳滤波器的matlab 实现
问题描述
假设一个点目标在x ,y 平面上绕单位圆做圆周运动,由于外界干扰,其运动轨迹发生了偏移。其中,x 方向的干扰为均值为0,方差为的高斯噪声;y 方向干扰为均值为0,方差为的高斯噪声。
1) 产生满足要求的x 方向和y 方向随机噪声500个样本; 2) 明确期望信号和观测信号;
3) 试设计一FIR 维纳滤波器,确定最佳传递函数:1
opt xx xs h R R -=,并用该滤波器处理观
测信号,得到其最佳估计。(注:自行设定误差判定阈值,根据阈值确定滤波器的阶数或传递函数的长度)。