竇恬恬
遼寧錦州渤海大學(xué)工學(xué)院
基于FPGA的數(shù)字濾波器實現(xiàn)
竇恬恬
遼寧錦州渤海大學(xué)工學(xué)院
對于現(xiàn)今的電子系統(tǒng)而言,尤其是圖像處理、視頻通訊等系統(tǒng)在處理信號方面有很高的要求,信號上要滿足靈活性以及實時性,同時目前的信號處理器無法滿足靈活性以及實時性方面的需求。隨著EDA以及可編程邏輯器件相關(guān)技術(shù)的不斷發(fā)展,無論是從成本、靈活性性能以及功耗等方面出發(fā),F(xiàn)PGA都體現(xiàn)出了很大的優(yōu)勢,在信號處理領(lǐng)域中已經(jīng)廣泛運用到了基于FPGA的信號處理器。本文主要實現(xiàn)了基于FPGA的IIR數(shù)字濾波器。
FPGA 信號處理 數(shù)字濾波器
現(xiàn)今為止,實現(xiàn)數(shù)字濾波器的方法主要分為兩種:硬件實現(xiàn)以及軟件實現(xiàn)。其中的軟件實現(xiàn)指的是借助于微型計算機平臺通過軟件實現(xiàn)。運用相關(guān)的計算機存儲器、控制器、以及運算器從而通過計算機將濾波器需要實現(xiàn)的運算編成程序執(zhí)行起來,使用者可以獨自編寫軟件,也能夠選擇用現(xiàn)成的軟件。國內(nèi)外的很多的研究公司實現(xiàn)了多種語言的信號處理軟件包,然而采取該方法實現(xiàn)效率比較低,很難實時處理信號,即使能夠選擇快速傅立葉變換算法增快計算速度,然而這是需要有所付出的,所以該方法用在科研以及教學(xué)方面比較多。
硬件實現(xiàn)指的是選擇專門的硬件數(shù)字濾波,現(xiàn)今大部分選擇的是單片機、DSP(數(shù)字信號處理器)、以及專門的集成電路。選擇單片機速率比較低,專門的集成電路性能好。現(xiàn)今比較常用的方法是選擇數(shù)字信號處理芯片。DSP處理器在本質(zhì)上指的是應(yīng)用于數(shù)字信號處理方面的一種單片微處理器,該處理器的最大特點是具有很強的靈活性,而且適應(yīng)性也很強,另外還可以實現(xiàn)可編程,而且具有高效的處理速度。
數(shù)字濾波器作為線性處理模塊中的一種,在數(shù)字信號處理中具有很廣泛的影響意義,數(shù)字濾波器的功能從實際上講就是把再將一組輸入的序列經(jīng)過運算以后再次形成另一組數(shù)字序列。數(shù)字濾波器能夠達到準(zhǔn)確線性相位特性的效果,而這個是模擬器件無法做到的。數(shù)字濾波器通常情況下是由2部分組成,分別是有限沖激響應(yīng)濾波器,簡稱為FIR和另一種就是無限沖激響應(yīng),簡稱為IIR。IIR濾波器中的h(n)是無限長的,也即是單位沖激響應(yīng),而同時IIR濾波器的傳遞函數(shù)H(z)是存在極點的,在結(jié)構(gòu)上也是有輸出輸入反饋的存在,在結(jié)構(gòu)上稱為是遞歸型的。IIR數(shù)字濾波器的傳遞函數(shù)可以用以下公式表示。

當(dāng)設(shè)計指標(biāo)是相同的時候,F(xiàn)IR濾波器在階數(shù)方面的要求是高于IIR濾波器5倍左右,而且具有較高的成本,同時具有較大的信號延遲。IIR濾波器在階數(shù)方面要求比較低,同時還能夠根據(jù)模擬濾波器實現(xiàn)所需要的效果,選擇基于FPGA的IIR濾波器在很多方面都占據(jù)優(yōu)勢。
延時模塊的結(jié)構(gòu)圖如圖1所示。

圖1 延時模塊的結(jié)構(gòu)圖
其中這里的移位寄存器的實現(xiàn)語言選擇的是VHDL,延時模塊程序流程圖如圖2所示。

圖2 延時模塊程序流程圖
控制模塊在設(shè)計的過程中主要是采用了從結(jié)果開始,進而生成多種控制信號的思想。但是因為不同的控制信號就會有不同的時序,所以必須要確保時序的正確性,從而才可以保證每個模塊能夠相互協(xié)調(diào)運作,最終獲得正確的結(jié)果。在這個過程中的預(yù)備工作就是將信號輸入以及輸出的個數(shù)確定下來,并且掌握這些信號之間的相互時序關(guān)系。
把IIR濾波器中的每個基本二階節(jié)的邏輯符號通過固定的方式連接起來,從而實現(xiàn)IIR濾波器的邏輯設(shè)計。在IIR濾波器的設(shè)計中選擇的二階子系統(tǒng)就有5個,他們之間是相互級聯(lián)的關(guān)系,而且在同一時鐘的情況下這5個二階子系統(tǒng)是并行工作的,同時需要把12位輸入數(shù)據(jù)通過補零的方式形成16位,其中所有的級聯(lián)二階子系統(tǒng)里面都包括了每個模塊,從而達到處理數(shù)字濾波的目的。
濾波器的工作是否正確的檢測需要通過手動的方式將周期數(shù)據(jù)輸入,表1中所示的是指Matlab的計算值和采用Quartusn進行仿真的結(jié)果值,從相關(guān)的理論中可以知道,周期方波信號是不存在偶次諧波的,因此當(dāng)諧波衰減達到了3次以上的時候,需要通過IIR濾波器從而輸出的結(jié)果中顯示的是基波。表1中的誤差主要是由于精度問題計算,誤差降低能夠通過二進制位數(shù)增加的方式進行改善。

表1 濾波后輸出的數(shù)據(jù)
有關(guān)IIR濾波器的設(shè)計指標(biāo)可以設(shè)置成:低通濾波器的抽樣率Fs是等于10M赫茲,而低通濾波器的通帶截止頻率是等于500K赫茲的,阻帶截止頻率的值是等于550K赫茲,而通帶最大衰減的值是等于0.ldB,阻帶最小衰減的值是等于60dB。本文在濾波器方式選擇方面進行了采用切比雪夫I/II型、橢圓型、以及巴特沃斯型等的對比分析。從而能夠得出當(dāng)IIR濾波器的性能指標(biāo)是相同的時候,選擇用橢圓型濾波器效果是最佳的,而且該方式所需要的階數(shù)是最小的,比較容易實現(xiàn)。
6.1 實驗電路
作為系統(tǒng)測試中最重要的一個部分,實驗電路顯示的是系統(tǒng)的實現(xiàn)情況,該部分主要介紹的是實驗電路中的A/D轉(zhuǎn)換電路、D/A轉(zhuǎn)換電路以及IIR數(shù)字濾波電路等。
6.1.1 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路中實現(xiàn)的是信號的轉(zhuǎn)換過程,而這個信號是從模擬信號到數(shù)字信號。在A/D轉(zhuǎn)換電路的實現(xiàn)過程中具體的包括了A/D的轉(zhuǎn)換芯片以及型號為AD828的運算放大器、以及其他的電阻電容之類的元件。該A/D轉(zhuǎn)換電路中的芯片選擇的是效率最佳的,而且選擇差分的形式實現(xiàn)模擬信號的輸入,該電路的電壓范圍在1V波動。
6.2 實驗結(jié)果與分析
在實際芯片里面保存的是系統(tǒng)設(shè)計的10階IIR低通濾波器的相關(guān)文件,通過編譯以后從而進一步濾波的測試。在測試IIR濾波器的流程中,輸入的周期方波信號的頻率是不一樣的,首先需要選擇Quartusn軟件里面的邏輯分析儀實現(xiàn)調(diào)試和驗證的過程,接著根據(jù)雙蹤示波器從而將輸入輸出的波形進行測試。具體的測試波形結(jié)果如圖3所示。

圖3 周期等于100KHZ方法的濾波效果

圖4 100KHZ方波濾波前的FFT圖
結(jié)語:本文主要介紹了基于基于FPGA的數(shù)字濾波器的設(shè)計,重點從IIR濾波器的角度進行分析。程序設(shè)計部分包括了控制模塊以及延時模塊的設(shè)計,課題結(jié)尾部分實現(xiàn)了數(shù)字濾波器的測試,并且給出了測試的結(jié)果圖。
[1]齊海兵,劉雄飛,張德恒.基于FPGA的數(shù)字濾波器的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2006,29(15):70-71
[2]梁二虎,劉文怡,張文棟.基于FPGA的IIR數(shù)字濾波器硬件模塊的設(shè)計[J].微計算機信息,2008,24(2):205+225-226
[3]蔣壘,王昌林,劉鎏,等.基于FPGA的FIR數(shù)字濾波器算法實現(xiàn)[J].艦船電子工程,2006,26(1):151-156
[4]楊國慶,YANGGuoqing.基于FPGA的FIR數(shù)字濾波器的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2008,31(19):184-186