單片機(jī)ADC常見的幾種濾波方法
然而,我們單片機(jī)ADC采集的模擬量基本都會(huì)經(jīng)過“濾波”處理才能使用,下面給大家分享一些常見的ADC濾波算法。
一、限幅濾波
根據(jù)經(jīng)驗(yàn)判斷兩次采樣允許的最大偏差值A(chǔ)
每次采新值時(shí)判斷:若本次值與上次值之差<=A,則本次有效;若本次值與上次值之差>A,本次無效,用上次值代替本次。
2、優(yōu)缺點(diǎn)
克服脈沖干擾,無法抑制周期性干擾,平滑度差。
3、代碼
二、中位值濾波
連續(xù)采樣N次,按大小排列
取中間值為本次有效值
2、優(yōu)缺點(diǎn)
克服波動(dòng)干擾,對溫度等變化緩慢的被測參數(shù)有良好的濾波效果,對速度等快速變化的參數(shù)不宜。
3、代碼
三、算數(shù)平均濾波
連續(xù)采樣N次,取平均
N較大時(shí)平滑度高,靈敏度低
N較小時(shí)平滑度低,靈敏度高
一般N=12
2、優(yōu)缺點(diǎn)
適用于存在隨機(jī)干擾的系統(tǒng),占用RAM多,速度慢。
3、代碼
四、遞推平均濾波
取N個(gè)采樣值形成隊(duì)列,先進(jìn)先出
取均值
一般N=4~12
2、優(yōu)缺點(diǎn)
對周期性干擾抑制性好,平滑度高
適用于高頻振動(dòng)系統(tǒng)
靈敏度低,RAM占用較大,脈沖干擾嚴(yán)重
3、代碼
五、中位值平均濾波
采樣N個(gè)值,去掉最大最小
計(jì)算N-2的平均值
N= 3~14
2、優(yōu)缺點(diǎn)
融合了中位值,平均值的優(yōu)點(diǎn)
消除脈沖干擾
計(jì)算速度慢,RAM占用大
3、代碼
六、限幅平均濾波
每次采樣數(shù)據(jù)先限幅后送入隊(duì)列
取平均值
2、優(yōu)缺點(diǎn)
融合限幅、均值、隊(duì)列的優(yōu)點(diǎn)
消除脈沖干擾,占RAM較多
3、代碼
七、一階滯后濾波
取a=0~1
本次濾波結(jié)果=(1-a)* 本次采樣 + a * 上次結(jié)果
2、優(yōu)缺點(diǎn)
良好一直周期性干擾,適用波動(dòng)頻率較高場合
靈敏度低,相位滯后
3、代碼
八、加權(quán)遞推平均濾波
對遞推平均濾波的改進(jìn),不同時(shí)刻的數(shù)據(jù)加以不同權(quán)重,通常越新的數(shù)據(jù)權(quán)重越大,這樣靈敏度高,但平滑度低。
適用有較大滯后時(shí)間常數(shù)和采樣周期短的系統(tǒng),對滯后時(shí)間常數(shù)小,采樣周期長、變化慢的信號(hào)不能迅速反應(yīng)其所受干擾。
3、代碼
九、消抖濾波
設(shè)置一個(gè)濾波計(jì)數(shù)器
將采樣值與當(dāng)前有效值比較
若采樣值=當(dāng)前有效值,則計(jì)數(shù)器清0
若采樣值不等于當(dāng)前有效值,則計(jì)數(shù)器+1
若計(jì)數(shù)器溢出,則采樣值替換當(dāng)前有效值,計(jì)數(shù)器清0
2、優(yōu)缺點(diǎn)
對變化慢的信號(hào)濾波效果好,變化快的不好
避免臨界值附近的跳動(dòng),計(jì)數(shù)器溢出時(shí)若采到干擾值則無法濾波
3、代碼
十、限幅消抖濾波
先限幅 后消抖
融合了限幅、消抖的優(yōu)點(diǎn)
避免引入干擾值,對快速變化的信號(hào)不宜
3、代碼
- 上一篇:PCB Layout 的 9 個(gè)套路 2024/9/4
- 下一篇:2024.8.20 經(jīng)驗(yàn)分享會(huì) 2024/8/20