基于AMR磁阻傳感器和加速度傳感器ADXL202的電子羅盤防干擾設計
3.2 源程序代碼分析
對應程序流程圖,給出了單片機通過P4.2口對ADXL202某一輸出通道采樣濾波并完成脈寬計數(shù)的源程序。源程序如下:
源程序中定義了3個變量,其中變量Flag存儲原狀態(tài)值;FlagReg存儲當前采樣值;變量i記錄采樣次數(shù);改變i的值可控制濾除尖峰脈沖的等待時間。程序通過對原狀態(tài)與當前采樣狀態(tài)異或之后的值來判斷當前信號是有效信號還是干擾信號,從而對上升沿、下降沿的中間過度或尖峰脈沖干擾進行相應處理,退出中斷子程序。實現(xiàn)了對正常信號計數(shù)、濾掉尖峰脈沖干擾的目的。
4 測試結果
由于條件限制以及干擾的隨機性,對基于ADXL202構成的車載屯子羅盤進行的測試,無法對所測量的角度以及方向角進行精確標定。實驗時,通過相同條件下同一物理量多次測量值的標準差來對相應算法進行評估。測試結果如表1所列。
從實驗測試的標準差可以看出,經(jīng)過軟件濾波后σ小了很多,這種軟件濾波算法對濾除尖峰脈沖干擾是非常有效的。
結 語
本文提出的軟件濾波算法速度快,代碼效率高,濾波效果理想,是一種實用的數(shù)字濾波設計方法,體現(xiàn)了將算法與具體硬件相結合的思想。另一方面,當脈沖干擾較寬時可將存儲器變量適當擴展成多字節(jié)變量。這個算法還可以與FPGA結合,用于其他計數(shù)精度要求較高、易受尖峰脈沖干擾的應用結合。
本文引用地址:http://www.ex-cimer.com/article/173111.htm
評論