常用滤波方法(作者未知).docxVIP

  • 3
  • 0
  • 约2.63千字
  • 约 7页
  • 2023-08-10 发布于四川
  • 举报
10种软件滤波方法 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1.限副滤波 /*??A值可根据实际情况调整value为有效值,new_value为当前采样值滤波程序返回有效的实际值??*/ #define A 10 char 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??11 char 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_bufvalue_buf[i+1] ) ? ?? ?? ?{ ? ?? ?? ?? ?temp = value_buf; ? ?? ?? ?? ?value_buf = value_buf[i+1]; ? ?? ?? ?? ? value_buf[i+1] = temp; ? ?? ?? ?} ? ?? ?} ? ?} ? ?return value_buf[(N-1)/2]; }? 3.算术平均滤波法 #define N 12 char filter() { ? ?int??sum = 0; ? ?for ( count=0;countN;count++) ? ?{ ? ?? ?sum + = get_ad(); ? ?? ?delay(); ? ?} ? ?return (char)(sum/N); } 4.递推平均滤波法(又称滑动平均滤波法) #define N 12 char value_buf[N]; char i=0; char filter() { ? ?char count; ? ?int??sum=0; ? ?value_buf[i++] = get_ad(); ? ?if ( i == N )? ?i = 0; ? ?for ( count=0;countN,count++) ? ?? ?sum = value_buf[count]; ? ?return (char)(sum/N); } 5.中位值平均滤波法(又称防脉冲干扰平均滤波法) #define N 12 char 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.限幅平均滤波法 略 7.一阶滞后滤波法 /* 为加快程序处理速度假定基数为100,a=0~100 */ #define a 50 char value; char filter() { ? ?char??new_value; ? ?new_value = get_ad(); ? ?return (100-a)*value + a*new_value; } 8.加权递推平均滤波法 /* coe数组为加权系数表,存在程序存储区。*/ #define N 12 char code coe[N]

文档评论(0)

1亿VIP精品文档

相关文档