欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    一些软件滤波算法地原理和程序源代码.doc

    • 资源ID:18072       资源大小:80.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一些软件滤波算法地原理和程序源代码.doc

    word1、限幅滤波法又称程序判断滤波法    A、方法:       根据经验判断,确定两次采样允许的最大偏差值设为A       每次检测到新值时判断:       如果本次值与上次值之差<=A,如此本次值有效       如果本次值与上次值之差>A,如此本次值无效,放弃本次值,用上次值代替本次值    B、优点:       能有效克制因偶然因素引起的脉冲干扰    C、缺点       无法抑制那种周期性的干扰       平滑度差cpp view plain copy 1. / eg.  2. #define A 10  3.   4. char value;  5.   6. char filter()  7.   8.     char new_value;  9.     new_value = get_ad();  10.     if (new_value - value > A) | (value - new_value > A)  11.         return value;  12.     return new_value;    13.   2、中位值滤波法    A、方法:       连续采样N次N取奇数       把N次采样值按大小排列       取中间值为本次有效值    B、优点:       能有效克制因偶然因素引起的波动干扰       对温度、液位的变化缓慢的被测参数有良好的滤波效果    C、缺点:       对流量、速度等快速变化的参数不宜cpp view plain copy 1. / eg.  2. /*   N值可根据实际情况调整 3. 排序采用冒泡法*/  4. #define N   11  5.   6. char filter()  7.   8. char value_bufN;  9. char count,i,j,temp;  10. for (count=0;count<N;count+)  11.     value_bufcount = get_ad();  12.     delay();  13.   14. for (j=0;j<=N;j+)  15.    for (i=0;i<=N-j;i+)  16.         if (value_buf > value_bufi+1)  17.           18.             temp = value_buf;  19.             value_buf = value_bufi+1;  20.             value_bufi+1 = temp;  21.           22.       23.   24. return value_buf(N-1)/2;  25.    3、算术平均滤波法    A、方法:       连续取N个采样值进展算术平均运算       N值较大时:信号平滑度较高,但灵敏度较低       N值较小时:信号平滑度较低,但灵敏度较高       N值的选取:一般流量,N=12;压力:N=4    B、优点:       适用于对一般具有随机干扰的信号进展滤波       这样信号的特点是有一个平均值,信号在某一数值围附近上下波动    C、缺点:       对于测量速度较慢或要求数据计算速度较快的实时控制不适用       比拟浪费RAMcpp view plain copy 1. / eg.  2. #define N 12  3.   4. char filter()  5.   6.     int sum = 0;  7.     for(count=0;count<N;count+)  8.         sum + = get_ad();  9.         delay();  10.       11.     return (char)(sum/N);  12.          4、递推平均滤波法又称滑动平均滤波法    A、方法:       把连续取N个采样值看成一个队列       队列的长度固定为N       每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原如此)       把队列中的N个数据进展算术平均运算,就可获得新的滤波结果       N值的选取:流量,N=12;压力:N=4;液面,N=412;温度,N=14    B、优点:       对周期性干扰有良好的抑制作用,平滑度高       适用于高频振荡的系统       C、缺点:       灵敏度低       对偶然出现的脉冲性干扰的抑制作用较差       不易消除由于脉冲干扰所引起的采样值偏差       不适用于脉冲干扰比拟严重的场合       比拟浪费RAMcpp view plain copy 1. #define N 12  2.   3. char value_bufN;  4. char i=0;  5.   6. char filter()  7.   8.     char count;  9.     int sum=0;  10.     value_bufi+ = get_ad();  11.     if (i = N)  12.         i = 0;  13.     for (count=0;count<N;count+)  14.         sum += value_bufcount;  15.     return (char)(sum/N);  16.         5、中位值平均滤波法又称防脉冲干扰平均滤波法    A、方法:       相当于“中位值滤波法+“算术平均滤波法       连续采样N个数据,去掉一个最大值和一个最小值       然后计算N-2个数据的算术平均值       N值的选取:314    B、优点:       融合了两种滤波法的优点       对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差    C、缺点:       测量速度较慢,和算术平均滤波法一样       比拟浪费RAMcpp view plain copy 1. / eg.  2. #define N 12  3.   4. char filter()  5.   6.     char count,i,j;  7.     char value_bufN;  8.     int sum=0;  9.     for(count=0;count<N;count+)  10.         value_bufcount = get_ad();  11.         delay();  12.       13.   14.     for (j=0;j<=N;j+)  15.         for (i=0;i<=N-j;i+)  16.             if (value_buf > value_bufi+1)  17.               18.                 temp = value_buf;  19.                 value_buf = value_bufi+1;  20.                 value_bufi+1 = temp;  21.               22.           23.       24.   25.     for(count=1;count<N-1;count+)  26.         sum += valuecount;  27.     return (char)(sum/(N-2);  28.   6、限幅平均滤波法    A、方法:       相当于“限幅滤波法+“递推平均滤波法       每次采样到的新数据先进展限幅处理,       再送入队列进展递推平均滤波处理    B、优点:       融合了两种滤波法的优点       对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差    C、缺点:       比拟浪费RAM 7、一阶滞后滤波法    A、方法:       取a=01       本次滤波结果=1-a*本次采样值+a*上次滤波结果    B、优点:       对周期性干扰具有良好的抑制作用       适用于波动频率较高的场合    C、缺点:       相位滞后,灵敏度低       滞后程度取决于a值大小       不能消除滤波频率高于采样频率的1/2的干扰信号cpp view plain copy 1. / eg.  2. /* 为加快程序处理速度假定基数为100,a=0100 */  3.   4. #define a 50  5.   6. char value;  7.   8. char filter()  9.   10.     char new_value;  11.     new_value = get_ad();  12.     return (100-a)*value + a*new_value;  13.         8、加权递推平均滤波法    A、方法:       是对递推平均滤波法的改良,即不同时刻的数据加以不同的权       通常是,越接近现时刻的数据,权取得越大。       给予新采样值的权系数越大,如此灵敏度越高,但信号平滑度越低    B、优点:       适用于有较大纯滞后时间常数的对象       和采样周期较短的系统    C、缺点:       对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号       不能迅速反响系统当前所受干扰的严重程度,滤波效果差cpp view plain copy 1. / eg.  2. /* coe数组为加权系数表,存在程序存储区。*/  3.   4. #define N 12  5.   6. char code coeN = 1,2,3,4,5,6,7,8,9,10,11,12;  7. char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;  8.   9. char filter()  10.   11.     char count;  12.     char value_bufN;  13.     int sum=0;  14.     for (count=0,count<N;count+)  15.         value_bufcount = get_ad();  16.         delay();  17.       18.     for(count=0,count<N;count+)  19.         sum += value_bufcount*coecount;  20.     return (char)(sum/sum_coe);  21.   9、消抖滤波法    A、方法:       设置一个滤波计数器       将每次采样值与当前有效值比拟:       如果采样值当前有效值,如此计数器清零       如果采样值<>当前有效值,如此计数器+1,并判断计数器是否>=上限N(溢出)           如果计数器溢出,如此将本次值替换当前有效值,并清计数器    B、优点:       对于变化缓慢的被测参数有较好的滤波效果,        可防止在临界值附近控制器的反复开/关跳动或显示器上数值抖动    C、缺点:       对于快速变化的参数不宜       如果在计数器溢出的那一次采样到的值恰好是干扰值,如此会将干扰值当作有效值导入系统cpp view plain copy 1. / eg.  2. #define N 12  3.   4. char filter()  5.   6.     char count=0;  7.     char new_value;  8.     new_value = get_ad();  9.     while (value !=new_value);  10.       11.         count+;  12.         if (count>=N) return new_value;  13.         delay();  14.         new_value = get_ad();  15.       16.     return value;  17.   10、限幅消抖滤波法    A、方法:       相当于“限幅滤波法+“消抖滤波法       先限幅,后消抖    B、优点:       继承了“限幅和“消抖的优点       改良了“消抖滤波法中的某些缺陷,防止将干扰值导入系统    C、缺点:       对于快速变化的参数不宜  11、IIR滤波?A. 方法:    确定信号带宽, 滤之。    Y(n) = a1*Y(n-1) + a2*Y(n-2) + . + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + . + bk*X(n-k)B. 优点:    高通,低通,带通,带阻任意。设计简单(用matlabC. 缺点:    运算量大。cpp view plain copy 1. / eg.  2. int BandpassFilter4(int InputAD4)  3.   4.     int ReturnValue;  5.     int ii;  6.     RESLO=0;  7.     RESHI=0;  8.     MACS=*PdelIn;  9.     OP2=1068; /FilterCoeff44;  10.     MACS=*(PdelIn+1);  11.     OP2=8; /FilterCoeff43;  12.     MACS=*(PdelIn+2);  13.     OP2=-2001;/FilterCoeff42;  14.     MACS=*(PdelIn+3);  15.     OP2=8; /FilterCoeff41;  16.     MACS=InputAD4;  17.     OP2=1068; /FilterCoeff40;  18.     MACS=*PdelOu;  19.     OP2=-7190;/FilterCoeff48;  20.     MACS=*(PdelOu+1);  21.     OP2=-1973; /FilterCoeff47;  22.     MACS=*(PdelOu+2);  23.     OP2=-19578;/FilterCoeff46;  24.     MACS=*(PdelOu+3);  25.     OP2=-3047; /FilterCoeff45;  26.     *p=RESLO;  27.     *(p+1)=RESHI;  28.     mytestmul<<=2;  29.     ReturnValue=*(p+1);  30.     for (ii=0;ii<3;ii+)  31.       32.         DelayInputii=DelayInputii+1;  33.         DelayOutputii=DelayOutputii+1;  34.       35.     DelayInput3=InputAD4;  36.     DelayOutput3=ReturnValue;  37.   38. /    if (ReturnValue<0)  39. /      40. /       ReturnValue=-ReturnValue;  41. /      42.     return ReturnValue;    43.   12 / 12

    注意事项

    本文(一些软件滤波算法地原理和程序源代码.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开