常见的信号处理滤波方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
低通滤波:又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC 低通滤波器的功能。
适用范围:单个信号,有高频干扰信号。
一阶低通滤波的算法公式为:
Y(n)X(n)(1)Y(n 1)αα=+--
式中:
α是滤波系数;X(n)是本次采样值;Y(n 1)-是上次滤波输出值;Y(n)是本次滤波输出值。
滤波效果1:
红色线是滤波前数据(matlab 中生成的正弦波加高斯白噪声信号)
黄色线是滤波后结果。
滤波效果2:
matlab中函数,相当于一阶滤波,蓝色是原始数据(GPS采集到的x(北)方向数据,单位m),红色是滤波结果。
一阶滤波算法的不足:
一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。
互补滤波:适用于两种传感器进行融合的场合。必须是一种传感器高频特性好(动态响应好但有累积误差,比如陀螺仪。),另一传感器低频特性好(动态响应差但是没有累积误差,比如加速度计)。他们在频域上互补,所以进行互补滤波融合可以提高测量精度和系统动态性能。 应用:陀螺仪数据和加速度计数据的融合。 互补滤波的算法公式为:
1122Y(n)X (n)(X (n)Y(n 1))αα+=+--
式中:1α和2α是滤波系数;1X (n)和2X (n)是本次采样值;Y(n 1)-是上次滤波输出值;Y(n)是本次滤波输出值。
滤波效果(测试数据):
蓝色是陀螺仪
信号,红色是加
速度计信号,黄
色是滤波后的
角度。
互补滤波实际效果:
卡尔曼滤波:卡尔曼滤波器是一个“optimal recursive data processing algorithm (最优化自回归数据处理算法)”。对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测。
首先,用于测量的系统必须是线性的。
(k)(k 1)(k)(k)X AX BU w =-++
(k)(k)(k)Z HX v =+
(k)X 是系统k 时刻的状态,(k)U 是系统k 时刻的控制量。(k)Z 是系统k 时刻的测量值。A 和B 为系统参数,(k)w 和(k)v 分别表示过程和测量的噪声,H 是测量系统参数。
在进行卡尔曼滤波时:
首先进行先验预测:
(k 1|k)(k |k)(k)(k)X AX BU w +=++
计算先验预测方差:
'(k 1|k)(k |k)(k)P AP A Q +=+
计算增益矩阵:
(k 1)(k 1|k)'/((k 1|k)'(k 1))Kg P H HP H R +=++++
后验估计值:
(k 1|k 1)(k 1|k)(k 1)(Z(k 1)(k 1|k))X X Kg HX ++=++++-+ 后验预测方差:
(k 1|k 1)(1(k 1))(k 1|k)P Kg H P ++=-++
其中,(k)Q 是系统过程激励噪声协方差,(k)R 是测量噪声协方差。
举例说明:
(下文中加粗的是专有名词,需要理解)
预测小车的位置和速度的例子(博客+自己理解):
小车上面安装了GPS 传感器,这个传感器的精度是10米。但是如果小车行驶的荒野上面有河流和悬崖的话,10米的范围就太大,很容易掉进去进而无法
继续工作。所以,单纯靠GPS 的定位是无法满足需求的。另外,如果有人说小车本身接收操控着发送的运动指令,根据车轮所转动过的圈数时能够知道它走了多远,但是方向未知,并且在路上小车打滑车轮空转的现象绝对是不可避免。所以,GPS 以及车轮上面电机的码盘等传感器是间接地为我们提供了小车的信息,这些信息包含了很多的和不确定性。如果将所有这些信息综合起来,就能够通过计算得到我们想要的准确信息
小车的状态向量可以写为:
{,}'k x p v =。协方差pp pv vp vv P ∑∑⎧⎫=⎨⎬∑∑⎩⎭,一般初始化为1001⎧⎫⎨⎬⎩⎭
第一步:根据k-1时刻的状态来预测k 时刻的状态,有
11k k k p p tv δ--=+(上次位置+上次速度估计*t δ=当前位置先验估计) 1k k v v -=(认为速度不变)
写成矩阵形式:
1101k k t x x δ-⎡⎤=⎢⎥⎣⎦(先验状态估计向量),令101t A δ⎡⎤=⎢⎥⎣⎦
表示系统固有特性参数(这个名词是我生造的,便于理解)矩阵。
T k k P AP A =(先验状态估计协方差矩阵)(有数学推导过程,是和概率论和矩阵协方差相关的内容,还在研究中)
第二步:确定外部控制影响
比如在k-1时刻给小车发送了刹车指令,假设刹车加速度为a (0<),
2
1112
k k k p p tv a t δδ--=++(第一步结果+刹车导致的位移) 1k k v v a t δ-=+(上次速度+本次控制加速度*t δ=当前速度先验估计) 结合第一步,写成矩阵形式,
212k k t x Ax a t δδ-⎡⎤⎢⎥=+⎢⎥⎢⎥⎣⎦,令22t B t δδ⎡⎤
⎢⎥=⎢⎥⎢⎥⎣⎦
表示控制矩阵,令k u a =表示控制向量。
第三步:确定外部不确定性影响。
假设不确定干扰项为k w ,k w 成高斯分布,协方差为k Q ,称为过程激励噪声协方差,那么结合前两步,得到
1k k k k x Ax Bu w -=++(先验状态估计向量)
T k k k P AP A Q =+。(先验状态估计协方差矩阵)
前三步属于先验估计,进行一个简单总结:
从前三步看出:先验估计1k k k k x Ax Bu w -=++,分为三个部分,一是上一次的最优估计,二是这一次的控制量,三是这一次的不确定性影响,假定不
确定性影响成高斯分布。先验估计协方差矩阵1
T k k k P AP A Q -=+,根据前一次的后验估计的协方差进行递推,再加上这次先验估计的不确定对系统造成的影响。
第四步,确定测量系统参数H 。
k k z Hx =。k z 是只考虑测量单位换算后的测量结果。
传感器的输出值不一定与状态向量中的元素对等,需要进行换算。例如测量到的气压换算成高度。但在本例中,传感器直接测量到了小车的位移和速度,所
以不需要进行换算,这时1001H ⎡⎤=⎢⎥⎣⎦
,是单位矩阵。H 的维数取决于状态向量元素个数和观测量的个数,不一定是方阵。如果在本例中只测量了速度,那么[]01H =。同理,只测量位移,那么[]10H =,这时,如果测量的
位移单位是mm ,而状态向量中位移单位是m ,那么[]0.0010H
= 第五步,确定测量系统噪声(k)v 和其测量噪声协方差k R 。
传感器测量会有一定误差,假定误差量符合高斯分布。观测噪声向量用(k)v 表示,其测量噪声协方差用k R 表示。那么测量值k z 可以表示为:
(k)k k z Hx v =+,k z 是考虑测量单位和测量误差之后的测量结果。