- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字滤波 c语言
假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波/* A值可根据实际情况调整value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */#define A 10char value;char filter(){char new_value;new_value = get_ad();if ( ( new_value - value A ) || ( value - new_value A )return value;return new_value;}2、中位值滤波法/* N值可根据实际情况调整排序采用冒泡法*/#define N 11char filter(){char value_buf[N];char count,i,j,temp;for ( count=0;countN;count++){value_buf[count] = get_ad();delay();}for (j=0;jN-1;j++){for (i=0;iN-j;i++){if ( value_buf[i]value_buf[i+1] ){temp = value_buf[i];value_buf [i]= value_buf[i+1]; value_buf[i+1] = temp;}}}return value_buf[(N-1)/2];} 3、算术平均滤波法/**/#define N 12char filter(){int sum = 0;for ( count=0;countN;count++){sum + = get_ad();delay();}return (char)(sum/N);}4、递推平均滤波法(又称滑动平均滤波法)/**//********************* 滑动平均滤波 *************************/ #define N 12 char Value_Buffer[N]; char i=0; char Filter() { char j; int SUM=0; Value_Buffer[i++]=get_ad(); if(i==N) i = 0; for(j=0;jN,j++) SUM=Value_Buffer[j]; return (char)(SUM/N); } 5、中位值平均滤波法(又称防脉冲干扰平均滤波法)/**/#define N 12char filter(){char count,i,j;char value_buf[N];int sum=0;for (count=0;countN;count++){value_buf[count] = get_ad();delay();}for (j=0;jN-1;j++){for (i=0;iN-j;i++){if ( value_bufvalue_buf[i+1] ){temp = value_buf;value_buf = value_buf[i+1]; value_buf[i+1] = temp;}}}for(count=1;countN-1;count++)sum += value[count];return (char)(sum/(N-2));}6、限幅平均滤波法/**/ 略 参考子程序1、37、一阶滞后滤波法/* 为加快程序处理速度假定基数为100,a=0~100 */#define a 50char value;char filter(){char new_value;new_value = get_ad();return (100-a)*value + a*new_value; }8、加权递推平均滤波法/* coe数组为加权系数表,存在程序存储区。*/#define N 12char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;char filter(){char count;char value_buf[N];int sum=0;for (count=0,countN;count++){value_buf[count] = get_ad();delay();}for (count=0,countN;count++)sum +
您可能关注的文档
最近下载
- 作业设计研讨活动记录.doc
- 2025国家电投校园招聘笔试备考题库及答案解析.docx
- 2021-2022学年五年级上学期综合实践活动(劳动教育)第6课巧做糖画教案.docx
- 创业意识与创业技巧:了解企业登记注册流程.pptx
- 山东省淄博市2023年高一上学期《英语》期中试卷与参考答案.pdf
- 大学生职业规划大赛成长赛道 (修订).pptx
- 2018重庆市建设工程混凝土与砂浆配合比表.pdf
- WhyNothingWorks.doc VIP
- 住院医师规范化培训基地标准(2022年版)--皮肤科专业基地细则.docx
- JB∕T 2436.2-2020 导线用铜压接端头 第2部分:10mm2~300mm2导线用铜压接端头.pdf
文档评论(0)