欢迎来到天天文库
浏览记录
ID:14805039
大小:46.00 KB
页数:16页
时间:2018-07-30
《10种滤波方法【私人收藏正品】》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10种滤波方法【私人收藏正品】一、限幅滤波法根据经验,确定两采样的最大差值A。优点:能够克服偶然引起的脉冲干扰。缺点:无法医学hi周期性的干扰。/*********************************************************************************************************************函数名称:AmplitudeLimiterFilter()*说明:1.调用函数GetAD(),用于取得当前采样值。2.变量说明Value:最近一次采样得值,该变量为全局变量。NewValue:当前采样值R
2、eturnValue:返回值3.参数说明A:两次采样的最大差值,视情况定。*入口:Value*出口:ReturnValue********************************************************************************************************************/#defineA10unsignedcharValue;unsignedcharAmplitudeLimiterFilter(){unsignedcharNewValue;unsignedcharReturnValue;NewV
3、alue=GetAD;if(((NewValue-Value)>A)
4、
5、((Value-NewValue)>A)))ReturnValue=Value;elseReturnValue=NewValue;returnReturnValue;}二、中值滤波法连续采样N次(N取奇数),baN次采样的按大小排列,去中间值为有效值。优点;能够克服偶然引起的脉冲干扰,对温度,液压等变化缓慢的参数有良好的滤波效果,。缺点:对流量,速度等快速变化的参数不易。/********************************************************************
6、*************************************************函数名称:MiddleValueFilter()*说明:1.调用函数GetAD(),用于取得当前采样值;Delay(),基本延时函数。2.变量说明ArrDataBuffer[N],用于存放一次性采样的N组数据Temp,完成冒泡法使用的临时寄存器i,j,k,循环使用的参数值3.参数说明N,数组长度*入口:*出口:ArrDataBuffer[(N-1)/2],返回值,本次滤波结果******************************************************
7、**************************************************************/unsigedcharMiddleValueFilter(){unsignedchari,j,k;unsigedcharTemp;unsigedcharArrDataBuffer[N];for(i=0;iArrDataBuffer[
8、k+1]){Temp=ArrDataBuffer[K];ArrDataBuffer[k]=ArrDataBuffer[k+1];ArrDataBuffer[k+1]=Temp;}}}returnArrDataBuffer[(N-1)/2];//取中值}三、算术平均滤波法连续去N个采样值进行算是平均运算;N值较大时,信号的平滑度较高,但灵活度较低;N值较小时,信号的平滑度较低,但灵活度较高;N的选取:对一般流量,N=12;对压力,N=4;优点:适用于一般具有随机干扰的信号进行滤波。这种信号的特点有一个平均值,信号在其上下波动。缺点:对测量速度较慢或要求数据计算要求较快的实时控制不
9、适用。由于要求开设队列存储历次采样数据,比较消耗RAM/*********************************************************************************************************************函数名称:ArithmeticalAverageValueFilter()*说明:1.调用函数GetAD(),用于取得当前采样值;Delay(),基本延时函数。2.变量说明Value,平均值Sum,连续采样
此文档下载收益归作者所有