假定從8位ad中讀取資料(如果是更高位的ad可定義資料型別為int),子程式為get_ad();
1、限副濾波
#define a 10
char value;
char filter()
2、中位值濾波法
#define n 11
char filter()
for (j=0;j}}
return value_buf[(n-1)/2];
}
3、算術平均濾波法
#define n 12
char filter()
return (char)(sum/n);
}4、遞推平均濾波法(又稱滑動平均濾波法)
#define n 12
char value_buf[n];
char i=0;
char filter()
5、中位值平均濾波法(又稱防脈衝干擾平均濾波法)
#define n 12
char filter()
for (j=0;j}}
for(count=1;count
sum += value[count];
return (char)(sum/(n-2));
}6、限幅平均濾波法
略 參考子程式1、3
7、一階滯後濾波法
#define a 50
char value;
char filter()
8、加權遞推平均濾波法
#define n 12
char code coe[n] = ;
char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;
char filter()
for (count=0,count
sum += value_buf[count]*coe[count];
return (char)(sum/sum_coe);
}9、消抖濾波法
#define n 12
char filter()
return value;
}10、限幅消抖濾波法
略 參考子程式1、9
11、iir濾波例子
int bandpassfilter4(int inputad4)
delayinput[3]=inputad4;
delayoutput[3]=returnvalue;
// if (returnvalue<0)
//
return returnvalue;
}
10種軟體濾波方法的示例程式
10種軟體濾波方法的示例程式 jkrl 假定從8位ad中讀取資料 如果是更高位的ad可定義資料型別為int 子程式為get ad 1 限副濾波 a值可根據實際情況調整 value為有效值,new value為當前取樣值 濾波程式返回有效的實際值 define a 10 char value char...
10種常用的軟體濾波方法及示例程式(以及硬體濾波)
濾波,就是濾除不想要的東西,留下想要的東西,不管是硬體濾波還是軟體濾波。a 方法 根據經驗判斷,確定兩次取樣允許的最大偏差值 設為a 每次檢測到新值時判斷 如果本次值與上次值之差 a,則本次值有效 如果本次值與上次值之差 a,則本次值無效,放棄本次值,用上次值代替本次值 b 優點 能有效克服因偶然因...
常用軟體濾波方法及其示例程式
1 限幅濾波法 又稱程式判斷濾波法 a 方法 根據經驗判斷,確定兩次取樣允許的最大偏差值 設為a 每次檢測到新值時判斷 如果本次值與上次值之差 a,則本次值有效 如果本次值與上次值之差 a,則本次值無效,放棄本次值,用上次值代替本次值 b 優點 能有效克服因偶然因素引起的脈衝干擾 c 缺點 無法抑制...