单片机中滤波算法的实现

  • f5_179781
    了解作者
  • 1.9KB
    文件大小
  • 文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-12 08:11
    上传日期
单片机中滤波算法的实现,c文件,仅供参考。-
lvbo_20090420.rar
  • 10-7.C
    2.1KB
内容介绍
//在单片机系统中常用的滤波算法 //(1)程序判断法 #define A char data; // 上一次的数据 char filter_1() { char datanew; // 新数据变量 datanew = get_data(); // 获得新数据 if ( (datanew – data > A ) || ( data – datanew > A ) // 滤波算法 return data; return datanew; } //(2)中值滤波法 #define N 11 char filter_2() { char value_buf[N]; char count,i,j,temp; for ( count=0;count<N;count++) // 获取数据 { value_buf[count] = get_data(); delay(); } for (j=0;j<N-1;j++) // 对数据进行排序 { for (i=0;i<N-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)算术平均滤波法 char filter_3() { int sum = 0; for ( count=0;count<N;count++) { sum + = get_ad(); delay(); } return (char)(sum/N); } //(4)加权平均滤波法 char code jq[N] = {1,2,3,4,5,6,7,8,9,10,11,12};//coe数组为加权系数表,存在程序存储区。 char code sum_jq = 1+2+3+4+5+6+7+8+9+10+11+12; char filter_4() { char count; char value_buf[N]; int sum=0; for (count=0,count<N;count++) { value_buf[count] = get_data(); delay(); } for (count=0,count<N;count++) sum += value_buf[count]*jq[count]; return (char)(sum/sum_jq); } //(5)滑动平均滤波法 char value_buf[N]; char i=0; char filter_5() { char count; int sum=0; value_buf[i++] = get_ad(); if ( i == N ) i = 0; for ( count=0;count<N,count++) sum = value_buf[count]; return (char)(sum/N); } //(6)低通滤波法 char filter_6() { char new_value; new_value = get_data(); return (100-a)*value + a*new_value; } //(7)中位值平均滤波 char filter_7() { char count,i,j; char value_buf[N]; int sum=0; for (count=0;count<N;count++) { value_buf[count] = get_data(); delay(); } for (j=0;j<N-1;j++) { for (i=0;i<N-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; } } } for(count=1;count<N-1;count++) sum += value[count]; return (char)(sum/(N-2)); }
评论
    相关推荐
    • 单片机算法指令
      主要讲解MCS-51系列单片机的指令格式,使同学们掌握MCS-51系列单片 机的寻址方式,掌握MCS-51系列单片机的基本指令
    • 单片机系统中的触摸屏坐标算法
      单片机系统中的触摸屏坐标算法 单片机系统中的触摸屏坐标算法
    • 基于单片机的PID算法控制系统的设计
      这是我花了很长时间从网上找的一篇关于PID算法的文章,其中包括具体的分析过程和实现程序,很不错,分享给大家
    • 单片机部分算法
      单片机可以用的数据转换算法,以及一些可以用的算法
    • 51单片机PID算法
      51单片机PID算法程序
    • 单片机pid算法
      里面详细的介绍了单片机的pid控制过程,也给出了pid算法模板.希望大家一起理解一下,反馈一下新的发现和问题
    • 单片机PID算法 源程序
      /*中值滤波算法*/ for (j=0;j;j++) { for (i=0;i;i++) { if ( ADC_Data[i]>ADC_Data[i+1] ) { temp = ADC_Data[i]; ADC_Data[i] = ADC_Data[i+1]; ADC_Data[i+1] = temp; } } } data1 = ADC_Data[N/...
    • PID算法单片机实现代码.zip
      PID算法单片机实现代码 32, 430f149 430f15529 TM4 各类型号单片机都有,资料齐全。欢迎交流
    • 51单片机pid算法
      用Pid算法进行温度控制,可自行调节温度输出量,用于51单片机学习
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等