新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AVR單片機的數(shù)字濾波器濾除工頻干擾的快速算法

基于AVR單片機的數(shù)字濾波器濾除工頻干擾的快速算法

作者: 時間:2013-12-09 來源:網(wǎng)絡(luò) 收藏

本算法的C語言代碼(附錄A)經(jīng)過AVR-GCC編譯器的編譯后,“.text”段只有310個字節(jié),大大節(jié)省了單片機的flash 空間。

6 基于VMLAB的濾波系統(tǒng)仿真實現(xiàn)

VMLAB的全稱為:Visual Micro lab。它針對AVR系列單片機和ST62 系列單片機設(shè)計,是一個單片機的虛擬原型框架,可以提供給用戶一個真正意義上的虛擬微控制器(MCU)設(shè)計實驗室。它具有強大的多窗口、多文件的編輯器,微控制器的集成開發(fā)環(huán)境,擁有一系列的集成開發(fā)工具,圖形界面的調(diào)試器,混合模式的模擬-數(shù)字電路仿真器,代碼質(zhì)量檢查器等?;贛CU,它可以仿真出包括模擬元器件在內(nèi)的更多外圍設(shè)備,并具有交互式器件模擬仿真功能。

假設(shè)有用信號是2V大小的直流信號,是峰峰值為1V,頻率為50Hz的正弦波,建立單片機AD的輸入信號表示形式如下:基于AVR單片機的數(shù)字濾波器濾除工頻干擾的快速算法

VMLAB 通過工程文件來管理和控制各種仿真信息、硬件連接以及顯示I/O 電壓波形等。根據(jù)本算法的特點,采用Atmega16作為目標單片機,時鐘選為8MHz ,建立工程文件。恰當設(shè)置OCRO寄存器,使計數(shù)器比較匹配中斷的時間間隔約為2ms ,這樣AD的采樣頻率近似認為Fs等于500Hz 。經(jīng)過仿真,對比結(jié)果如表3 。

基于AVR單片機的數(shù)字濾波器濾除工頻干擾的快速算法

從表3可以看出:隨著a的增大,算法收斂的時間變長,同時50Hz對應(yīng)的衰減幅度增加,衰減的幅度值和理論推導基本一致。另外,當a=0.95時,DA輸出的均值變小。這主要是進行循環(huán)迭代運算時,需要將16位的變量轉(zhuǎn)化為8位表示形式所導致的。在有用信號失真較小的情況下,為使濾波器達到降低的最佳效果,必須恰當選擇a 值。經(jīng)過以上的仿真試驗可以發(fā)現(xiàn),當a=0.9 時,衰減幅度、DA輸出均值和算法收斂時間表現(xiàn)比較均衡,可以作為一般情況下的選擇值。

將VMLAB 中虛擬示波器的顯示數(shù)據(jù)導出到一個*.cvs文件中,用matlab 讀出這些數(shù)據(jù),并畫出不同a值對應(yīng)的輸出響應(yīng),如圖4 。從圖4 可以清晰看出不同a值下算法的性能變化的大致走向。

將AD的采樣間隔設(shè)置為4ms ,對應(yīng)的采樣頻率Fs就變?yōu)?50Hz ,其它條件不變。通過VMLAB 進行仿真,對比結(jié)果如表4 、圖5。基于AVR單片機的數(shù)字濾波器濾除工頻干擾的快速算法

對比Fs = 500Hz 的情況,隨著采樣頻率Fs降低,50Hz頻率的幅度衰減值會逐漸增加。這主要是因為隨著采樣頻率降低,低通濾波器的截至頻率fc也隨之降低,相應(yīng)的濾波器在50Hz處的衰減也就越來越低。根據(jù)奈奎斯特低通采樣定理,當采樣頻率小于100Hz時,由于信號頻譜混疊,濾波器對50Hz信號的濾波效果將會變差。如果只是對緩變信號進行采樣,采樣頻率比100Hz稍大即可。但是隨著采樣頻率的降低,濾波算法的收斂時間也會增加。因此必須在算法的濾波性能和收斂時間上進行折衷考慮。

本文提出的分配系數(shù)法設(shè)計,算法速度快、代碼效率高、濾波效果理想,是一種實用的設(shè)計方法,體現(xiàn)了將算法嵌入到具體硬件的思想。另一方面,將定點小數(shù)的表示形式進行適當擴展,這個算法還可以用于10位或16位AD轉(zhuǎn)換精度的應(yīng)用場合。

濾波器相關(guān)文章:濾波器原理


濾波器相關(guān)文章:濾波器原理


低通濾波器相關(guān)文章:低通濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉