一種基于單片機(jī)的工頻干擾濾除快速算法
6 基于VMLAB的濾波系統(tǒng)仿真實(shí)現(xiàn)
VMLAB的全稱為:Visual Micro Lab。它針對(duì)AVR系列單片機(jī)和ST62系列單片機(jī)設(shè)計(jì),是一個(gè)單片機(jī)的虛擬原型框架,可以提供給用戶一個(gè)真正意義上的虛擬微控制器(MCU)設(shè)計(jì)實(shí)驗(yàn)室。它具有強(qiáng)大的多窗口、多文件的編輯器,微控制器的集成開發(fā)環(huán)境,擁有一系列的集成開發(fā)工具,圖形界面的調(diào)試器,混合模式的模擬-數(shù)字電路仿真器,代碼質(zhì)量檢測(cè)器等?;贛CU,它可以仿真出包括模擬元器件在內(nèi)的更多外圍設(shè)備,并具有交互式器件模擬仿真功能。
假設(shè)有用信號(hào)2V大小的直流信號(hào),工頻干擾是峰峰值為1V,頻率為50Hz的正弦波,建立單片機(jī)AD的輸入信號(hào)表示形式如下:
2+0.5 sin(2π×50×t)
VMLAB通過(guò)工程文件來(lái)管理和控制各種仿真信息、硬件連接以及顯示I/O電壓波形等。根據(jù)本算法的特點(diǎn),采用Atmega16作為目標(biāo)單片機(jī),時(shí)鐘選為8MHz,建立工程文件。恰當(dāng)設(shè)置OCR0等存儲(chǔ),使計(jì)數(shù)器比較匹配中斷的時(shí)間間隔約為2ms,這樣AD的采樣頻率Fs近似認(rèn)為等于500Hz。經(jīng)過(guò)仿真,對(duì)比結(jié)果如表3。
表3 Fs=500Hz時(shí)仿真結(jié)果對(duì)比
a | DA輸出紋波峰峰值 | 衰減幅度 | DA輸出均值 | 收斂時(shí)間 |
0.8 | 0.36V | -8.8dB | 1.99V | 約為100ms |
0.85 | 0.28V | -11.1dB | 1.99V | 約為120ms |
0.9 | 0.2V | -14dB | 1.98V | 約為145ms |
0.95 | 0.1V | -20dB | 1.95V | 約為210ms |
從表3可以看出:隨著α的增大,算法收斂的時(shí)間變長(zhǎng),同時(shí)50Hz對(duì)應(yīng)的衰減幅度增加,衰減的幅度值和理論推導(dǎo)基本一致。另外,當(dāng)a=0.95時(shí),DA輸出的均值變小。這主要是進(jìn)行循環(huán)迭代運(yùn)算時(shí),需要將16位的變量轉(zhuǎn)化為8位表示形式所導(dǎo)致的。在有用信號(hào)失真較小的情況下,為使濾波器達(dá)到降低工頻干擾的最佳效果,必須恰當(dāng)選擇a值。經(jīng)過(guò)以上的仿真試驗(yàn)可以發(fā)現(xiàn),當(dāng)a=0.9時(shí),衰減幅度、DA輸出均值和算法收斂時(shí)間表現(xiàn)比較均衡,可以作為一般情況下的選擇值。
將VMLAB中虛擬示波器的顯示數(shù)據(jù)導(dǎo)出到一個(gè)*.cvs文件中,用matlab讀出這些數(shù)據(jù),并畫出不同a值對(duì)應(yīng)的輸出響應(yīng),如圖4。從圖4可以清晰看出不同a值下算法的性能變化的大致走向。
將AD的采樣間隔設(shè)置為4ms,對(duì)應(yīng)的采樣頻率Fs就變?yōu)?50Hz,其它條件不變。通過(guò)VMLAB進(jìn)行仿真,對(duì)比結(jié)果如表4、圖5。
表4 Fs=250Hz時(shí)不同a值仿真結(jié)果對(duì)比
a | DA輸出紋波峰峰值 | 衰減幅度 | DA輸出均值 | 收斂時(shí)間 |
0.8 | 0.20V | -14.0dB | 1.98V | 約為220ms |
0.85 | 0.16V | -15.9dB | 1.98V | 約為240ms |
0.9 | 0.14V | -17.1dB | 1.97V | 約為270ms |
0.95 | 0.06V | -24.4dB | 1.95V | 大于500ms |
對(duì)比Fs=500Hz的情況,隨著采樣頻率Fs降低,50Hz頻率的幅度衰減值會(huì)逐漸增加。這主要是因?yàn)殡S著采樣頻率降低,低通濾波器的截至頻率fc也隨之降低,相應(yīng)的濾波器在50Hz處的衰減也就越來(lái)越低。根據(jù)奈奎斯特低通采樣定理,當(dāng)采樣頻率小于100Hz時(shí),由于信號(hào)頻譜混疊,濾波器對(duì)50Hz信號(hào)的濾波效果將會(huì)變差。如果只是對(duì)緩變信號(hào)進(jìn)行采樣,采樣頻率比100Hz稍大即可。但是隨著采樣頻率的降低,濾波算法的收斂時(shí)間也會(huì)增加。因此必須在算法的濾波性能和收斂時(shí)間上進(jìn)行折衷考慮。
本文提出的分配系數(shù)法設(shè)計(jì)數(shù)字濾波器,算法速度快、代碼效率高、濾波效果理想,是一種實(shí)用的數(shù)字濾波器設(shè)計(jì)方法,體現(xiàn)了將算法嵌入到具體硬件的思想。另一方面,將定點(diǎn)小數(shù)的表示形式進(jìn)行適當(dāng)擴(kuò)展,這個(gè)算法還可以用于10位或16位AD轉(zhuǎn)換精度的應(yīng)用場(chǎng)合。
評(píng)論