APP下载

常用数字滤波算法及其应用

2017-05-30胡超然徐枫陈永胜

科技风 2017年13期
关键词:实用滤波信号

胡超然 徐枫 陈永胜

摘要::数字滤波具有精度高、可编程、可移植、可复用、便于集成等优点,而被广泛应用于各种数字设备。本文主要利用信号的随机特性,考虑信号本身以及噪声并进行统计,并估算逼近出信号本身。从本质上讲数字滤波技术,其实就是多种数字算法技术的应用。本文以C语言为编程媒介,介绍几种常用的数字滤波技术。

关键词:算法;滤波;实用;信号

1 限幅滤波算法

1.1 限幅滤波算法原理及其应用

限幅滤波算法是将最近相邻两次采集到的数据求差,并求其绝对值。并与系统两次采样最大允许的差值进行比较,若小于等于系统最大允许差值,则认为此次采样有效,否则认为本次采样无效,系统将上次采样的数据作为本次的采样数据。

由于限幅滤波的这种特性,限幅滤波一般被用于一些被测物理量变化相对缓慢的系统,比如温度、湿度、位移等。当然要取得较好的滤波效果,必须根据实际的物理对象,设定合适的系统最大允许差值。

1.2 限幅滤波算法的代码实现

若定义当前采集数据为DataCurrent,上次采样数据为DataLast,系统最大允许差值为Value_D,滤波后的数据为Data那么限幅滤波的核心C代码可以这么写:

If((DataCurrentDataLast)>Value_D||(DataLastDataCurrent)>Value_D)Data=DataLast;

elseData=DataCurrent;

return Data;

2 算术平均滤波算法

2.1 算术平均滤波算法原理及其应用

算术平均滤波的算法比较简单,就是系统采样多组数据,求其平均数即可。

系统采用算术滤波算法后,系统的信噪比将提高N倍。算术平均滤波算法,适用于被测信号在一定时间内,采样数据在某个数据范围内上下浮动的物理量。比如液位、压力、流量等物理量。需要注意的是采用这种算法时应根据实际情况选取合适的N,否则若N数值较大时系统平滑度变高,但灵敏度变低,即外界物理量实际的变化,对于我们通过算法得出的数据影响较小;若N的数值较小时,平滑度变低。

2.2 算术平均滤波算法的代码实现

若定义当前一组数据的和为DataSum,系统数据为Data,get_data为采样函数,定义滤波后的数据为Data,N为采样次数.那么算术平均滤波算法的核心C代码可以这么写:

for(i=0;iData=DataSum/N;

returnData;

3 加权平均滤波算法

3.1 加权平均滤波算法原理及其应用

加权平均滤波算法是系统连续N次采样,并对每次采样乘以加权系数,最后求和。

加权平均滤波算法能够快速反映系统当前所受干扰的严重程度,但由于这种方法需要处理器不断计算各权系数,增加了计算量,降低了控制速度,因此这种算法一般应用于纯滞后且时间常数T较大、采用周期过程较短的系统。

3.2 加权平均滤波算法的代码实现

定义系统采样缓存为DataBuff[N];定义采样次数N;定义采样函数get_data;定义加权系数数组为DataParameter[N]={0.1,0.15,0.2,0.25,0.3}这里注意各权值相加为1,定义滤波后数据为Data需要注意的是在使用这种算法时要根据实际情况选择合适的N以及分配好每次采样相对应的权值。加权平均滤波法的核心代码为:

for(count=0;count

猜你喜欢

实用滤波信号
完形填空二则
孩子停止长个的信号
中职数学切实为就业做好铺垫
应用视角下的高职院校创业孵化园建设思考
浅析宜家家居设计
“实用”外援主唱中超二次转会
基于LabVIEW的力加载信号采集与PID控制
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
基于随机加权估计的Sage自适应滤波及其在导航中的应用