常用的软件滤波方法常用的软件滤波方法常用的软件滤波方法.rar

源代码在线查看: 常用的软件滤波方法.txt

软件大小: 2 K
上传用户: zp380747972
关键词: 软件 滤波方法
下载地址: 免注册下载 普通下载 VIP

相关代码

				一些常用的软件滤波方法(C语言)   
				 
				   作者:未知 发表日期:2006-2-20 11:01:51 点击:98次 
				 
				 
				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;count				   {
				      value_buf[count] = get_ad();
				      delay();
				   }
				   for (j=0;j				   {
				      for (i=0;i				      {
				         if ( value_buf>value_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;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;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;count				   {
				      value_buf[count] = get_ad();
				      delay();
				   }
				   for (j=0;j				   {
				      for (i=0;i				      {
				         if ( value_buf>value_buf[i+1] )
				         {
				            temp = value_buf
				
				 
				 
							

相关资源