假定從8位ad中讀取資料(如果是更高位的ad可定義資料型別為int),子程式為get_ad();
1、限副濾波
/* a值可根據實際情況調整
value為有效值,new_value為當前取樣值
濾波程式返回有效的實際值 */
#define a 10
char value;
char filter()
2、中位值濾波法
/* n值可根據實際情況調整
排序採用冒泡法*/
#define n 11
char filter()
} }
return value_buf[(n-1)/2];
}
3、算術平均濾波法
/* */
#define n 12
char filter()
} }
for(count=1;count=n) return new_value;
delay();
new_value = get_ad();
} return value;
}
10、限幅消抖濾波法
/* */
略 參考子程式1、9
11、iir濾波例子
int bandpassfilter4(int inputad4)
delayinput[3]=inputad4;
delayoutput[3]=returnvalue;
// if (returnvalue<0)
//
return returnvalue;
}
10種軟體濾波方法
1 限幅濾波法 又稱程式判斷濾波法 a 方法 根據經驗判斷,確定兩次取樣允許的最大偏差值 設為a 每次檢測到新值時判斷 如果本次值與上次值之差 a,則本次值有效 如果本次值與上次值之差 a,則本次值無效,放棄本次值,用上次值代替本次值 b 優點 能有效克服因偶然因素引起的脈衝干擾 c 缺點 無法抑制...
10種軟體濾波方法
10種軟體濾波方法 來自網路 未驗證 1 限幅濾波法 又稱程式判斷濾波法 a 方法 根據經驗判斷,確定兩次取樣允許的最大偏差值 設為a 每次檢測到新值時判斷 如果本次值與上次值之差 a,則本次值有效 如果本次值與上次值之差 a,則本次值無效,放棄本次值,用上次值代替本次值 b 優點 能有效克服因偶然...
10種軟體濾波演算法
軟體濾波在嵌入式的資料採集和處理中有著很重要的作用,這10種方法各有優劣,根據自己的需要選擇。同時提供了c語言的參考 希望對各位能有幫助。1 限幅濾波法 又稱程式判斷濾波法 a 方法 根據經驗判斷,確定兩次取樣允許的最大偏差值 設為a 每次檢測到新值時判斷 如果本次值與上次值之差 a,則本次值有效 ...