20170328_滤波

之前学DSP,学了一学期对于滤波这个概念只有了一个大概的了解,现在需要应用了才进一步的学习。


1、滤波

经典滤波:是根据傅立叶分析和变换提出的一个工程概念。根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。换句话说,就是工程信号是不同频率的正弦滤波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。

现代滤波:用模拟电子电路对模拟信号进行滤波,其基本原理就是利用电路的频率特性实现对信号中频率成分的选择。根据频率滤波时,是把信号看成是由不同频率正弦波叠加而成的模拟信号,通过选择不同的频率成分来实现信号滤波。

(我之前就一直这样理解滤波的,还只是停留在高通、低通、带通,所以看论文的时候提到各种滤波就蒙了,什么粒子滤波,就有点不太理解。那么卡尔曼、粒子滤波是什么样的?下面来进行解答)

2、滤波是干什么的?

从含有干扰的接收信号中提取有用信号的一种技术。是根据观察某一随机过程的结果,对另一与之有关的随机过程进行估计的概率理论与方法。而且接收到的信号一定是存在干扰的,所以滤波在信号处理中必不可少的。

做个不太恰当的比喻,现在手里有一堆各种线缠成一团,想要把其中还能用的一种线择出来,那么就要先知道种线是可以再用的,这就需要我们结合之前的经验(比方说红线买的时候最结实、蓝线买的时间最短,所以认为红蓝两线最有可能还能再用,预测值),以及观察(现在这团线中红色和绿色的线看起来成色最好,观测值),那么到底怎么抉择最好的是哪种,我们就要根据这两个值到底哪个靠谱或者结合这两个值得到最终的估计值以及该估计值的不确定度(可以用的线),然后把这种线择出来(择出来的过程就是高通、低通、带通了。确定择什么才是卡尔曼、粒子滤波的目的,而不是类似于高通什么的。


3、滤波思路

接收信号的过程是一个随机过程,接收到的信号是一个随机变量,而且根据各个系统,我们可以根据输入信号以及其他条件对输出信号进行估计得到一个估计值。有了接收到的信号(观测值)和估计值这两个值,我们就想要通过这两个不是特别准确的值来算出一个更加靠谱的值(这就是我们说的有用的信号)。


4、卡尔曼滤波

推荐一篇博文,讲得很好:http://blog.csdn.net/karen99/article/details/7771743#comments

对百度百科上的例子,我是这样理解的:

卡尔曼滤波条件:一个线性变化系统,知道其变化规律同时又有该系统的测量值,以及变化规律的噪声以及测量噪声都是高斯白噪声

一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。卡尔曼滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。这里所说的系统状态,是总结系统所有过去的输入和扰动对系统的作用的最小参数的集合,知道了系统的状态就能够与未来的输入与系统的扰动一起确定系统的整个行为。卡尔曼滤波的一个典型实例是从一组有限的,对物体位置的,包含噪声的观察序列中预测出物体的坐标位置及速度。

受噪声干扰的状态量是个随机量,不可能测得精确值,但可对它进行一系列观测,并依据一组观测值,按某种统计观点对它进行估计。使估计值尽可能准确地接近真实值,这就是最优估计。真实值与估计值之差称为估计误差。若估计值的数学期望与真实值相等,这种估计称为无偏估计。卡尔曼提出的递推最优估计理论,采用状态空间描述法,在算法采用递推形式,卡尔曼滤波能处理多维和非平稳的随机过程。

卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。用一个例子来解释:

假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分布(Gaussian Distribution)。[系统估计,方法,根据初始值进行估计]另外,我们在房间里放一个温度计[测量值],但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。

好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。

假如我们要估算k时刻的实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

由于我们用于估算k时刻的实际温度有两个温度值,分别是23度[与前一时刻相同,是预测值]和25度[温度计测量值]。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的协方差(covariance)来判断。因为Kg=5^2/(5^2+4^2)[利用高斯噪声偏差和不确定度],所以Kg=0.61,我们可以估算出k时刻的实际温度值是:23+0.61*(25-23)=24.22度。可以看出,因为温度计的协方差[Cov(X,Y)=E(((X-E(X))(Y-E(Y)))即Cov(X,Y)=E(XY)-E(X)E(Y)](covariance)比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.22度)的偏差。算法如下:((1-Kg[协方差的值])*5[预测值的偏差]^2)^0.5=3.12[进入下一时刻时刻,该估计值的偏差]。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的3.12就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。


5、粒子滤波

同样有一篇很棒的博文:http://www.cnblogs.com/konlil/archive/2012/02/05/2339142.html



1、滤波是干什么的?

从含有干扰的接收信号中提取有用信号的一种技术。是根据观察某一随机过程的结果,对另一与之有关的随机过程进行估计的概率理论与方法。而且接收到的信号一定是存在干扰的,所以滤波在信号处理中必不可少的。


2、滤波思路

接收信号的过程是一个随机过程,接收到的信号是一个随机变量,而且根据各个系统,我们可以根据输入信号以及其他条件对输出信号进行估计得到一个估计值。有了接收到的信号(观测值)和估计值这两个值,我们就想要通过这两个不是特别准确的值来算出一个更加靠谱的值(这就是我们说的有用的信号)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值