




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目目 錄錄摘要 .1英文摘要 .11 引言 .21.1 國內外研究現狀.21.2 本論文的研究內容及主要工作.42 FIR 數字濾波器設計.42.1 數字濾波器基礎.42.1.1 數字濾波器簡介.42.1.2 FIR 數字濾波器的結構 .52.2 FIR 數字濾波器設計方法 .62.2.1 窗函數法.72.2.2 頻率采樣法.82.2.3 等波紋最佳逼近法.92.2.4 三種設計方法的比較.103 FPGA 設計優(yōu)點以及分布式算法 .103.1 使用 FPGA 器件進行開發(fā)的優(yōu)點.103.2 分布式算法.123.2.1 分布式算法基礎.123.2.2 有符號的 DA 系統.134 基于 FPG
2、A 的 FIR 濾波器設計 .134.1 基于 MATLAB的 FIR 數字低通濾波器抽頭系數的提取 .134.1.1 濾波器的設計指標.134.1.2 濾波器的具體設計方法.144.1.3 參數提取與量化.154.2 FIR 濾波器的 FPGA 實現 .164.2.1 模塊劃分.164.2.2 FIR 濾波器各模塊的實現 .164.2.3 FIR 濾波器的頂層設計 .264.3 FIR 濾波器的系統仿真驗證 .274.4 系統硬件.324.4.1 系統框圖.324.4.2 部分芯片簡介.324.4.3 AD、DA 電路原理圖 .354.5 測試波形及現場照片.354.6 數據誤差分析.36結
3、 論 .37參考文獻 .37附 件 .38基于基于 FPGAFPGA 的的 FIRFIR 濾波器的設計濾波器的設計基于 FPGA 的 FIR 濾波器的設計第 1 頁 共 45 頁摘要摘要:本文設計了一個基于FPGA的16階FIR低通濾波器,使用分布式算法作為濾波器的硬件實現算法,并對其進行了詳細的討論。針對分布式算法中LUT規(guī)模過大的缺點,采用多塊查找表的方式減小硬件規(guī)模。在設計中采用了自頂向下的層次化、模塊化的設計思想,將整個濾波器劃分為多個模塊,利用VHDL語言的描述方法進行了各個功能模塊的設計,最終完成了FIR數字濾波器的系統設計。文章采用CycloneII系列器件實現一個16階的FIR
4、低通濾波器的設計實例,用QuartusII軟件進行了仿真,并用Matlab對仿真結果進行了分析,證明所設計的FIR濾波器功能正確。仿真結果表明,本論文所設計的FIR濾波器硬件模較小,采樣率達到了10MHz。同時只要將查找表進行相應的改動,就能分別實現低通、高通、帶通FIR濾波器,體現了設計的靈活性。關鍵詞:關鍵詞:FIR濾波器;FPGA器件;VHDL語言;分布式算法;查找表Design of FIR Filters Based on FPGAAbstract: In this paper, a sixteen tapped low pass FIR filter is designed bas
5、ed on FPGA, a scheme of hardware implementation is worked out using distributed arithmetic algorithm, and is discussed in detail. As the scale of the LUT in the distributed arithmetic algorithm is so large, the thesis reduces it with the using of multiple coefficient memory banks. From the clew of i
6、mplementing a top-down stratified modular design, the thesis describes the hardware designed of all functional modules and the FIR system with the VHDL and schematic diagram designed methods.In this thesis, A sixteen tapped low-pass FIR filter implemented using CycloneII taken as an example, and the
7、 simulation designed carried out using QuartusII. The result of the simulation is analyzed with the use of Matlab, and it proved that the functional of the design if correct.The result of the simulation indicates that the scale of the design is small,and the sample rate of the FIR filter can search
8、10MHz. Modifying the LUT can realize the low-pass, high-pass and band-pass FIR filters and respectively and incarnates the flexibility of the design.Key Words:FIR Filter;FPGA;VHDL;Distribute Darithmatic;LUT1 1 引言引言濾波技術是信號分析、信號處理技術中的重要分支。無論是信號的獲取、傳輸,還是信號的處理、轉換都離不開濾波技術。濾波技術對信號安全可靠和有效靈活的傳遞至關重要1?;?FPGA
9、 的 FIR 濾波器的設計第 2 頁 共 45 頁在電子系統中,由于濾波器的好壞直接影響系統的性能,所以濾波技術己成為備受關注而熱門的課題,濾波器的研制己受到各國研究者越來越多的重視。我國在上世紀 50 年代后期開始廣泛使用濾波器,主要應用在報路和話路濾波。經過半個多世紀的發(fā)展,我國濾波器在研制、生產、應用等方面己進入國際發(fā)展軌道,但由于缺少專門研制機構,加之集成工藝和材料工業(yè)發(fā)展步伐的緩慢,使得我國在許多新型濾波器的研制和應用方面與國外仍有較大的差距。數字濾波器是對離散時間信號進行濾波處理以得到期望的響應特性的離散時間系統。數字濾波器一般由寄存器、延時器、加法器和乘法器等基本數字電路來實現。
10、數字濾波器能滿足濾波器對幅度和相位特性的嚴格要求,避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。隨著集成電路技術的發(fā)展,數字濾波器性能不斷提高而成本卻不斷降低。數字濾波器在語音信號處理、圖像信號處理、醫(yī)學生物信號處理以及其他應用領域都得到了廣泛應用。隨著電子計算機和大規(guī)模集成電路技術的發(fā)展,數字濾波器可用計算機軟件實現,也可用大規(guī)模集成數字硬件實時實現,數字濾波器已具備了高精度、高可靠性、可程控改變性或復用、便于集成等眾多優(yōu)點。按照數字濾波器(DF)的特性,可分為線性與非線性、因果與非因果、無限長沖激響應(IIR)與有限長沖激響應(FIR)等類型。在這些濾波器中,線性時不變的數字濾
11、波器是最基本的類型。由于數字系統可以對延時器加以利用,因此若在數字濾波器中引入一定程序的非因果性,就可獲得比傳統的因果濾波器更靈活強大的特性。相對于 IIR 濾波器,FIR 濾波器具有易于實現和系統絕對穩(wěn)定的優(yōu)勢,因此得到廣泛的應用2。1.11.1 國內外研究現狀國內外研究現狀在國內外的研究中,設計 FIR 濾波器所涉及的乘法運算方式有:并行乘法、位串行乘法和采用分布式算法的乘法。并行乘法雖然速度快,同時占用的硬件資源極大。如果濾波器的長度增加,乘法器位數也將變大,硬件規(guī)模將變得十分龐大。位串行乘法器的實現方法主要是通過對乘法運算進行分解,用加法器來完成乘法的功能,也即無乘法操作的乘法器。但由
12、于一個 8*8 位的乘法器輸出為 16 位,為了得到正確的 16 位結果,串行輸入的二進制補碼數要進行符號位擴展,即將串行輸入的 8 位二進制補碼前補 8 個 0(對正數)或 8 個 1(對負數)后才輸入乘法器。如果每一位的運算需要一個時鐘周期的話,這個乘法器需要 16 個時鐘周期才能計算出正確結果,這就意味著此類乘法器要完全計算出結果的延遲必將會很大。所以位串行乘法器雖然使得乘法器的硬件規(guī)模達到了最省,但是由于是串行運算,使得它的運算周期過長,速度與規(guī)模折衷考慮時不是最優(yōu)的?;?FPGA 的 FIR 濾波器的設計第 3 頁 共 45 頁分布式算法(distributed arithmeti
13、c,AD)的主要特點是巧妙的利用 ROM 查找表將固定系數的乘累加(Multiply-accumulator,MAC)運算轉化為查表操作,它與傳統算法實現乘累加運算的不同在于執(zhí)行部分積運算的先后順序不同。分布式算法在完成乘累加功能時是通過將各輸入數據每一對應位產生的部分積預先進行相加形成相應的部分積,然后再對各個部分積累加產生最終結果,而傳統算法是等到所有乘積已經產生之后再來相加來完成乘累加運算的。就小位寬來說,AD 算法設計的 FIR 濾波器的速度可以顯著的超過基于 MAC 的設計。相對于前兩種方法,DA 算法既可以全并行實現,又可以全串行實現,還可以串并行結合實現,可以在硬件規(guī)模和濾波器速
14、度之間作適當的折中,是現在被研究的主要方法。FIR 數字濾波器的實現,大體可以分為軟件實現和硬件實現方法兩種。軟件實現方法即是在通用的微型計算機上用軟件實現。利用計算機的存儲器、運算器和控制器把濾波所要完成的運算編成程序通過計算機來執(zhí)行,軟件可由使用者自己編寫,也可以使用現成的。國內外的研究機構、公司已經推出了不同語一言的信號濾波處理軟件包。但是這種方法速度慢,難以對信號進行實時處理,雖然可以用快速傅立葉變換算法來加快計算速度,但要達到實時處理要付出很高的代價,因而多用于教學與科研。硬件實現即是設計專門的數字濾波硬件,采用硬件實現的方法一般都比采用軟件實現方法要困難得多,目前主要采用的方法有以
15、下幾種3:(1)采用 DSP(Digital Signal Processing)處理器實現DSP 處理器是專為數字信號處理而設計的,如 TI 公司的 TMS32OCX 系列,AD公司的 ADSPZXI,ADSP210X 系列等。它主要數字運算單元是一個乘累加器(Multiply-accumulator MAC),能夠在一個機器周期內完成一次乘累加運算,配有適合于信號處理的指令,具備獨特的循環(huán)尋址和倒序尋址能力。這些特點都非常適合數字信號處理中的濾波器設計的有效實現,并且它速度快,成本低,在過去的 20 多年的時間里,軟件可編程的 DPS 器件幾乎統治了商用數字信號處理硬件的市場。(2)采用固
16、定功能的專用信號處理器來實現,適用于過程固定而又追求高速的信號處理任務,是以指定的算法來確定它的結構,使用各種隨機邏輯器件組成的信號處理器。它們體積小、保密性好,具有極高的性能,然而靈活性差。二者相比,固定功能的 DSP 專用器件可以提供很好的實時性能,但其靈活性差,研發(fā)周期長,難度也比較大;DSP 處理器的成本低且速度較快,靈活性好,但由于軟件算法在執(zhí)行時的順序性,限制了它在高速和實時系統中的應用。在一些高速應用中,系統性能的要求不斷增長,而 DSP 性能的提高卻落后于需求的增長?;?FPGA 的 FIR 濾波器的設計第 4 頁 共 45 頁現在,大規(guī)??删幊踢壿嬈骷閿底中盘柼幚硖峁┝艘?/p>
17、種新的實現方案。分布式算法可以很好地在 FPGA(Field Programmable Gate Array)中實現,然而卻不能有效的在 DSP 處理器中實現,所以采用 FPGA 使用分布式算法實現 FIR 數字濾波器有著很好的發(fā)展前景。采用現場可編程門陣列 FPGA 來實現 FIR 數字濾波器,既兼顧 ASIC 器件(固定功能 DSP 專用芯片)的實時性、又具有 DSP 處理器的靈活性。FPGA 和 DSP 技術的結合能夠更進一步提高集成度、加快速度和擴展系統功能。用 FPGA 設計的產品還具有體積小、速度快、重量輕、功耗低、可靠性高、仿制困難、上批量成本低等優(yōu)點。但是,DA 算法中的查找表
18、的規(guī)模隨著 FIR 數字濾波器長度的增加呈指數增長,而且隨著濾波器系數的位數的增加,查找表的規(guī)模也會增加,這將極大的增加設計的硬件規(guī)模。所以如何減小查找表的規(guī)模成為尚待解決的問題。1.21.2 本論文的研究內容及主要工作本論文的研究內容及主要工作本論文重點研究的是 FIR 低通數字濾波器的研究與設計,具體內容分為五節(jié):第一節(jié)引言主要介紹了本課題的來源及研究意義、國內外現狀。第二節(jié)主要介紹了 FIR 數字濾波器的原理以及線性相位 FIR 濾波器的結構和設計方法。第三節(jié)介紹了 FPGA 設計優(yōu)點及 DA 算法優(yōu)化研究,重點是分布式算法的原理以及 DA 算法優(yōu)化的研究與設計,并對具體的分組優(yōu)化方法做
19、了詳細的討論。第四節(jié)首先利用 Matlab 制定設計指標,提取 16 階 FIR 低通數字濾波器的抽頭數并進行量化。然后基于 FPGA 分模塊對其進行研究設計,并進行綜合系統仿真和驗證。最后介紹了 A/D、D/A 模塊的具體設計方法,給出了電路原理圖。文章最后給出了現場測試的一些照片。2 2 FIRFIR 數字濾波器設計數字濾波器設計2.12.1 數字濾波器數字濾波器基礎基礎數字濾波器在數字信號處理中屬于預處理的部分,因而起著基礎性的作用,數字濾波器包括 IIR 和 FIR 數字濾波器。數字濾波器具有精度高、穩(wěn)定性好、靈活性強、不要求阻抗匹配,易于修改等特點。下面將首先介紹一下數字濾波器,然后
20、重點討論 FIR 數字濾波器的設計原理和結構4。.1 數字濾波器簡介數字濾波器簡介一個簡單的數字濾波系統如圖 2-1 所示。圖中,x(t)為模擬信號,經過 A/D轉換器后變?yōu)橐粋€有著先后順序的數字序列 x(n)。然后 x(n)通過數字濾波系統H(z),即得到數字濾波器的輸出 y(n)。H(z)為該數字濾波系統的單位脈沖響應基于 FPGA 的 FIR 濾波器的設計第 5 頁 共 45 頁h(n)的 Z 變換,即: (2-1nnznhzH)()()若 h(n)為無限長序列,則得到的數字濾波器為 IIR 數字濾波器,又稱遞歸濾波器;反之,若 h(n)為有限長序列,則得到的數字濾波器為
21、 FIR 濾波器,也稱非遞歸濾波器。一個線形時不變因果濾波器可表示為: (2-2)10)()(NnnznhzH其中 N 為 h(n)的長度,即濾波器的長度。y y( (n n) )x x( (t t) )x x( (n n) )A A/ /D DH H( (Z Z) )圖 2-1 數字濾波系統IIR 濾波器主要是基于對模擬濾波器如巴特沃斯濾波器、橢圓濾波器等的幅頻響應進行逼近,而其相頻響應是非線性的。與 IIR 濾波器不同,FIR 濾波器可以把相位特性設計成線性。這使得 FIR 數字濾波器在信號無失真?zhèn)鬏?、數據通信、圖像傳輸與處理、語音信號處理等有線性相位要求的領域應用廣泛。FIR 濾波器的優(yōu)
22、點是軟硬件實現結構簡單,不用考慮系統的穩(wěn)定性問題;缺點是實現較高性能的頻率響應需要較高的濾波器階數。.2 FIRFIR 數字濾波器的結構數字濾波器的結構由于 FIR 數字濾波器實現算法的不同,我們可以把 FIR 濾波器的結構劃分為直接型、級聯型、頻率采樣型和快速卷積型四種基本形式。本文主要討論前兩種結構。(1)直接型結構由式 2-2 可直接畫出 FIR 數字濾波器的直接型結構,如圖 2-2 所示。對于直接型結構來說,一個長度為 N 的 FIR 濾波器,每產生一個輸出數據,要經過 N 次乘法,N-1 次加法。對于使用 FPGA 開發(fā) FIR 數字濾波器,這樣的結果顯然不令人滿意。
23、基于 FPGA 的 FIR 濾波器的設計第 6 頁 共 45 頁h(0)h(1)h(2)h(N-2)h(N-1)1z1z1zy(n)圖 2-2 直接型結構于是本文做了一下改進,這種改進是基于線性相位的 FIR 數字濾波器的。以嚴格線性相位,N 為偶數的 FIR 濾波器為例,如圖 2-3 所示。x(n)1z1z1z1z1zh(1)h(2)h(N/2)y(n)圖 2-3 直接型的改進由于關于對稱,我們可以將經過延時環(huán)節(jié)的位置關于)(nh2/ ) 1( Nn對稱的數據預先相加,然后可以再乘以相應的濾波器系數進行累加得到2/ ) 1(N最終的輸出結果。這樣,每產生一個輸出,經過次乘法,次加法,比原2/
24、N1N來減少次乘法。2/N(2)級聯型結構對式(2-2)進行因式分解,并將零點共軛的因式放在一起,這樣產生了若干個一階子式和二階子式,將一階子式看作二階子式的一個特例,則系統函數可以表示為:)(zH (2-LlzazahzH1212111)1 ()0()(3)FIR 數字濾波器的級聯型結構如圖 2-4 所示。x(n)1z1z1z1z1z1z112112221L2Lh(0)y(n)圖 2-4 級聯型結構基于 FPGA 的 FIR 濾波器的設計第 7 頁 共 45 頁從圖中可以看出,級聯型結構每產生一個輸出,需要次乘法,次加1N1N法。級聯型的最大特點是可以分別獨立調整每個子系統的零點之值,當需要
25、精確控制濾波器的零點位置時,往往采用這種結構5。2.22.2 FIRFIR 數字濾波器設計方法數字濾波器設計方法FIR 數字濾波器的設計方法主要有三種:時窗函數法、頻率采樣法和等波紋設計法6。下面將分別討論一下這三種方法的設計原理,然后給出設計步驟,最后在比較一下這三種方法的優(yōu)缺點。.1 窗函數法窗函數法一個理想低通濾波器的幅頻特性如圖 2-5 所示。的表達式為)(jwdeH (2-4)wwwweHccjwd, 0, 1)(w)(jwdeHcwcw圖 2-5 理想低通濾波器頻譜圖對進行離散時間傅里葉逆變換,得)(jwdeH dweeHnhjwnjwdd)(21)( (2-5)c
26、cwwcjwnnnwdwe)sin(21是一個關于對稱的無限長序列,是系統的單位脈沖響應,這說明系統)(nhd)0(dh是非因果的,在物理上不可實現。為了能夠得到一個可實現的系統,可以將截取一部分,并順序右移,使之成為一個因果的有限長序列。這種方法就好)(nhd比在時域打開一個窗口一樣,因而稱為窗函數法。可以預見,使用這種方法截取的序列越長,對理想的幅頻特性逼近的越好。常見的時窗函數有矩形窗、漢寧窗、漢明窗、布萊克曼窗、凱塞窗等。矩形窗的表達式為:,為整數。當用矩形窗設計 FIR 濾波器時,其它,, 0101)(NnwnRn所產生的頻率響應,與理想濾波器的頻率特性相比,在理想特性不連續(xù)點處附近
27、形成了過渡帶,并在過渡帶兩側形成持續(xù)時間很長,逐漸衰減的波cww 基于 FPGA 的 FIR 濾波器的設計第 8 頁 共 45 頁紋,即通帶內產生了波動,而阻帶內產生了余振,這種現象稱之為吉布斯(Gibbs)效應。吉布斯效應直接影響到濾波器的性能,因為通帶內的波動會影響到濾波器的平穩(wěn)性,阻帶內的波動則影響阻帶最小衰減。窗函數的選擇原則是:(1)具有較低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下降速度要快,以利增加阻帶衰減。(3)主瓣的寬度要窄,以獲得較陡的過渡帶。但是這幾個標準之間彼此是有矛盾的,即主瓣寬度越大,旁瓣水平才可能越低。因此實際上。因此,實際選用的窗函數往往是它們的折中。在保
28、證主瓣寬度達到一定要求的條件下,適當犧牲主瓣寬度來換取旁瓣波動的減少。六種窗函數的主要參數如表2-2所示。應當說明的是,用時窗函數法設計的 FIR 濾波器通帶波紋幅度近似等于阻帶波紋幅度。一般阻帶最小衰減達到 40dB 以上,則通帶最大衰減就小于 0.1dB。最后,總結一下利用窗函數設計 FIR 數字濾波器的步驟:(1)給定所要求的頻率響應函數;)(jwdeH(2)求;)()(jwddeHIDTFTnh(3)有過濾帶寬及阻帶最小衰減的要求,利用下表選定窗的形狀及 N 的大小,一)(nw般 N 要通過幾次試探而最后確定。(4)求的所設計的 FTR 的單位抽樣響應 )()()(nwnhnhd1,.
29、,1 , 0Nn (5)求,檢驗是否滿足設計要求,如不滿足,則需重新設計。)()(nhDTFTeHjw表 2-2 六種窗函數參數表的比較窗譜性能指標加窗后濾波器性能指標窗函數旁瓣峰值/db主瓣寬度/()N/2過濾寬度w/)/2(N阻帶最小衰減/db矩形窗-1320.9-21巴特列特-2542.1-25漢寧窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凱澤窗-575-80.2 頻率采樣法頻率采樣法頻率采樣法是一種基于頻率域抽樣來逼近所要設計的 FIR 濾波器的頻率特性的一種方法。頻率設計法的基本設計流程如圖 2-6 所示?;?FPGA 的 FIR
30、 濾波器的設計第 9 頁 共 45 頁)(jwdeH確定2 /()( )jNddHeHk( )( )dh nIDFT Hn( )( ( )H zZT h n抽樣N點離散傅里葉逆變換圖 2-6 頻率設計法流程為了保證具有線性相位條件,其單位采樣響應是實序列,且滿足條)(zH)(nh件。對于偶對稱的情況來說,線性相位條件如下:) 1()(nNhnh)(nh (2-6)()()(wjgjwdewHeH) (2-7wNw) 1(21)()令代入式(2-6) 、 (2-7) ,得到Nkw/2 (2-8)()()(kjgdekHkH)式中, NkwggwHkH/2| )()( Nkwwk/2| )()(
31、,N 為奇數)()(kNHkHgg ,N 為偶數。)()(kNHkHgg頻率響應函數在各采樣點上等于,而采樣點之間的值是)(jweH)(kHd)(jweH由各采樣值之間的內插函數疊加形成,因而有一定的逼近誤差,誤差的大小取決于理想頻率響應的曲線形狀。采樣點之間的理想頻率特性變化越陡,則內插值與理想值之間的誤差就越大,因而在理想頻率響應特性的不連續(xù)點附近,就會產生肩峰和波紋;反之,理想頻率響應特性變化越平緩,則內插值越接近理想值,逼近誤差小。因此,可以在理想頻率下響應特性的通帶與阻帶之間設置過渡帶,從而減小逼近誤差。過渡帶的采樣點個數 m 與所設計的濾波器的阻帶最小衰減有關,具體如表s2-3 所
32、示。此外過渡帶的帶寬與采樣點數 m 之間的關系為: (2-9)NmB/ ) 1(2基于 FPGA 的 FIR 濾波器的設計第 10 頁 共 45 頁表 2-3 過渡帶采樣點數與阻帶最小衰減的關系m1234dBs/2044-5465-7585-95綜上,頻率采樣法的設計步驟為:A. 根據阻帶最小衰減,確定過渡帶的樣點數 m。sB. 根據過渡帶寬度的要求,估算濾波器的長度。BC. 構造希望逼近的頻率響應函數,一般為具有理想頻率特性,)(jwdeH)(jwdeH并滿足線性相位的要求。D. 對進行頻域等間隔 N 點采樣,得到。)(jwdeH)(kHdE. 對進行 N 點 IDFT,得到。)(kHd)(
33、nh.3 等波紋最佳逼近法等波紋最佳逼近法等波紋最佳逼近法是基于最大誤差最小化的設計原則。最大誤差最小化能使幅度誤差在整個逼近頻段上均勻分布,即所設計的 FIR 數字濾波器的幅度特性在通帶和阻帶范圍內是等波紋的,且可以分別獨立控制通帶和阻帶的波紋幅度,并且在濾波器長度給定的情況下,加權的幅度波紋誤差最小。定義加權幅度誤差函數為 (2-10)()()()(wHwHwWwed,式中為幅度誤差加權函數,用來控制不同頻帶的幅度逼近誤差。一般地,)(wW在要求逼近精度高的頻帶,取值大,而要求逼近誤差精度低的頻帶,)(wW取值小。設計過程中是由設計者根據通帶最大衰減和阻帶最小衰減)(wW)
34、(wWp的指標要求取定的已知函數。對于 FIR 數字低通濾波器,常取:s (2-11)wwkwwkwWpp,0 ,/)(12式中,和分別為濾波器設計指標中通帶和阻帶的振蕩波紋幅度,k 為正的系12數。濾波器的通帶最大衰減和阻帶最小衰減與通帶和阻帶的振蕩波紋幅度ps和的換算關系為:12 (2-12)11011020/20/1pp (2-13)20/210s等波紋最佳逼近法的設計,在于找到濾波器的系數向量,使得在通帶)(nh和阻帶頻帶內的最大絕對值幅度誤差為最小。, 0pw,sw)(we帕克斯-麥克萊倫采用基于交替定理的雷米茲交替算法,通過逐次迭代逼近的基于 FPGA 的 FIR 濾波器的設計第
35、11 頁 共 45 頁運算求得濾波器的系數向量,從而實現等波紋最佳逼近法。 一般情況下,估)(nh計濾波器長度 N 的凱塞經驗公式為: (2-14)1)2/(6 .1413lg(2021pswwN綜上,用等波紋最佳逼近法設計 FIR 數字濾波器的步驟為:(1)根據濾波器的設計指標要求:邊界頻率、通帶最大衰減、阻帶最小衰p減等,估計濾波器的長度,并確定幅度誤差加權函數。s(2)采用雷米茲交替算法,獲得所設計的濾波器的單位脈沖響應。)(nh2.2.4 三種設計方法的比較 綜述可得,窗函數法設計的基本思想是把給定的頻率響應通過離散時間傅里葉逆變換IDTFT(Inverse Discrete Time
36、 Fourier Transform) ,求得脈沖響應,然后利用加窗函數對它進行截斷和平滑,以實現一個物理可實現且具有線性相位的 FIR 數字濾波器的設計目的。其核心是從給定的頻率特性,通過加窗確定有限長單位取樣響應 h(n);頻率采樣法設計的基本思想是把給出的理想頻率響應進行取樣,通過 IDFT 從頻譜樣點直接求得有限脈沖響應;等波紋切比雪夫逼近法則是利用 MATLAB 提供的 remez 函數實現 Remez 算法,設計濾波器逼近理想頻率響應。 比較以上三種濾波器的設計方法,在同樣的階數下,等波紋切比雪夫逼近法可以獲得最佳的頻率特性和衰耗特性,具有通帶和阻帶平坦,過渡帶窄等優(yōu)點。頻率采樣設
37、計法可以設計某些特殊濾波器,且其設計過程簡單,但阻帶衰減明顯,若適當選取過渡帶樣點值,會取得較窗函數設計法略好的衰耗特性。窗函數設計法在階數較低時,阻帶特性基本滿足設計要求,當濾波器階數較高時,使用漢寧窗、海明窗、布萊克曼窗和凱澤窗即可以達到阻帶衰耗要求3 3 FPGAFPGA 設計優(yōu)點以及分布式算法設計優(yōu)點以及分布式算法3.13.1 使用使用 FPGAFPGA 器件進行開發(fā)的優(yōu)點器件進行開發(fā)的優(yōu)點使用 FPGA 器件設計數字電路,不僅可以簡化設計過程,而且可以降低整個系統的體積和成本,增加系統的可靠性。它們無需花費傳統意義下制造集成電路所需大量時間和精力,避免了投資風險,成為電子器件行業(yè)中發(fā)
38、展最快的一個系列。使用 FPGA 器件設計數字系統電路的主要優(yōu)點如下:(1)設計靈活使用 FPGA 器件,可以不受標準系列器件在邏輯功能上的限制。而且修改邏輯可在系統設計和使用過程的任一階段中進行,并且只須通過對所用的 FPGA 器件進行重新編程即可完成,給系統設計提供了很大的靈活性。(2)增大功能密集度功能密集度是指在給定的空間能集成的邏輯功能數量??删幊踢壿嬓酒瑑鹊慕M件門數高,一片 FPGA 可代替幾片、幾十片乃至上百片中小規(guī)模的數字集成電路芯片。用 FPGA 器件實現數字系統時用的芯片數量少,從而減少芯片的使用數目,減少印刷線路板面積和印刷線路板數目,最終導致系統規(guī)模的全面縮減。(3)提
39、高可靠性減少芯片和印刷板數目,不僅能縮小系統規(guī)模,而且它還極大的提高了系統基于 FPGA 的 FIR 濾波器的設計第 12 頁 共 45 頁的可靠性。具有較高集成度的系統比用許多低集成度的標準組件設計的相同系統具有高得多的可靠性。使用 FPGA 器件減少了實現系統所需要的芯片數目,在印刷線路板上的引線以及焊點數量也隨之減少,所以系統的可靠性得以提高。(4)縮短設計周期出于 FPGA 器件的可編程性和靈活性,用它來設計一個系統所需時間比傳統方法大為縮短。FPGA 器件集成度高,使用時印刷線路板電路布局布線簡單。同時,在樣機設計成功后,由于開發(fā)工具先進,自動化程度高,對其進行邏輯修改也十分簡便迅速
40、。因此,使用 FPGA 器件可大大縮短系統的設計周期,加快產品投放市場的速度,提高產品的競爭能力。(5)工作速度快FPGA/CPLD 器件的工作速度快,一般可以達到幾百兆赫茲,遠遠大于 DPS 器件。同時,使用 FPGA 器件后實現系統所需要的電路級數又少,因而整個系統的工作速度會得到提高。(6)增加系統的保密性能很多 FPGA 器件都具有加密功能,在系統中廣泛的使用 FPGA 器件可以有效防止產品被他人非法仿制。(7)降低成本使用 FPGA 器件實現數字系統設計時,如果僅從器件本身的價格考慮,有時還看不出來它的優(yōu)勢,但是影響系統成本的因素是多方面的,綜合考慮,使用 FPGA的成本優(yōu)越性是很明
41、顯的。首先,使用 FPGA 器件修改設計方便,設計周 FPGA 器件進行系統設計能節(jié)約成本。期縮短,使系統的研制開發(fā)費用降低;其次,FPGA器件可使印刷線路板面積和需要的插件減少,從而使系統的制造費用降低;再次,使用 FPGA 器件能使系統的可靠性提高,維修工作量減少,進而使系統的維修服務費用降低。總之,使用 FPGA 器件進行系統設計能節(jié)約成本7。3.23.2 分布式算法分布式算法.1 分布式算法基礎分布式算法基礎分布式算法(Distributed Arithmetic,DA)是一項重要的 FPGA 技術,它廣泛地應用在計算積之和之中。10)(*)(,Nnnxncxcy= (
42、3-0 01 11 1cxcxc Nx N+-1)進一步假設系數是已知常數,是變量。無符號 DA 系統假設變量ncnx的表示方式如下:nx基于 FPGA 的 FIR 濾波器的設計第 13 頁 共 45 頁 , (3-102Bbbbnxnx 1 , 0bx2)其中表示的第位,而也就是的第次采樣,而內積可以表nxb x nb x nxny示方式為: (3-10102NnBbbbkxncy3)重新分配求和的順序(也就是“分布式算法名稱的由來” )其結果如下: (3-120120120120120120111120(020202 )1(121212 )1(121212 )( 001111)2( 001
43、BBBBBBBBBBBBBBBBBycxxxcxxxc NxNxNx Ncxcxc NxNcxc-=+ + -+-+- =+- +2220000111)2( 0 01 11 1)2BBBxc NxNcxcxc Nx N-+- +-4)或者可以寫成更為簡潔的如下形式: (3-) ,(2210101010 BbNnNbNNbbbbnxncfnxncy5)函數的實現需要特別注意。首選方法是利用一個 LUT 實現映射),(nxncfb。也就是說預先編程個字的一個 LUT,以接受一個 N 位輸入向量),(nxncfbN2,輸出為。各個映射都由相1,1 ,0Nxxxxbbbb),(nxncfb),(nxn
44、cfb應的二次冪加權并累加。利用如圖 3-2 所示的移位加法器就能夠有效地實現累加。在 N 次查詢循環(huán)后就能完成了對內積 y 的計算8?;?FPGA 的 FIR 濾波器的設計第 14 頁 共 45 頁00 x01x0Bx 1 0 x 1 1x 1 Bx 10Nx 11Nx 1 NxBTUL+/-寄存器算法表累加器Y12BBt0t加減移位寄存器圖 3-2 移位加法器 DA 體系結構.2 有符號的有符號的 DADA 系統系統下面我們要討論的是如何修復式(3-1)使之能夠處理有符號補碼。在補碼中,最高位有效位用來區(qū)別正數和負數。例如變-3 的編碼是。所1023104101以我們將采
45、用下面的(B+1)位表示方法: (3-1022BbbbBBnxnxnx6)與式(3-3)聯立得到輸出 y 的定義如下: (3-7) 1010),(2),(2BbNnBbBBnxncfnxncfy要實現有符號 DA 系統,可以通過兩種選擇來修改無符號 DA 系統。這就是:(1)帶有加/減控制的累加器(2)采用具有一個額外輸入的 ROM本文使用最常見的可轉換累加器,因為 LUT 表中額外的輸入位還需一個兩倍字長的 LUT 表9。4 4 基于基于 FPGAFPGA 的的 FIRFIR 濾波器設計濾波器設計本章為全文的核心內容,首先確定基于 Matlab 的 FIR 數字低通濾波器的指標系數,再利用分
46、布式算法結構, VHDL 硬件語言完成設計與仿真,最后實現硬件系統以及硬件測試。4.14.1 基于基于 MatlabMatlab 的的 FIRFIR 數字低通濾波器抽頭系數的提取數字低通濾波器抽頭系數的提取 4.1.1 濾波器的設計指標采樣頻率:10MHz截止頻率:100KHz類型:低通階數:Kaiser 窗函數 16 階系數 Beta=0.5基于 FPGA 的 FIR 濾波器的設計第 15 頁 共 45 頁.2 濾波器的具體設計方法濾波器的具體設計方法啟動 Matlab 設計軟件后,依次打開 startToolboxesFilter DesignFilter Design &
47、 Analysis Tool(FDATOOL)就可以看到如圖 4-1 的FDATOOL 界面。選擇所需要的參數指標,就會生成 FIR 低通數字濾波器的特性曲線以及重要的幅度相位波形圖,如圖 4-2、圖 4-3 所示,驗證了其技術指標。圖 4-1 FDATOOL 界面圖 4-2 幅度特性曲線基于 FPGA 的 FIR 濾波器的設計第 16 頁 共 45 頁圖 4-3 相位特性曲線沖激響應曲線.3 參數提取與量化參數提取與量化利用 Matlab 軟件的 FDATOOL 圖形用戶界面工具,輸入設計指標后便會自動生成所設計的 FIR 低通數字濾波器的系數即抽頭數,一般線性相位的 FIR
48、 低通數字濾波器的單位沖激響應都為實數,滿足奇或偶對稱的條件。所得單位沖激響應系數如表 4-1 所示:表 4-1 FIR 低通數字濾波器系數序數序列FIR 濾波器的參數序數序列h(0)-0.039907834316445h(15)h(1)-0.037834962847191h(14)h(2)-0.017305968856170h(13)h(3)0.021384069718987h(12)h(4)0.072608454823592h(11)h(5)0.126467760141519h(10)h(6)0.171262675451901h(9)基于 FPGA 的 FIR 濾波器的設計第 17 頁 共
49、 45 頁h(7)0.196673325528212h(8)計算的結果可通過 File 下的菜單中的 Export 命令取出,點擊 Export 打開對話框,如圖所示,點擊 OK 可將濾波器系數數據存放到當前工作空間,并且以 Num命名。沖激系數輸出對話框保存并關閉當前窗口回到工作空間,在命令區(qū)輸入 Num 回車,出現以下圖如上圖所示,根據設計所求出的 16 階 FIR 低通數字濾波器的系數是實數,而在FPGA 硬件仿真中要求輸入的數據為整數,因此在這里,要對系數做歸一化處理,即將 h(n)擴大=2048 倍,再分別進行四舍五入處理,最后轉化為 12 位二進制補112碼(有效位為 11 位,最
50、高位為符號位)結果如下所示:h(0)=h(15)=-82h(1)=h(14)=-77h(2)=h(13)=-35h(3)=h(12)=44h(4)=h(11)=149基于 FPGA 的 FIR 濾波器的設計第 18 頁 共 45 頁h(5)=h(10)=259h(6)=h(9)=351h(7)=h(8)=4034.24.2 FIRFIR 濾波器的濾波器的 FPGAFPGA 實現實現.1 模塊劃分模塊劃分自頂向下的實現方法,FIR 濾波器的模塊劃分:輸入模塊(包括移位寄存器模塊,加法與地址碼形成模塊) 、查找表模塊樹狀移位加法器模塊、控制模塊和包含參數的程序包。整個設計的層次結構
51、如圖 4-4 所示:基于 FPGA 的 FIR 濾波器的設計第 19 頁 共 45 頁圖 4-4 FIR 濾波器的結構框圖各模塊實現的功能:各模塊實現的功能:(1)輸入模塊,輸入模塊是完成對輸入信號的處理,為后續(xù)電路做準備。它主要由移位寄存器和加法器與地址碼形成模塊組成。 (2)查找表模塊,查找表模塊的功能是對輸入模塊產生的地址碼對應成輸出值。查找表模塊由 4 個 LUT 和加法模塊組成。(3)樹樁移位加法器模塊,將 LUT 的輸出值做樹狀移位加法運算。(4)控制模塊,控制模塊產生其他模塊的控制信號,實現對輸入模塊、移位寄存器模塊、查找表模塊,鎖存模塊的控制,使各模塊按照一定的時序依次執(zhí)行各自
52、的功能,從而完成濾波。它主要由控制器單元和計數器單元組成。.2 FIRFIR 濾波器各模塊的實現濾波器各模塊的實現(1)板載頻率分頻本設計所用到的系統板上的晶振頻率是 50MHz,而設計用到的是 10MHz,這樣就要進行分頻。CycloneII 系列 FPGA 提供兩個嵌入式鎖相環(huán)。在圖形編輯模式下輸入 ALTPLL 就可以看到如圖 4-5(a)所示的界面,設置設計所需的參數就可以實現分頻。本設計產生的分頻模塊圖標如圖 4-5(b)所示。圖 4-5(a) ALTPLL 界面基于 FPGA 的 FIR 濾波器的設計第 20 頁 共 45 頁PLL1AutoParameter Va
53、lueTypeCyclone IIinclk0 frequency: 50.000 MHzOperation Mode: NormalClk Ratio Ph (dg) DC (%)c01/50.0050.00inclk0c0lockedaltpll0inst5圖 4-5(b) 分頻模塊(2)數據預處理-輸入信號轉換進程,對輸入的二進制原碼轉換為二進制補碼輸出-加此進程的目的是方便仿真,硬件實現時不用library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity signed_buma isport
54、 ( X_in:in std_logic_vector(7 downto 0);-輸入 clk:in std_logic;-輸入信號 50MHz buma:out std_logic_vector(7 downto 0)-補碼輸出 );end signed_buma;architecture arc of signed_buma issignal temp:std_logic_vector(7 downto 0);-中間信號signal b:std_logic;-中間信號beginb=X_in(7);a:process(clk)beginif clkevent and clk=1 thenif
55、 b=1 thentemp=(X_in(7)&(not X_in(6)&(not X_in(5)&(not X_in(4)&(not X_in(3)&(not X_in(2)&(not X_in(1)&(not X_in(0)+1;基于 FPGA 的 FIR 濾波器的設計第 21 頁 共 45 頁else temp=X_in;end if ;end if;end process;buma=temp;end arc;(3)輸入模塊輸入模塊由移位寄存器和加法器與地址碼形成模塊組成。移位寄存器模塊實現對并行輸入信號的延遲輸出,其寄存器的個數由 FIR 濾波器的階數決定。加法與地址碼形成模塊首先實現
56、B(i)=X(i)+X(N-i)的運算,即考慮了濾波器系數的對稱性,把與相同兩個濾波系數相乘的兩個采樣值預先相加,以減少硬件規(guī)模10。移位寄存器模塊的 VHDL 代碼如下所示:library ieee;use ieee.std_logic_1164.all;-延時entity delay isport( X_in: instd_logic_vector(7 downto 0);-濾波器輸入 clk: instd_logic;-輸入時鐘 a0,a1,a2,a3,a4,a5,a6,a7: buffer std_logic_vector(7 downto 0); -寄存器 a8,a9,a10,a11
57、,a12,a13,a14,a15:buffer std_logic_vector(7 downto 0)-寄存器);end delay;architecture one of delay isbeginprocess(clk)beginif clkevent and clk=1 then a15=a14;a14=a13;基于 FPGA 的 FIR 濾波器的設計第 22 頁 共 45 頁a13=a12;a12=a11;a11=a10;a10=a9;a9=a8;a8=a7;a7=a6;a6=a5;a5=a4;a4=a3;a3=a2;a2=a1;a1=a0;a0=X_in;end if;end pr
58、ocess;end one;圖 4-6 移位寄存器仿真圖圖 4-6 是延時進程的仿真圖,由圖可以看出每來一個脈沖,輸入信號就會向后移位一次。加法與地址碼形成模塊具體程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;基于 FPGA 的 FIR 濾波器的設計第 23 頁 共 45 頁use ieee.std_logic_arith.all;-輸入預加和地址碼產生entity Address is port(a0,a1,a2,a3,a4,a5,a6,a7:in std_logic_vector(7
59、downto 0);-輸入寄存器a8,a9,a10,a11,a12,a13,a14,a15: in std_logic_vector(7 downto 0);-輸入寄存器clk:in std_logic;-輸入時鐘y0,y1,y2,y3,y4,y5,y6,y7,y8:out std_logic_vector(7 downto 0);-地址輸出end Address;architecture arc of Address issignal b0,b1,b2,b3,b4,b5,b6,b7:std_logic_vector(8 downto 0);begin b0=(a0(0)&a0)+(a8(0)
60、&a8);b1=(a1(0)&a1)+(a9(0)&a9);b2=(a2(0)&a2)+(a10(0)&a10);b3=(a3(0)&a3)+(a11(0)&a11);b4=(a4(0)&a4)+(a12(0)&a12);b5=(a5(0)&a5)+(a13(0)&a13);b6=(a6(0)&a6)+(a14(0)&a14);b7=(a7(0)&a7)+(a15(0)&a15);process(clk)beginif clkevent and clk=1then-下面產生的 8 位位矢量將作為 LUT 的地址y0=b7(0)&b6(0)&b5(0)&b4(0)&b3(0)&b2(0)&b1(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《安全使用燃氣》(教學設計)滬科黔科版三年級上冊綜合實踐活動
- 第3章 空氣與生命-八年級科學下冊單元達標卷A卷(浙教版)
- 2024年重慶城投集團應屆畢業(yè)生招聘7人筆試參考題庫附帶答案詳解
- 捕魚施工方案
- 彩板清洗刷漆施工方案
- 第14課《詩詞三首-行路難》教學設計2024-2025學年統編版語文九年級上冊
- 第12課《與朱元思書》教學設計 2024-2025學年統編版語文八年級上冊
- 第11課《短文二篇》教學設計 2024-2025學年統編版語文八年級上冊
- 第五單元跨學科實踐活動4基于特定需求設計和制作簡易供氧器教學設計-2024-2025學年九年級化學人教版(2024)上冊
- 6-2《為了忘卻的記念》(教學設計)高二語文同步高效課堂(統編版 選擇性必修中冊)
- 小學二年級下冊體育教案 全冊
- 領導安全生產事故檢討書【8篇】
- 汽車發(fā)動機構造與維修PPT(中職)全套完整教學課件
- 歷屆 最近十年 (新知杯)上海市初中數學競賽試卷及答案(含模擬試題及解答)
- 艙門操作(空客系列飛機)
- 臺灣長庚文化村
- 藥理學免疫器官和組織
- 禮儀與溝通完整版
- 2023年超齡員工承諾書 60歲以上員工承諾書(八篇)
- 001 比較思想政治教育(第二版) 第一章
- 股骨粗隆間骨折PPT
評論
0/150
提交評論