滤波分为软件跟硬件滤波:
硬件滤波:一定规格的电容、电阻组成的RC滤波器或采用电感、电容组成的LC滤波器灯模拟滤波器进行滤波。
软件滤波:也成为数字滤波
1.限幅滤波
根据经验判断,确定两次采用允许的最大偏差值(设为A),每次检测到新值时判断:
2.滑动平均滤波(递推平均滤波)
把连续N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则)把队列中的N个数据进行算术平均运算,就可以获得新的滤波结果。
|优点: 对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统
|缺点: 不易于消除干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合;
涉及到队列,比较浪费RAM,ROM(它和限幅滤波器的优缺点正好相反)。不适用于对要求数据计算速度较快或测量速度较慢的实时控制。
3.中值滤波
连续采样n次(一般取奇数),把n次采样值按大小排列,形成有序数据,取中间值为本次有效值。
4.加权平均滤波
各个系数选取通常采用加权系数法,即:
l 优点:加权递推平均法适用于系统纯滞后时间常数τ较大、采样周期较短的过程。
l 缺点:对于纯滞后时间常数τ较小,采样周期较长,变化缓慢的信号,不能迅速反应系统当前所受干扰的严重程度,滤波效果差
5.算术平均滤波
连续取N个采样值进行算术平均运算。
l N值较大时,信号平滑度较高,但是灵敏度较低;N大平滑不灵敏
l N值较小时,信号平滑度低,但灵敏度高。N小不滑但灵敏
l 优点:适用于对一般具有随机干扰的信号进行滤波
l 缺点:因涉及到除法运算,在一些没有除法指令的MCU下,运算会比较慢。存在滞后
6.惯性滤波法(一阶滞后滤波法)
模拟量输入通道中,常用一阶低通RC滤波器来削弱干扰,但是这种方法 于对低频干扰的滤波,因为时间常熟越大,R值越大,漏电流增加。惯性滤波很好的克服了上述的缺点,采用数字形式实现的低通滤波的动态滤波方法,在滤波常数要求大的场合,这种方法尤其管用。
惯性滤波法适用于波动频繁的被测量滤波,能很好地消除周期性干扰,但是也带来了相位滞后,且灵敏度不高,滞后角大小选取有关。
7.零相位滤波
动态测试信号处理中,滤波器常用于抗混滤波,避免傅里叶变换时产生混叠,或从具有多种频率成分的复杂信号中,将感兴趣的频率成分提取出来,将不感兴趣的频率成分衰减掉。
8.卡尔曼滤波
卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测矩阵,对系统状态进行最优估算的算法,由于观测数据中包含系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。由于它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用(便于编程、实时性好)
9.粒子滤波
粒子滤波,通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被称为“粒子”故叫粒子滤波。
简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。这里的样本即指粒子,当样本数量N→∝时可以逼近任何形式的概率密度分布。
应用范围
l 粒子滤波在非线性、非高斯系统表现出来的优越性,决定了它的应用范围的广泛性。
l 粒子滤波器的多模态处理能力,也是它应用广泛的原因之一
国际上,粒子滤波已被应用于各个领域。
u 经济学领域:它被应用在经济数据预测;
u 军事领域:已经被应用于雷达跟踪空中飞行物,空对空、空对地的被动式跟踪;
u 交通管制领域:它被应用在对车或人视频监控;它还用于机器人的全局定位。
10.复合算法
a.中位值平均滤波法
中位值平均滤波法相当于“中位值滤波法”+“算术平均滤波法”。
方法:连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14
优点:融合了两种滤波法的优点这种方法既能抑制随机干扰,又能滤除明显的脉冲干扰。
缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM
b.限幅均值滤波法
优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
缺点:比较浪费RAM
适用范围:缓变信号
几种滤波算法区别:
说明算术平均滤波,加权平均滤波和滑动平均滤波之间的区别以及各自的用途
|算术平均滤波每次采样值所占的比例均相等,可用于任何场合:如压力、流量等。
|加权平均滤波则每次采样值所占的比例不等,可以突出某些部分,使其所占的比例增大,但各次采样的系数总和为∑Ci=1;这种滤波主要用于那些想突出采样的某些部分的场合。
|滑动平均滤波则是每次只更新一个采样值,因而采样速度快。此滤波主要用于实时性要求比较快的场合。
1.限幅滤波:
b.对相邻值之间的偏差进行限幅
2.中值+滑动均值滤波:
设定大小为windows的数组Data,sum计算去掉最大最小值的和值,算剩下数的平均值输出
3.Kalman滤波
常见的数字滤波算法
C语言面向对象实现滑动均值滤波与平均值滤波
卡尔曼(Kalman)滤波算法原理、C语言实现及实际应用
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5036.html