當前位置:首頁 > 單片機 > 單片機
[導讀] 內容摘要:提出了一種利用數(shù)字濾波器濾除工頻干擾的快速算法。這種算法從AVR單片機內部硬件乘法器的特點出發(fā),采用分配系統(tǒng)數(shù)法進行低通數(shù)字濾波器設計。經(jīng)過VMLAB集成開發(fā)環(huán)境的仿真驗證,算法速度快、代碼效

      內容摘要:提出了一種利用數(shù)字濾波器濾除工頻干擾快速算法。這種算法從AVR單片機內部硬件乘法器的特點出發(fā),采用分配系統(tǒng)數(shù)法進行低通數(shù)字濾波器設計。經(jīng)過VMLAB集成開發(fā)環(huán)境的仿真驗證,算法速度快、代碼效率高、濾波效果理想。

      工頻干擾廣泛存在各種工業(yè)現(xiàn)場中,其產(chǎn)生的途徑主要包括輸電饋線、照明設備、發(fā)動機以及各種電子儀器設備等。一般可以通過濾波電路消除工頻干擾,但這必將增加硬件結構的復雜程度。實際上,還可以采用數(shù)字信號處理的相關算法,通過軟件濾波器濾除工頻干擾。軟件濾波算法的采用,無疑會在簡化電路結構的同時,使系統(tǒng)的硬件資源得到更加充分的利用,并達到降低產(chǎn)品成本的要求。

  AVR單片機是Atmel公司生產(chǎn)的8位精簡指令集(RISC)單片機。與同類單片機相比,在運算速度、外設資源、靈活性等方面性能均衡,性價比較高。AVR單片機適合C語言開發(fā),Mega系列AVR單片機還有一個內部硬件乘法器單元。這些特點都為軟件濾波器的實現(xiàn)提供了極大的便利。

  1 濾波算法

  常用的單片機濾波算法包括中值濾波、增色值濾波、滑動平均以及復合濾波算法等。工頻干擾的頻率范圍在50Hz附近,可以采用一個截止頻率遠低于50Hz的低通濾波器來濾除工頻干擾。

  假設輸入信號x(t),輸出信號y(t),則一個RC低通濾波器表達式為:τ[dy(t)]/dt+y(t)=x(t),其中τ為時間常數(shù)。

  連續(xù)時間信號經(jīng)過采樣后成為離散時間信號,低通濾波器的表達式也變?yōu)椋?/p>

  τ[y(t)-y(k-1)]/ Δt+y(k)=x(t)   (1)

  Δt為采樣時間間隔,k為歸一化時間。

  由(1)式可得:

  y(k)=[1/(1+τ/Δt)]x(k)+(τ/Δt)/(1+τ/Δt)[y(k-1)  (2)

  令a=(τ/Δt)(1+τ/Δt),代入(2)式,

  y(k)=(1-a)·x(k)+a·y(k-1)   (3)

  對(3)式進行z變換,可得:

  Y(z)=(1-a) ·X(z)+a·z-1·Y(z)

  所以系統(tǒng)的傳遞函數(shù)為:

  假設采樣頻率Fs=500Hz,a分別取0.8、0.85、0.9、0.95,代入(4)式,利用matlab畫出頻率響應曲線,如圖1。其中50Hz頻率對應的幅度衰減見表1。

  表1 50Hz幅度衰減

a衰減
0.8-9.4dB
0.85-11.9dB
0.9-15.5dB
0.95-21.6dB

  2 定點小數(shù)表達方式

  為了精確構造數(shù)字濾波器,經(jīng)常要用到浮點數(shù)據(jù)和系統(tǒng)。在進行浮點數(shù)乘法運算時,針對AVR單片機設計的C編譯器例如AVR-GCC,需要加入額外的數(shù)學庫函數(shù)進行編譯。而這會使編譯后程序的代碼量增加、處理時間加長、處理器的開銷也隨之增加。為了更大限度地降低系統(tǒng)開銷,提高程序效率,采用定點小數(shù)表示形式進行乘法運算是最佳選擇。

  AVR單片機是一種8位精簡指令集(RISC)單片機。其中megaAVR系列內部都帶有一個硬件乘法器,計算一次8位乘8位的定點乘法只需2個時鐘周期。因此采用8位定點采樣數(shù)據(jù)乘以8位系數(shù)的定點乘法方式完成濾波器算法是最高效的。

  低通濾波處理涉及的運算形式為一個純小數(shù)系數(shù)和一個已知數(shù)據(jù)相乘再相加。因此將系數(shù)采用定點小數(shù)的表示形式,對于提高算法速度是至關重要的。

  可以定義一種8位定點小數(shù)表示形成——Q8,其各位權系數(shù)如下:

  Q8數(shù)的表示范圍從0到1-2 -8=0.99609375,每兩個數(shù)之間的間隔是2 -8(0.00390625),其所能表示的純小數(shù)共有2 8=256個。例如11011000就表示2 -1+2 -2+2 -4+2 -5=0.84375,而11011001就是表示2 -1+2 -2+2 -4+2 -5+2 -8=0.84765625,因此0.84375和0.84765625之間的純小數(shù)只能用這兩個數(shù)中的一個近似表示了。這對于乘法計算的精度有一定的影響,但是由于濾波公式(3)中的系數(shù)a和(1-a)都是常數(shù),在整體性能穩(wěn)定的情況下,系數(shù)微小的不確定性對濾波器整體性能并沒有太大的影響。

  3 分配系數(shù)法原理

  從(3)式可知,濾波算法可以用迭代計算實現(xiàn),為保證每個新的輸出值都可以作為下次計算的輸入值,必須使輸出值和輸入值的位寬度一致。必須使輸出值和輸入值的位寬度一致。AVR單片機內部硬件乘法器的輸出結果為16位,兩次乘法運算的結果還要進行加法運算,其結果很有可能超過16位寬度。如果要進行迭代計算,就要將乘加運算的結果轉化成8位表示方式。一種解決方法是用查表法實現(xiàn)乘法計算,這樣運算結果就直接表達成8位定點數(shù)形式,不用進行表示方式的轉化,但是這種方案要占用額外的硬件在座空間構造一張查找表。

  可以從逆向進行思考:由(3)式可知,每個新的輸出值y(k)都與上一次的輸出值y(k-1) 和新的輸入值x(k)有關。y(k-1)和x(k)都是8位的,因此最大值為0xFF。為了使a×y(k-1)+(1-a) ×x(k)不超過0xFFFF,兩個系統(tǒng)a和(1-a)的和不能超過0xFFFF/0xFF=0x101。實際上,a+(1-a)等于"1",因此這里的0x101就可以看作“1”。如果取a=0.9,那么對應地將0x101平均分成10份,取其中的9份,即0x101×0.9近似等于0xE7,相應地0.1就等于0x101-0xE7=0x1A。這里的0xE7可以近似被認為是0.9的一種定點Q8數(shù)表示形式,而0.1的定點Q8數(shù)表示形式就是0x1A。由于濾波器系數(shù)a和(1-a)采用了Q8數(shù)的表示形式這種將16位乘加運算結果轉化為8定點數(shù)表示形式的工作就變得各簡單了,只需通過移位運算,取y(k)的高8位即可,對應的C語言代碼為:

  y(k)=(char)(y(k)>>8)

  在C語言編程處理中,并不需要建立一個數(shù)組來存儲y(k)的值,而只需定義兩個unsigned char型的變量分別存儲y(k-1)和x(k)。當乘加計算a×y(k-1)+(1-a)×x(k)完成后,將結果轉化為8位定點數(shù)形式,再將其賦值給y(k-1)所對應的變量即可。因此采用迭代方式進行乘加運算后,整個運算過程只需要兩個變量和兩個常數(shù)參加即可。

  通過這種處理,y(k)就可以作為計算下一次輸出值y(k+1)的一個已知量,并繼續(xù)與Q8數(shù)形式的濾波器系數(shù)相乘,得到新的輸出值。這種處理方式簡化了乘加運算的完成過程,節(jié)省了系統(tǒng)硬件資源,并降低了處理器開銷。

  4 采樣時間的控制

  采用單片機進行數(shù)字信號處理,一種有效而準確的數(shù)據(jù)采集方式就是通過計數(shù)器中斷服務程序(ISR)控制AD對輸入信號進行精確采樣。但是(圖2)中斷服務程序(ISR)的開銷影響了AD采樣時間間隔的精確度,同時如果中斷服務程序(ISR)的開銷過大,必然導致AD的最高采樣頻率的降低。因此,要想獲得精確的采樣頻率,就必須在盡量減少中斷服務程序開銷的前提下,適當調整計數(shù)器中斷的時間間隔。這可以通過調整OCR0的預置數(shù)來完成。

  5 算法流程圖

  濾波算法是通過中斷服務程序(ISR)來完成的,整個應用程序的主函數(shù)main()主要負責初始化計數(shù)器中斷,并處理其它應用。整個程序的流程圖如圖3所示。

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

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

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

  假設有用信號2V大小的直流信號,工頻干擾是峰峰值為1V,頻率為50Hz的正弦波,建立單片機AD的輸入信號表示形式如下:

  2+0.5 sin(2π×50×t)

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

  表3 Fs=500Hz時仿真結果對比

aDA輸出紋波峰峰值衰減幅度DA輸出均值收斂時間
0.80.36V-8.8dB1.99V約為100ms
0.850.28V-11.1dB1.99V約為120ms
0.90.2V-14dB1.98V約為145ms
0.950.1V-20dB1.95V約為210ms

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

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

  將AD的采樣間隔設置為4ms,對應的采樣頻率Fs就變?yōu)?50Hz,其它條件不變。通過VMLAB進行仿真,對比結果如表4、圖5。

  表4 Fs=250Hz時不同a值仿真結果對比

aDA輸出紋波峰峰值衰減幅度DA輸出均值收斂時間
0.80.20V-14.0dB1.98V約為220ms
0.850.16V-15.9dB1.98V約為240ms
0.90.14V-17.1dB1.97V約為270ms
0.950.06V-24.4dB1.95V大于500ms

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

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉