《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的可編程濾波器的設計
基于FPGA的可編程濾波器的設計
來源:微型機與應用2012年第22期
吳其琦,韋文斌
(廣西工學院 電子信息與控制工程系,廣西 柳州545006)
摘要: 應變測試系統中傳感器輸出信號非常微弱,傳感器與測量儀連接線較長容易引入干擾信號,且應變儀應用場地干擾信號不同。介紹了一種用FPGA實現的可編程IIR型濾波器,該濾波器以二階基本節為核心,通過改變二階基本節的系數來改變濾波器濾波模型及截止頻率。嵌入式計算機把系數寫入濾波器實現低通、高通、帶通及帶阻濾波。該濾波器在應變測量儀器應用上取得了很好效果。
Abstract:
Key words :

摘  要: 應變測試系統中傳感器輸出信號非常微弱,傳感器與測量儀連接線較長容易引入干擾信號,且應變儀應用場地干擾信號不同。介紹了一種用FPGA實現的可編程IIR型濾波器,該濾波器以二階基本節為核心,通過改變二階基本節的系數來改變濾波器濾波模型及截止頻率。嵌入式計算機把系數寫入濾波器實現低通、高通、帶通及帶阻濾波。該濾波器在應變測量儀器應用上取得了很好效果。
關鍵詞: 可編程濾波器多通道;FPGA;IIR

    在應變測試系統中,信號流程如圖1所示。應變片輸出的信號經電橋、放大器后得到較強應變信號,經過濾波及模數轉換后得到數字信號。在應變測試現場,采樣點分布廣,電橋與放大器間距離遠,需要接入較長引線,電橋輸出的微伏級信號在傳輸中容易引入各種干擾。應變信號的頻譜范圍較寬,如測試橋梁應力時為赫茲級,測試高速發動機應力時為幾千赫茲級。干擾信號中既有來自于電網的50 Hz工頻干擾、廣播電視信號,也有電子設備發出的上千赫茲高頻干擾,如在汽車應力測試時,常受到火花塞發出的點火脈沖干擾。以工頻干擾為例,對于信號頻譜小于50 Hz的測試場合,可以選擇濾波頻率小于50 Hz的低通濾波,對于頻譜大于50 Hz的場合可以選擇低通頻率大于50 Hz的帶通濾波器,對于頻譜包含50 Hz的場合可以選擇50 Hz陷波器。因此需要根據測量現場改變濾波頻率,以達到最佳濾波效果。如果采用濾波頻率可變的模擬濾波器,其結構較復雜且精度難以保證,應變力測試系統中需要采集的通道數往往多達幾十個,增加了濾波器數量。據此,本文介紹基于FPGA的可編程數字濾波器,采用時分復用二階基本節的工作方式實現高階多通道濾波。具有如下性能:32處理通道;16 bit數據寬度;200 kb/s處理速度;16階IIR型濾波;濾波頻率與濾波器模型可編程。本濾波器很好地解決了應變測試系統中的濾波問題。

1 IIR濾波器的工作原理及結構
    無限長單位沖擊響應(IIR)濾波器有多種結構形式,其中級聯型是較易于在硬件上實現的,其數學表達式為:
    
    由式(1)可知,濾波器的H(z)完全分解成實系數的二階因子的形式[1],級聯的階數視具體情況而定,如八階濾波器由4節二階基本節串聯而成。一個二階基本節的信號流圖如圖2所示,結構圖如圖3所示。

    為了實現高階多通道濾波器,通過構造一個二階基本節運算模塊,并對其進行時分復用,把當前數據的運算輸出值作為下次運算的輸入值進行多次運算,即可得到高階濾波結果。把當前通道的數據保存起來再進行下一通道數據的運算,即可實現多通道的數據濾波。
2 濾波器的設計及實現
    采用Altera公司的Cyclone III系列FPGA芯片EP3C16Q208作為硬件平臺,采用EDA設計軟件QuartusⅡ,與Matlab軟件中的Filter Design 濾波器設計軟件聯合進行可編程濾波器的設計[2]。EP3C16Q208芯片具有豐富的邏輯單元、高速存儲器、乘法器、鎖相環等硬件資源[3]。邏輯單元用于構造濾波器中的加法器及控制邏輯;存儲器組織成雙口RAM及FIFO,用于存儲濾波器系數及運算結果;采用多個18位乘法器構造64位乘法器,精度接近雙精度浮點型運算,充分利用了片上資源。整個設計外圍電路僅需電源電路、晶振電路及配置電路,結構簡潔且工作可靠。
2.1 濾波器的設計方法
    濾波器的設計使用Matlab軟件的Filter Design 濾波器設計軟件。該軟件界面直觀,操作方便。首先指定濾波器類型,如低通、高通、帶通、帶阻等常用的濾波形式,指定濾波器模型,如巴特沃思型、切貝雪夫型、橢圓型等形式。接著輸入濾波器的采樣頻率、濾波頻率、階數等參數即可生成濾波器。軟件還可以對濾波器進行各種分析,如幅頻特性、相頻特性等。通過分析這些特性再調整濾波器參數,直至得到滿意的濾波效果為止。最后導出濾波器的二階基本節系數,轉換成二進制格式后通過系數端口輸入到本文介紹的濾波器中,即可獲得期望的濾波效果[4]。
    在應變測試系統中,大多數測試場合存在50 Hz工頻干擾,因此需要陷波器將其濾除。對于其他頻率范圍的干擾,可以用帶通濾波器限定低頻與高頻的范圍,盡量把干擾信號濾除。根據干擾信號的特點,可以采用一個50 Hz陷波器串聯一個14階帶通濾波器的方案。在應變測試中,阻帶衰減率是濾波器最重要的指標,因此選擇橢圓濾波器。由于只需要對50 Hz陷波,因此選擇單點陷波器。如果50 Hz的諧波分量較大,還可以采用梳狀濾波器。為了精確選擇濾波頻率,可以把濾波頻率間隔選得很小,然后把各種濾波頻率的濾波器系數導入到數據庫中供用戶根據實際情況調用[5]。
2.2 濾波器的功能結構
      濾波器的功能結構圖如圖4所示。濾波器包括3個端口,分別是位寬為32 bit的系數輸入端口、16 bit的濾波輸入端口和16 bit的濾波輸出端口。系數輸入端口用于輸入濾波器系數。數據從輸入端口進入濾波器,把32個通道的數據組織成一幀,以幀為單位進行多通道數據輸入。數據輸出端口輸出濾波結果,同樣是以幀為單位輸出數據。

    濾波器內部結構包括輸入模塊、運算模塊、系數模塊、主控模塊、輸出模塊5個功能模塊。濾波器以運算模塊為核心,輸入模塊提供輸入數據,系數模塊提供乘法器的系數,輸出模塊輸出運算結果,主控模塊控制其他模塊協同運作。輸入模塊包括輸入FIFO及輸入開關,輸入FIFO用于暫存輸入的一幀數據,輸入開關用于切換運算模塊的數據來源,數據來源包括FIFO中的數據及運算模塊的輸出。運算模塊包括加法器、乘法器及存儲單元RAM。其中乘法器和RAM都有地址,根據給定地址決定當前運算模塊進行某一通道某一階段的運算。本文所介紹的32通道16階濾波器中,其地址范圍是A0~A255。系數模塊包括4個系數寄存器及5個系數存儲單元RAM α1k、RAM α2k、RAM β1k、RAM β2k、RAM Ak。這些RAM是雙口模式的,寫入系數與讀出系數獨立操作。在寫入系數時,系數寄存器用于保存系數α2k、β1k、β2k、Ak,再和系數端口的系數α1k同時寫入系數RAM。輸出模塊包括輸出開關及輸出FIFO。運算模塊的輸出包括中間運算數據及最終濾波數據,輸出開關切換上述兩種數據。輸出FIFO存儲32個通道的輸出數據。主控模塊控制各個模塊工作,在收到開始信號后,分別輸出讀地址、輸入開關信號、輸出開關信號及濾波完成信號。
2.3 濾波器的工作過程
    濾波器工作過程包括輸入系數階段及運算階段。在輸入系數階段,通過地址和系數兩個端口把濾波器的系數寫入到系數RAM。地址端口首先給出雙口RAM的輸入口地址A0。系數端口依次送出α10、α20、β20、β10,模塊中的寄存器依次傳遞系數,此時各個系數分別送到對應雙口RAM的輸入口數據端,在寫信號的作用下把系數存儲到相應單元。按同樣的方式寫入地址為A1的系數,直至寫入到A255的系數。
    輸入系數完成后,濾波器進入運算階段。輸入的濾波數據以幀為單位,32個通道的數據組織成一幀傳送到輸入FIFO中。在開始信號的觸發下,濾波器開始處理數據,完成后輸出完成信號通知外部器件,外部器件即可從輸出FIFO中讀出濾波結果。
    一幀數據的處理過程可分為以下幾個步驟:
    (1)外部把濾波數據傳送到輸入FIFO中,然后給出開始信號,濾波器開始處理數據;
    (2)主控模塊切換輸入開關,選擇輸入FIFO中通道0的數據作為運算模塊的輸入,同時選擇地址A0的系數送給運算模塊,選擇運算模塊內部RAM中相應的數據;
    (3)在一個時鐘脈沖的作用下,運算模塊完成一次二階運算,并輸出當前運算結果;
    (4)主控模塊切換輸入開關和輸出開關,把運算結果傳送到運算模塊輸入端進行下一次二階運算。同樣的方式共進行8次運算,完成16階濾波運算;
    (5)主控模塊切換輸出開關,把運算結果傳送到輸出FIFO中,至此完成通道0的濾波;
    (6)以同樣的方式完成32通道數據濾波,最后輸出完成信號,至此完成一幀數據的濾波。
    濾波器能夠以流水線方式高效運轉,即在輸出當前幀的濾波結果時可以輸入下一幀的數據,實現了連續濾波。為了達到200 kb/s的數據吞吐率,所需時鐘脈沖頻率為:
    200 kb/s×32×8=51.2 MHz(2)
    加上初始化時鐘總頻率約為55 MHz,低于EP3C16-Q208的工作頻率,濾波器能夠穩定工作。
3 應用與仿真
    針對應變測試系統的特點,采用二階50 Hz陷波器串聯14階帶通濾波器的方式組成濾波器。陷波器參數如表1所示,帶通濾波器參數如表2所示。

    在Filter Design軟件中輸入表中參數后生成濾波器并進行幅頻相應分析,陷波器幅頻響應如圖5所示,帶通濾波器幅頻響應如圖6所示。

 

 

    由分析結果可知,帶通濾波器獲得-80 dB的阻帶衰減,實際的濾波效果如圖7所示。Vi為輸入波形,是50 Hz、500 Hz、5 kHz正弦信號的疊加。將此波形模數轉換后進行50 Hz陷波及低頻為1 kHz高頻為10 kHz的帶通濾波后,再將數字信號進行數模轉換后得到輸出信號Vout。輸入信號中50 Hz與500 Hz信號被過濾,故輸出信號是頻率為5 kHz的正弦波。

    本文介紹的多通道可編程濾波器,應用在自主研發的應變測試系統中,取得了較好的濾波效果。濾波頻率可變的特點使得能夠選擇精確的濾波頻率。濾波器只使用一片FPGA及少量外圍元件,減小了硬件電路規模,降低了功耗,提高了可靠性。該濾波器可根據具體要求設計通道數、運算精度、運算速度等指標后應用到其他數據采集系統中。濾波器的目標文件可以下載到FPGA芯片上,使FPGA成為硬件數字濾波器,也可以把它嵌入到一個更大的系統中作為其中一個功能模塊,具有很大的設計靈活性。由于該濾波器是采用大規模FPGA芯片設計,而且輸入輸出端口采用串行方式,需要外部系統也有相應接口,對于通道數較少的應用場合,成本較高。
參考文獻
[1] 程佩青.數字信號處理教程(第2版)[M].北京:清華大學出版社,2001.
[2] 梁二虎,劉文怡,張文棟.基于FPGA的IIR數字濾波器硬件模塊的設計[J].微計算機信息,2008,24(2):218-219,198.
[3] 王誠,吳繼華.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2005.
[4] 倪向東.基于FPGA的四階IIR數字濾波器[J].電子技術應用,2003,29(12):64-66,69.
[5] 潘秀琴,李元,盧勇,等.基于FPGA的程控濾波器設計與實現[J].微計算機信息,2010,26(4-2):124-126.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一级毛片在线播放 | 久久精品天天爽夜夜爽 | 久久久高清日本道免费观看 | 欧美日韩国产免费一区二区三区 | 国产成人亚洲精品大帝 | 99热最新在线观看 | 久久精品国产久精国产 | 99re视频 | 综合久青草视频 | 欧美精品久久久久久久影视 | 2021最新国产精品一区 | 99久久精品99999久久 | 日本福利一区二区 | 欧美精品aaa久久久影院 | 深爱婷婷网 | 国产视频一区在线 | 国产成人久久 | 国产高清在线免费 | 国产国产精品人在线观看 | 国产区精品视频 | 国产区精品 | 久久精品中文字幕一区 | 国产精品网址你懂的 | 一级毛片免费播放视频 | 久久精品国产99国产精2020丨 | 美女久久久久久 | 男人的天堂久久香蕉国产 | 国产精品短视频 | 婷婷 综合网站 | 免费久久精品视频 | 国产毛片高清 | 免费理伦片在线观看全网站 | 午夜免费福利在线观看 | 精品无人区一区二区三区a 精品无人区一区二区三区 精品无人区一区二区三 | 欧美国产成人一区二区三区 | 激情婷婷色| 日韩久久久精品首页 | 精品福利一区二区三区免费视频 | 国产成人亚洲精品91专区高清 | 人人草视频在线 | 久久这里精品青草免费 |