用VHDL語言編程實現(xiàn)FIR濾波器_第1頁
用VHDL語言編程實現(xiàn)FIR濾波器_第2頁
用VHDL語言編程實現(xiàn)FIR濾波器_第3頁
用VHDL語言編程實現(xiàn)FIR濾波器_第4頁
用VHDL語言編程實現(xiàn)FIR濾波器_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、摘要本課題是基于VHDL的數(shù)字濾波器的設計與實現(xiàn),要求完成數(shù)字濾波器的VHDL語言的模塊描述,通過MAX+PLUSII進行各模塊及頂層的仿真,并下載實現(xiàn)數(shù)字濾波器功能。本設計采用窗函數(shù)法實現(xiàn)線性FIR數(shù)字濾波器的設計,并以一個十六階低通FIR數(shù)字濾波器的實現(xiàn)為例說明了設計過程。首先,根據(jù)FIR數(shù)字濾波器的基本原理設計出系統(tǒng)總體框圖;其次,用窗函數(shù)法計算出特性參數(shù);接著用VHDL語言編寫各模塊的程序并仿真;最后,按照系統(tǒng)總體框圖連接各模塊實現(xiàn)數(shù)字濾波器的功能。實現(xiàn)濾波器的關(guān)鍵乘加運算,給出了將乘加運算轉(zhuǎn)化為移位相加的算法,并采用了CSD碼與并行加法結(jié)構(gòu)來提高速度。設計的電路通過軟件進行了驗證,結(jié)

2、果表明:電路工作正確可靠,速度快,能滿足設計要求。關(guān)鍵詞:FIR濾波器,VHDL,窗函數(shù),CSD碼AbstractThis subject is design and realization of digital filter based on VHDL. It requires to complete the description of digital filter module which is based on VHDL language , simulate each module and the top layer using MAX+PLUSII and download to

3、realize function of digital filter. This design uses window function method to realize the design of linear FIR digital filter and illustrate the design process according to the realization of a 16 steps low pass FIR digital filter. Firstly, design the total system diagram according to the basic pri

4、nciple of FIR digital filter; Secondly, use window function method to calculate characteristic parameters; Then compile and simulate the program of each module using VHDL language; Finally, connect the modules according to the whole system diagram to realize function of digital filter. The key of re

5、alizing FIR filtermultiply and add operation, an operation of changing multiply and add operation to shift add will be given, besides, canonic signal digital and parallel add structure will be adopted to increase speed. The circuit that is designed is proved through the software. The result shows th

6、at the circuit works correctly, reliably and quickly, meeting the designing requirement.Keywords: FIR digital filter, VHDL, Window Function, Canonic Signal Digital (CSD)目錄第一章 緒論1一、課題的提出1二、國內(nèi)外的研究情況2第二章 課題的初步設計4一、FIR濾波器的基本原理4(一)FIR濾波器的概述與結(jié)構(gòu)4(二)FIR濾波器的線性相位條件5(三)FIR濾波器的幅度特性6(四)FIR濾波器的零點特性8二、窗函數(shù)設計法8三、系統(tǒng)框

7、圖13四、設計特點13第三章 用VHDL語言編程實現(xiàn)FIR濾波器16一、參數(shù)設計16二、CSD碼19(一)傳統(tǒng)的CSD碼介紹19(二)本設計中所使用的CSD碼20三、設計框圖21第四章 程序?qū)崿F(xiàn)及調(diào)試過程24一、MAX+PLUSII軟件介紹24二、VHDL語言介紹24三、VHDL的實現(xiàn)及各模塊仿真結(jié)果25(一)VHDL的實現(xiàn)25(二)各模塊仿真結(jié)果25第五章 結(jié)果分析28第六章 結(jié)論及改進32致謝33參考文獻33附錄35揚州大學本科生畢業(yè)設計第一章 緒論一、 課題的提出(一) 課題的任務及內(nèi)容本課題的任務是完成數(shù)字濾波器的VHDL語言的模塊描述,并通過MAX+PLUSII進行各模塊及頂層的仿真

8、,并下載實現(xiàn)數(shù)字濾波器功能。主要內(nèi)容有:(1)完成基于VHDL的并行FIR數(shù)字濾波器的設計。 (2)用MAX-PLUSII編程實現(xiàn)。 (3)完成數(shù)字濾波器算法的仿真。(二) 課題實現(xiàn)的可行性數(shù)字濾波器在需要進行數(shù)字信號處理的許多系統(tǒng)中起著重要作用,實際上,語音處理設備、圖像處理設備和數(shù)字通信系統(tǒng)中都使用數(shù)字濾波器。數(shù)字濾波器能滿足對幅度和相位特性的嚴格要求,避免了模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。模擬濾波器是數(shù)字濾波器的基礎,而現(xiàn)在,更多的利用數(shù)字濾波器代替模擬濾波器作為頻率選擇性濾波器。從濾波器的單位沖激響應來看,濾波器可分為無限長單位沖激響應的IIR濾波器和有限長單位沖

9、激響應的FIR濾波器。有限沖激響應(FIR)濾波器能在設計任何頻率特性的同時保證嚴格的線性特性相位。目前FIR濾波器的實現(xiàn)方法有三種:利用單片通用數(shù)字濾波器集成電路、DSP器件和可編程邏輯器件實現(xiàn)。單片通用數(shù)字濾波器使用方便,但由于字長和階數(shù)的規(guī)格較少,不能完全滿足實際需要。使用DSP器件實現(xiàn)雖然簡單,但由于程序順序執(zhí)行,執(zhí)行速度必然不快。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號處理任務,相對于串行運算為主導的通用DSP芯片來說,其并行性和可擴展性更好。但長期以來,F(xiàn)PGA一直被用于系統(tǒng)邏輯或時序控制上,很少有信號處理方面的應用,其原因主要是因為在FPGA中缺乏實現(xiàn)乘

10、法運算的有效結(jié)構(gòu)?,F(xiàn)在這個問題得到了解決,使FPGA在數(shù)字信號處理方面有了長足的發(fā)展。當今社會是數(shù)字化的社會,是數(shù)字集成電路廣泛應用的社會。數(shù)字集成電路本身在不斷地進行更新?lián)Q代。隨著微電子技術(shù)的發(fā)展,設計與制造集成電路的任務已不完全由半導體廠商來獨立承擔。系統(tǒng)設計師們更愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出合適的ASIC芯片,并且立即投入實際應用之中,因而出現(xiàn)了現(xiàn)場可編程邏輯器件(FPLD),其中應用最廣泛的當屬現(xiàn)場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)。是現(xiàn)代電子工程師的必備工具?,F(xiàn)場可編程門陣列FPGA(F

11、ield Programmable Gate Array) 是一種常見的高密集度可編程邏輯器件,它的特點是速度快,功耗低,通用性好,適應性強,不僅可以代替?zhèn)鹘y(tǒng)的數(shù)字集成電路,而且還可以代替一般的PLD器件和半定制的ASIC,特別是用于復雜系統(tǒng)的設計。使用FPGA可以非常大的減小硬件規(guī)模,降低設計成本,縮短設計周期,提高系統(tǒng)的可靠性、靈活性和保密性。FPGA已經(jīng)成功的用于計算機硬件、工業(yè)控制、遙感遙測、雷達聲納、數(shù)據(jù)處理、智能儀表、廣播電視和醫(yī)療電子等領域中。在現(xiàn)代通信中,F(xiàn)PGA已經(jīng)成功的用作程控交換、數(shù)字復接、編碼譯碼和調(diào)制解調(diào)等。ALTERA公司的FLEX10K是工業(yè)界第一個嵌入式的PLD

12、,具有高密度、低成本、低功率等優(yōu)點。器件的主要結(jié)構(gòu)特點是除主要的邏輯陣列塊(LAB)之外,首次采用了嵌入陣列塊(EAB),每個陣列塊包含8個邏輯單元(LE)和一個局部互連。嵌入陣列塊(EAB)是FLEX10K系列器件在結(jié)構(gòu)設計上的一個重要部件,它是一個輸入端口和輸出端口都帶有寄存器的一種靈活的RAM塊,嵌入陣列塊(EAB)組成的規(guī)模和靈活性對比較多的內(nèi)存是合宜的。功能包括乘法器、向量的標準和誤差校正電路等。在應用中,這些功能又能夠聯(lián)合完成數(shù)字濾波器和微控制器的功能。二、國內(nèi)外的研究情況FIR濾波器的實現(xiàn)方法有三種:利用單片通用數(shù)字濾波器集成電路、DSP器件和可編程邏輯器件實現(xiàn)。在國際上,用FP

13、GA實現(xiàn)FIR濾波器的方法也有很多種,如用傳統(tǒng)的乘累加結(jié)構(gòu)、DA(分布式)算法、查表法、位串行法等等。當FIR濾波器的階數(shù)為N時,傳統(tǒng)的累加結(jié)構(gòu)需要進行N次乘法和N-1次加法操作來實現(xiàn)累加之和,可以發(fā)現(xiàn),當N很大時,每計算一個點,則需要很長的延遲時間。由于FPGA具有查找表結(jié)構(gòu),分布式算法在濾波器的設計方面顯出了很高的效率,可大大提高信號的處理效率,對于位寬較小的數(shù)據(jù)來說,分布式算法的執(zhí)行速度遠高于乘累加運算,但是如果抽頭系數(shù)N過多,則DA表的規(guī)模將十分龐大,這是因為LUT的規(guī)模隨著地址空間的變化(也就是N的增加)而呈指數(shù)增加,當N過大時,一個FPGA器件就不夠用了。一種巧妙利用FPGA的查找

14、表,將乘法轉(zhuǎn)化為查找表的DA算法,并用ALTERA的FLEX10K器件分別實現(xiàn)了一個8位16階的穿行于并行FIR濾波器,系統(tǒng)頻率分別達到63MHz與101MHz,采樣速度分別達到7MSPS與101MSPS。而DSP實現(xiàn)的FIR濾波器只能達到5MSPS,明顯低于FPGA。用傳統(tǒng)的位串行方法實現(xiàn)的一個8階8位FIR濾波器,也只能達到5MSPS,明顯低于串行式DA方法。如果利用整數(shù)的CSD的表示和最優(yōu)表示,可以用較小的代價和與加法器級數(shù)無關(guān)的處理速度實現(xiàn)整數(shù)乘法運算,能比DA方法用更少的邏輯資源實現(xiàn)FIR濾波器。隨著FPGA集成規(guī)模的不斷提高,許多復雜的數(shù)字運算已經(jīng)可以用FPGA實現(xiàn)系統(tǒng)的設想即將變

15、為現(xiàn)實。第二章 課題的初步設計一、FIR濾波器的基本原理(一) FIR濾波器的概述與結(jié)構(gòu)從濾波器的單位沖激響應來看,濾波器可以分為無限長單位沖激響應的IIR濾波器和有限長單位沖激響應FIR濾波器。由于IIR濾波器的傳遞函數(shù)存在零之外的零點,所以單位沖激響應是無限持續(xù)的。而有限長單位脈沖響應(FIR)濾波器的系統(tǒng)函數(shù)只有零點,除原點外,沒有極點,因而FIR濾波器總是穩(wěn)定的。如果它的有限長單位脈沖響應是非因果的,總能夠方便的通過適當?shù)囊莆坏玫揭蚬膯挝幻}沖響應,所以FIR濾波器不存在穩(wěn)定性和是否可實現(xiàn)的問底題。它的另一個突出的優(yōu)點,是在滿足一定的對稱條件下,可以實現(xiàn)嚴格的線性相位,這一點IIR濾波

16、器是難以做到的。由于線性相位特性在工程實際中具有非常重要的意義,如在數(shù)據(jù)通信、圖像處理等應用領域,往往要求信號在傳輸和處理過程中不能有明顯的相位失真,因而線性相位FIR濾波器得到了廣泛的應用。IIR濾波器設計中可以利用模擬濾波器的設計結(jié)果,采用各種變換法,這些對FIR濾波器設計是不適用的,這是因為IIR濾波器的系數(shù)函數(shù)是有理分式的形式,而FIR濾波器的系統(tǒng)函數(shù)只是Z-1的多項式。FIR濾波器的單位沖激響應h(n)是一個有限長序列。它的傳遞函數(shù)和差分方程有如下形式: (2-1) (2-2)有限長沖激響應(FIR)濾波器有以下特點:(1) 系統(tǒng)的單位沖激響應h(n)在有限個n值處不為零;(2) 系

17、統(tǒng)函數(shù)H(z)在|z|>0處收斂,極點全部在z=0處(穩(wěn)定系統(tǒng));(3) 結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,但有些結(jié)構(gòu)中(例如頻率抽樣結(jié)構(gòu))也包含有反饋的遞歸部分。FIR濾波器實現(xiàn)的基本結(jié)構(gòu)有:      (1) FIR濾波器的直接型結(jié)構(gòu);     (2) FIR濾波器的級聯(lián)型結(jié)構(gòu);    (3) FIR濾波器的頻率抽樣型結(jié)構(gòu);    (4) FIR濾波器的快速卷積型結(jié)構(gòu);濾波器最簡單的構(gòu)成方法就是圖2.1所示的直接型結(jié)構(gòu)。圖中Z-1表示

18、信號延遲一個采樣周期的單位延遲元件。x(n)是濾波器的輸入,y(n)濾波器的輸出。圖2.1 FIR數(shù)字濾波器的直接型結(jié)構(gòu)(二) FIR濾波器的線性相位條件FIR濾波器的單位脈沖響應h(n)是有限長的(0nN-1),其Z變換為 (2-3)這是z-1的(N-1)階多項式,在有限Z平面上有(N-1)個極點都位于Z平面原點z=0處。FIR濾波器的DTFT為 (2-4)式中H()是正或負的實函數(shù)。()是的相頻特性,如果()滿足線性相位的條件,即()=-, - (2-5)這里的是一常數(shù),則將(2-5)式代入(2-4)式得 (2-6)顯然,等式中間和等式右邊的實部與虛部應當各自相等,同樣實部與虛部的比值應當

19、相等,從而得到 (2-7)將上式兩邊交叉相乘,再將等式右邊各項移到左邊,應用三角函數(shù)的恒等關(guān)系,得 (2-8)滿足上式的條件是 (2-9)式(2-9)說明:(1) 對于任何N值可以獲得相位延遲為的線性相位特性,為單位脈沖響應的中點;(2) h(n)必須以此中點呈偶對稱特性。另外一種情況是,除了上述的線性相位外,還有一附加的相位, (2-10)利用(2-8)式類似的關(guān)系,可以得出新的解答為 (2-11)滿足(2-11)式條件的濾波器,它的單位脈沖響應將奇對稱于中點。(三) FIR濾波器的幅度特性下面分四種情況分別討論H()的特點。(1) 當h(n)偶對稱,N為奇數(shù)時: (2-12)幅度函數(shù)的特點

20、:H()對 = 0, , 2呈偶對稱。(2) 當h(n)偶對稱,N為偶數(shù)時: (2-13)幅度函數(shù)的特點:當=時,H()在z-1處有一個零點,H()對=呈奇對稱; 如果濾波器在=處幅度不為零(如高通濾波器), 則不能用這種濾波器。 (3) 當h(n)奇對稱,N為奇數(shù)時:在這種情況下h(n)的中間項 必須為零。 (2-14)幅度函數(shù)的特點:H()在0, , 2處都為零,也就是H(z)在Z=+1處為零;H()對0, , 2都呈奇對稱。 (4) 當h(n)奇對稱,N為偶數(shù)時: (2-15)幅度函數(shù)的特點:H()在0,2處為零,即H(z)在z=1處為零點;H()對0,2呈奇對稱,對=呈偶對稱。(四)

21、FIR濾波器的零點特性由于線性相位FIR濾波器的單位脈沖響應具有對稱特性,即h(n)=+h(N-1-n)則 (2-16) (其中m=N-1-n)因此,線性相位FIR濾波器的系統(tǒng)函數(shù)具有以下特點: (2-17) 可見,若是H(z)的零點,則也一定是H(z)的零點。又由于當是實數(shù)時,的零點必成共軛對出現(xiàn),所以及也一定是H(z)的零點。因而線性相位FIR濾波器的零點必是互為倒數(shù)的共軛對。Zi的位置有四種可能的情況:(1) Zi既不在實軸上,也不在單位圓上,則零點是互為倒數(shù)的兩組共軛對。(2) Zi不在實軸上,但是在單位圓上,則共軛對的倒數(shù)是它們本身,故只有一組共軛對。(3) Zi在實軸上而

22、不在單位圓上,只有倒數(shù)部分,無復共軛部分。(4) Zi既在實軸上又在單位圓上,有兩種可能,z1或z1。二、窗函數(shù)設計法一般設計過程是先給定所要求的理想濾波器頻率響應,然后設計一個FIR濾波器,它的頻率響應用它來逼近理想的。這種逼近中最直接的方法是在時域中,用FIR濾波器的單位脈沖響應h(n)去逼近理想的單位脈沖響。因而,先由的IDTFT導出 (2-18)由于是矩形頻率特性,故一定是無限長的序列,且是非因果的。然而我們要設計的是有限長的FIR濾波器,所以要用有限長序列h(n)來逼近無限長序列。 常用的方法是用有限長度的窗函數(shù)(n)來截取,即 (2-19)這里以一個截止頻率為的線性相位理想低通濾波

23、器為例,設低通相位特性的常系數(shù)為,即 (2-20)則 (2-21)它是中心在的偶對稱的無限長非因果序列.要得到有限長的序列,最簡單的辦法,就是以為對稱中心截取一段長度為N的序列,為了保證h(n)是因果序列,可以選擇 (2-22)這種直接截取好比是用一個矩形窗去和相乘,即 (2-23)這里窗函數(shù)就是矩形序列,加窗以后對理想低通濾波器的頻率響應將產(chǎn)生什么樣的影響呢?根據(jù)在時域是相乘關(guān)系,在頻域則是卷積關(guān)系: (2-24)其中, 為矩形窗譜,是FIR濾波器頻率響應。則實際FIR濾波器的幅度函數(shù)H()為 (2-25)可見對實際FIR濾波器頻率響應的幅度函數(shù)H()起影響的是窗函數(shù)頻率響應的幅度函數(shù),通過

24、頻域卷積過程看的幅度函數(shù)H()的起伏現(xiàn)象,可知,理想濾波器的單位脈沖響應經(jīng)窗函數(shù)加權(quán)后,對幅度特性產(chǎn)生的主要影響有:(1) 理想的在通帶截止頻率處的間斷點變成了連續(xù)曲線,從而使H()出現(xiàn)一個過渡帶,其寬度等于窗函數(shù)的主瓣寬度。(2) 由于窗函數(shù)旁瓣的作用,使幅頻特性出現(xiàn)波動。旁瓣所包圍的面積越大,通帶波動增加,阻帶衰減減少。(3) 增加截取長度N,則在主瓣附近的窗的頻率響應為 (2-26)可見,改變N,只能改變窗譜的主瓣寬度,改變坐標的比例以及改變的絕對值大小,但不能改變主瓣與旁瓣的相對比例,這個相對比例由來決定,或者說由窗函數(shù)的形狀來決定。因而截取長度增加時,只會減小過渡帶寬度,因而不會改變

25、肩峰的相對值。矩形窗截斷產(chǎn)生的肩峰,增加了通帶內(nèi)的波動和減少了阻帶的衰減。怎樣才能改善這兩項指標呢?這只能著手于改變窗口函數(shù)的形狀。從以上討論中看到,一般希望窗口函數(shù)滿足兩項要求:(1) 主瓣寬度要小,以獲得較陡的過渡帶。(2) 與主瓣的幅度相比,旁瓣應盡可能的小,以減小帶內(nèi)、帶外波動的最大振幅。一般來說,以上兩點很難同時滿足。當選取主瓣寬度很窄時,旁瓣的分量勢必增加,從而帶內(nèi)帶外的波動也增加了;當選取最小的旁瓣幅度時,降低了帶內(nèi)帶外的波動,但過渡帶的陡度減小。所以,實際采用的窗函數(shù)其特性往往是它們的折衷,即在保證主瓣寬度達到一定要求的前提下,適當犧牲主瓣寬度來換取旁瓣波動的減小。常用的幾種窗

26、函數(shù)及比較下面討論幾種常用的窗口函數(shù)。1) 矩形窗 (2-27)2) 漢寧窗(Hanning),又稱升余弦窗 (2-28)利用DTFT的調(diào)制特性并代入三角函數(shù)的歐拉公式,得 (2-29)當N>>1時,N-1N,因此幅度函數(shù)近似為 (2-30)這三部分之和,使旁瓣相互抵消,能量集中在主瓣,但代價是主瓣寬度比矩形窗的主瓣寬度增加一倍。3)漢明窗(hamming),又稱改進的升余弦窗將漢寧窗改進,可以得到旁瓣更小的漢明窗,形式為 (2-31)其頻率響應的幅度函數(shù)為 (2-32)結(jié)果可將99.963%的能量集中在窗譜的主瓣內(nèi)。與漢寧窗相比,主瓣寬度相同為,但旁瓣幅度更小,旁瓣峰值小于主瓣分

27、峰值的1%。4)布萊克曼窗(Blackman),又稱二階升余弦窗為了更進一步抑制旁瓣,可再加上余弦的二次諧波分量,得到布萊克曼窗: (2-33)其頻譜的幅度函數(shù)為 (2-34)這樣可以得到更低的旁瓣,但是主瓣寬度卻不得不進一步加寬到矩形窗的三倍。5)凱塞窗以上四種窗函數(shù),都是以增加主瓣寬度為代價來降低旁瓣。凱塞窗則可以在主瓣寬度與旁瓣衰減之間自由的選擇。凱塞窗是由零階貝塞爾函數(shù)構(gòu)成的 (2-35)是一可以自由選擇的參數(shù),越大,則(n)窗越窄,而頻譜的旁瓣越小,但主瓣寬度也相應增加。因而改變值就可以對主瓣寬度和旁瓣衰減進行選擇,=0相當于矩形窗。幾種窗函數(shù)的比較圖2.2給出了四種窗函數(shù)的序列包絡

28、形狀。圖2.2 四種常用的窗函數(shù)(1) 矩形窗;(2) 漢寧窗;(3) 漢明窗;(4) 布萊克曼窗圖2.3 窗口函數(shù)頻譜(N=51,A=20lg|W()/W(0)|)從(a)(d),旁瓣的衰減逐步增加,主瓣相應加寬(用對數(shù)可放大小旁瓣)。 圖2.4 在同一指標下用四種窗口設計的LP濾波器頻率特性(N=51,wc=0.8)可見,矩形窗設計的過渡帶最窄,但阻帶最小衰減也最差,僅-21dB;布萊克曼窗設計的阻帶最小衰減最好,達-74dB,但過渡帶最寬,約為矩形窗設計的三倍。幾種窗口函數(shù)的具體性能比較見表2.1。表2.1. 幾種窗口函數(shù)的具體性能比較窗函數(shù)主瓣寬度旁瓣峰值衰減(dB)阻帶最小衰減(dB

29、)矩   形4/N-13-21漢   寧8/N-31-44漢   明8/N-41-53布萊克曼12/N-57-74三、系統(tǒng)框圖根據(jù)上面的關(guān)于FIR濾波器結(jié)構(gòu)的介紹,采用直接型結(jié)構(gòu),可以畫出濾波器的系統(tǒng)框圖,如圖2.5。圖2.5 系統(tǒng)框圖四、設計特點FIR濾波器被稱為有限長脈沖響應濾波器,它的單位脈沖響應h(n)只有有限個數(shù)據(jù)點。輸入信號經(jīng)過線性時不變系統(tǒng)輸出的過程是一個輸入信號與單位脈沖響應進行線性卷積的過程,即: (2-36)式中,x(n)是輸入信號,y(n)是卷積輸出,h(n)是系統(tǒng)的單位脈沖響應??梢钥闯?,每次采樣y(n)需要進

30、行N次乘法和N-1次加法操作實現(xiàn)乘累加之和,其中N是濾波器單位脈沖響應h(n)的長度。本課題是要設計一個16階8系數(shù)的FIR濾波器,則N=16,x(n),h(n)均用8位二進制數(shù)表示。也就是說每次采樣y(n)需要進行16次乘法和15次加法。假設有16個數(shù)據(jù)x0,x1,x2,,x14,x15,每個數(shù)據(jù)都用8位二進制數(shù)表示,現(xiàn)要將這16個數(shù)相加。如果用傳統(tǒng)的累加結(jié)構(gòu),就需要15個加法器。如果每次加法都用一個時鐘信號觸發(fā)的話,就需要15個時鐘周期。而且,每計算一次加法需要一定的時間,則15次加法需要很長的延遲時間,這不利于提高信號的處理效率。傳統(tǒng)的累加結(jié)構(gòu)如圖2.6所示:圖2.6 傳統(tǒng)的累加結(jié)構(gòu)但是

31、,如果先將16個數(shù)據(jù)分為8組,x0與x1,x2與x3x14與x15。這樣的話,8組數(shù)據(jù)就可以同時進行加法,只需要一個時鐘周期。再將上一步所計算得到的8個數(shù)據(jù)分組,分為四組,進行加法。以此類推,直到算完為止,這樣就需要15個加法器,但只需4個時鐘周期。與傳統(tǒng)累加結(jié)構(gòu)相比,并行加法結(jié)構(gòu)大大減少了計算時間,提高了計算速度。并行加法結(jié)構(gòu)如圖2.7所示:圖2.7 并行加法結(jié)構(gòu)在本次設計中,另一個特點就是將FIR的系數(shù)用CSD碼表示,將乘法運算轉(zhuǎn)化為移位相加運算。由于兩個8位二進制數(shù)相乘,所需要的時間及硬件資源較多,不利于提高運算的速度,因此,用移位相加運算來代替乘法運算。通常情況下,一個數(shù)可以表示為2的

32、整數(shù)次方的和或者差的形式,采用這種方法表示的數(shù)叫做SD數(shù)(SignedDigit Number)。雖然一個數(shù)的表示形式不唯一,但是存在一種最小權(quán)重的表示形式,這種表示形式叫做CSD(Canonical SignedDigit)。一個給定的數(shù)的CSD表示形式是唯一的。CSD表示相對于標準二進制表示的改進在于引入了負的符號位,從而降低了非零位個數(shù),大大降低了邏輯資源的占用。CSD可以用較小的代價和與加法器級數(shù)無關(guān)的處理速度實現(xiàn)整數(shù)乘法運算。第三章 用VHDL語言編程實現(xiàn)FIR濾波器一、參數(shù)設計(一) 設計指標下面以一個十六階FIR低通濾波器為例說明設計方法和過程。濾波器類型:FIR濾波器類 型:低

33、通階 數(shù):16階采樣頻率:100kHz,精度<=+1截止頻率:5kHz輸入數(shù)據(jù)寬度:8位輸出數(shù)據(jù)寬度:8位 (二) 參數(shù)計算采用窗函數(shù)設計法來計算FIR的系數(shù)。設計過程是先給定所要求的理想低通濾波器頻率響應,然后設計一個FIR濾波器,用它的頻率響應來逼近理想的。這種逼近中最直接的方法是在時域中,用FIR濾波器的單位脈沖響應出h(n)去逼近理想的單位脈沖響。因而,先由的IDTFT導出 (3-1)由于是矩形頻率特性,故一定是無限長的序列,且是非因果的。然而我們要設計的是有限長的FIR濾波器,所以要用有限長序列h(n)來逼近無限長序列。常用的方法是用有限長度的窗函數(shù)(n)來截取,即 (3-2)

34、(n)是有限長序列,當n>N-1及n<0時(n)=0。這里僅以沖激響應對稱,即h(n)=h(N-1-n),n=0,1,N-1,時進行說明。低通濾波器的頻率響應如下式所示: (3-3)其中為對抽樣頻率歸一化的頻率,c為歸一化截止頻率。(由設計指標可知,采樣頻率為100KHz,截止頻率為5KHz,將采樣頻率歸一化為2,則截止頻率歸一化為0.1,即:c=0.1)利用反傅立葉變換公式求出與式(3.3)對應的沖激響應,如式(3.4) 所示: (3-4)由于要求設計一個16階的FIR,則N=16。根據(jù)式(3-4)可計算得如下:(0)=(15)=0.030025765(4)=(11)=0.081

35、074297(1)=(14)=0.04365539(5)=(10)=0.090077296(2)=(13)=0.057190986(6)=(9)=0.096388641(3)=(12)=0.069900094(7)=(8)=0.09963978646在本次設計中我使用的窗函數(shù)為漢寧窗,根據(jù)第二章第二節(jié)的內(nèi)容可知,漢寧窗的表達式為: (3-5)由于要求設計一個16階的FIR,則N=16??捎嬎愠鰸h寧窗的系數(shù)如下:(0)= (15)=0(4)= (11)=0.552264231(1)= (14)=0.043227271(5)= (10)=0.75(2)= (13)=0.165434696(6)=

36、(9)=0.904508497(3)= (12)=0.345491502(7)= (8)=0.9890738根據(jù),可計算出的符合設計指標的線性相位16階FIR數(shù)字低通濾波器的特性參數(shù)如下:h(0)=h(15)=0h(4)= h(11)=0.044774434h(1)=h(14)=0.001887103h(5)= h(10)=0.067557972h(2)=h(13)=0.009461373h(6)= h(9)=0.087184344h(3)=h(12)=0.024149888h(7)= h(8)=0.098551101為了設計的方便,可將上述數(shù)據(jù)擴大,由于濾波器輸出,若h(n)擴大1000倍,

37、則y(n)也擴大1000倍,最后只要將y(n)除以1000即可,但要計算y(n)除以1000十分復雜,因此,可將h(n)擴大1024倍,即,這樣只需將y(n)除以1024,即右移10位即可。 將h(n)乘以1024,得到以下數(shù)據(jù)h(0)=h(15)=0h(4)= h(11)=45.84902042h(1)=h(14)=1.932393472h(5)= h(10)=69.17936333h(2)=h(13)=9.688445952h(6)= h(9)=89.27676826h(3)=h(12)=24.72948531h(7)= h(8)=100.9163274 將上述數(shù)據(jù)取整后h(0)=h(15

38、)=0h(4)= h(11)=46h(1)=h(14)=2h(5)= h(10)=69h(2)=h(13)=10h(6)= h(9)=89h(3)=h(12)=25h(7)= h(8)=101將其化為二進制數(shù)(8位)h(0)=h(15)=00000000h(4)= h(11)=00101110h(1)=h(14)=00000010h(5)= h(10)=01000101h(2)=h(13)=00001010h(6)= h(9)=01011001h(3)=h(12)=00011001h(7)= h(8)=01100101二、CSD碼(一) 傳統(tǒng)的CSD碼介紹通常情況下,一個數(shù)可以表示為2的整數(shù)次

39、方的和或者差的形式,采用這種方法表示的數(shù)叫做SD數(shù)(SignedDigit Number)。一個絕對值小于1的數(shù)x可以表示成如下的形式: (3-6)其中,。通常一個數(shù)的表示形式并不唯一。例如0.375可以有以下幾種表示形式:0.375 =2-2+2-3 (3-7)0.375 =2-1-2-3 (3-8)0.375 =20-2-1-2-3 (3-9)0.375 =20-2-1-2-2+2-3 (3-10)式(3-7),(3-8),(3-9),(3-10)的權(quán)重分別為2,2,3,4。雖然一個數(shù)的表示形式不唯一,但是存在一種最小權(quán)重的表示形式,這種表示形式叫做CSD(Canonical Signed

40、Digit)。數(shù)的CSD表示是一種三元數(shù)值系統(tǒng),即將數(shù)用(1, 0, 1)來進行表示,對于任一具有最少1和1比特位數(shù)的二進制數(shù)CSD編碼表示具有其唯一形式。因此,CSD編碼的主要應用是在乘法運算中減少部分積的乘積項,從而減少所用加法器/減法器的數(shù)量,一個nbit的乘法運算的加/減和移位的操作次數(shù)不會超過n/2,隨著字長的增加其平均數(shù)減少到n/34,5。 一個數(shù),如果對于所有,= 0,1,or1且對于所有,滿足,則稱為的CSD編碼表示。例如,=102=010010(代表1)為102的CSD編碼表示,而=00 010則為的非CSD編碼表示。由于一個數(shù)的CSD表示中的非0比特位總是不相鄰的

41、,如果用一個2bit的二進制數(shù)表示一個CSD碼中的非0比特數(shù),01代表1,11代表1(最高位通過符號位擴展實現(xiàn)),則可以將一個數(shù)的CSD編碼表示轉(zhuǎn)換為二進制CSD編碼(BCSD)表示。例如,一個CSD表示數(shù)= 010 010(代表1),其對應的BCSD編碼表示為=11 01 11 010。二者具有一一對應關(guān)系,因此,如果得到了一個二進制補碼數(shù)的BCSD編碼表示,則可以通過上面的逆過程求得對應數(shù)的CSD表示。根據(jù)上述原理,一種將二進制補碼數(shù)變換得到其CSD編碼表示的過程描述為:首先將二進制補碼表示轉(zhuǎn)換為稱為BCSD編碼的表示,然后轉(zhuǎn)換BCSD編碼得到數(shù)的CSD編碼表示。(二) 本設計中所使用的C

42、SD碼一個整數(shù)X與另一整數(shù)Y的乘積的二進制表示可以寫成: (3-11)對于標準二進制,由于時的對應項Y并不參與累加運算,所以可以用另一種表示方法使非零元素的數(shù)量降低,從而使加法器的數(shù)目減少,降低硬件規(guī)模。有符號數(shù)字量(SD)有三重值0,-1,+1,如果任意兩個非零位均不相鄰,即為標準有符號數(shù)字量(CSD)。 可以證明CSD表示對給定數(shù)是唯一的并且是最少非零位的。CSD表示相對于標準二進制表示的改進在于引入了負的符號位,從而降低了非零位個數(shù),大大降低了邏輯資源的占用(大約平均降低33的邏輯資源)。當用硬件實現(xiàn)時,常常限制系數(shù)位數(shù),即每個系數(shù)與N個正(負)2的冪次之和近似。標準二進制數(shù)在整數(shù)軸上是

43、緊密和均勻分布的,而CSD碼是非均勻分布的,其對實系數(shù)的量化誤差比標準二進制大,雖然增加N可以減小量化誤差,但是會增大邏輯資源的消耗;而且CSD表示無法應用流水線結(jié)構(gòu),從而降低處理速度。 那如何將一個整數(shù)轉(zhuǎn)化為CSD碼?首先,將這個整數(shù)化為二進數(shù)X。將一個二進制數(shù)(8位)轉(zhuǎn)化為CSD碼的算法如下:(1) 判斷該二進數(shù)是否有連續(xù)3個或3個以上的1。如果有,則可將其化為CSD碼;如果沒有,則不必將其化為CSD碼。(2) 設該二進數(shù),如果X有連續(xù)3個或3個以上的1,即,,則X的CSD碼等于X加2i。在上節(jié)中已將FIR濾波器的特性參數(shù)計算出來了,可見只有h(4)與h(11)具有3個連續(xù)的1,可將其化為

44、CSD碼:h(4)=h(11)=00101110+2=00101110+00000100=00110010圖3.1 h(4)的二進制與CSD實現(xiàn)由圖3.1可以看出,對于h(4)或者h(11)來說,當用二進制數(shù)表示時需要3個加法器,而用CSD碼則只需要2個加法器,減少了加法器的個數(shù)。三、設計框圖 根據(jù)FIR濾波器的特性參數(shù),可畫出H1、H2H7的框圖如下圖3.2至圖3.8圖3.2 H1(H14)的結(jié)構(gòu)圖圖3.3 H2(H13)的結(jié)構(gòu)圖圖3.4 H3(H12)的結(jié)構(gòu)圖圖3.5 H4(H11)的結(jié)構(gòu)圖圖3.6 H5(H10)的結(jié)構(gòu)圖圖3.7 H6(H9)的結(jié)構(gòu)圖圖3.8 H7(H8)的結(jié)構(gòu)圖在前面已

45、經(jīng)畫出了粗略的系統(tǒng)框圖,根據(jù)上面的分析,可以將系統(tǒng)框圖細化,細化后的系統(tǒng)框圖如圖3.9所示圖3.9 總的設計框圖上圖中,H1,H2H13,H14的具體結(jié)構(gòu)見圖3.2至圖3.8。第四章 程序?qū)崿F(xiàn)及調(diào)試過程一、MAX+PLUSII軟件介紹美國Altera公司的MAX+PLUS開發(fā)工具是一種CAE軟件工具,全稱是全集成化可編程邏輯設計環(huán)境。該工具配備有編輯、編譯、仿真、芯片編程的功能,具有兩種輸入手段:文本輸入(使用一種描述語言,如VHDL語言)和原理圖輸入。MAX+PLUS的主要功能如下:(1) MAX+PLUS的設計輸入、處理與校正功能集合在一起提供了全集成化的一套可編程邏輯開發(fā)工具,可加快動態(tài)

46、調(diào)試,縮短開發(fā)周期。(2) MAX+PLUS支持各種硬件描述語言的設計輸入,包括VHDL、Verilog HDL和Altera的 AHDL。(3) MAX+PLUS的編譯核心支持Altera的FLEX10、KFLEX8K系列,MAX5000系列以及EPF10K10、EPF10K10A、EPF10K30A EPF8282A等系列可編程邏輯器件。(4) MAX+PLUS可與其他工業(yè)標準設計輸入、綜合與校驗工具鏈接。(5) MAX+PLUS常用的設計輸入方法有:通過MAX+PLUS圖形編輯器,創(chuàng)建電路圖形設計文件(.tdf);通過文本編輯器,使用VHDL語言,創(chuàng)建文本設計文件(.vhd);使用AHD

47、L語言,創(chuàng)建文本設計文件(.tdf);使用Verilog HDL語言,創(chuàng)建文本設計文件(.v)。還可以通過MAX+PLUS波形編輯器,創(chuàng)建電路波形設計文件(.wdf)等。(6) MAX+PLUS具有器件編輯(Programming)和配置(Configuration)功能,讓使用者自己設計所用器件,具有在線幫助的功能,更加方便了使用者。二、VHDL語言介紹(一) VHDL語言程序的基本結(jié)構(gòu)一個完整的VHDL語言程序通常包含實體(entity)、結(jié)構(gòu)體(architecture)、配置(configuration)、包集合(package)和庫(library)5個部分。實體用于描述所設計的系統(tǒng)

48、的外部接口信號;結(jié)構(gòu)體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為;配置用于從庫中選取所需單元來組成系統(tǒng)設計的不同版本;包集合存放各設計模塊能共享的數(shù)據(jù)類型、常數(shù)和子程序等;庫存放已經(jīng)編譯的實體、結(jié)構(gòu)體、包集合和配置。(二) 使用VHDL語言的注意事項1、標識符的第一個字符必須是字母;2、英文字母不區(qū)分大小寫,也可大小寫混用;3、標識符的最后一個字符不能是下劃線,且不允許連續(xù)出現(xiàn)兩個下劃線;4、標識符和關(guān)鍵詞不能一樣,而且至少要空一格;5、標識符不能是中文或非法字母;6、應該以實體的名字保存,后綴為.VHD,最好在C:maxplusII路徑下保存;7、ARCHITECTURE和PROCESS后必須有BEGIN

49、來啟動程序,后面必須要END,要用元件例化語句(即調(diào)用子模塊電路)和SIGNAL定義內(nèi)部信號必須緊跟在ARCHITECTURE后;8、主程序調(diào)用子程序時,應先調(diào)子程序模塊后連接。三、VHDL的實現(xiàn)及各模塊仿真結(jié)果(一) VHDL的實現(xiàn)首先,根據(jù)H1,H2H7模塊的結(jié)構(gòu)圖(圖3.2圖3.8),編寫VHDL程序:h1.vhd,h2.vhdh7.vhd(程序見附錄),編譯仿真;然后,根據(jù)系統(tǒng)的總的設計框圖(圖3.9),分別編寫移位寄存器、加法器和移位的程序:reg.vhd,adder.vhd,shift.vhd(程序見附錄),并編譯仿真;最后,把各個模塊根據(jù)總的系統(tǒng)設計框圖相應的連接起來,得到總的系

50、統(tǒng)圖fir.gdf(見附錄),并進行仿真。(二) 各模塊仿真結(jié)果首先將h1.vhd,h2.vhdh7.vhd編譯仿真,得到以下仿真結(jié)果:圖4.1 h1模塊的仿真結(jié)果 由上面的分析可知h1.vhd程序的功能是:輸出y是輸入x的2倍,即y=2x,根據(jù)上圖的仿真結(jié)果,輸入x為2時,輸出y為4,符合設計要求。圖4.2 h2模塊的仿真結(jié)果圖4.3 h3模塊的仿真結(jié)果圖4.4 h4模塊的仿真結(jié)果圖4.5 h5模塊的仿真結(jié)果圖4.6 h6模塊的仿真結(jié)果圖4.7 h7模塊的仿真結(jié)果同樣的,h2,h3, ,h7均符合設計要求 然后分別將移位寄存器和加法器的程序reg.vhd,adder.vhd進行編譯仿真,得到

51、以下仿真結(jié)果:圖4.8 移位寄存器仿真結(jié)果圖4.9 加法器仿真結(jié)果 由上圖仿真結(jié)果可知,均符合設計要求。第五章 結(jié)果分析根據(jù)總的系統(tǒng)設計框圖(圖3.9)連接各模塊可以得到總的系統(tǒng)圖fir.gdf(圖5.1). 圖5.1 數(shù)字濾波器系統(tǒng)原理圖其生成的打包端口圖如圖5.2所示:圖5.2 數(shù)字濾波器打包端口圖仿真結(jié)果1如下圖5.3所示:圖5.3 數(shù)字濾波器仿真結(jié)果1根據(jù)仿真結(jié)果1可畫出大致波形如圖5.4所示: 輸入波形 輸出波形圖5.4 仿真結(jié)果1波形FIR濾波器的單位沖激響應h(n)是一個有限長序列。它的傳遞函數(shù)和差分方程有如下形式:和 (5-1)根據(jù)第三章中參數(shù)的設計得出h0=h15=0 h1=

52、h14=2 h2=h13=10 h3=h12=25 h4=h11=46 h5=h10=69h6=h9=89 h7=h8=101將這些數(shù)據(jù)代入(5-1)式中(N=16),即y(n)=2x(n-1)+10x(n-2)+25x(n-3)+46x(n-4)+69x(n-5)+89x(n-6)+101x(n-7) +101x(n-8)+89x(n-9)+69x(n-10)+46x(n-11)+25x(n-11)+10x(n-13)+2x(n-14)如果輸入x分別從1至14,代入上式計算,由于在參數(shù)設計中將濾波器系數(shù)擴大了1024倍,所以將所得結(jié)果除以1024可計算得y=5。由圖5.3 fir.scf可以看出,符合設計要求。仿真結(jié)果2如圖5.5所示:圖5.5 數(shù)字濾波器仿真結(jié)果2根據(jù)仿真結(jié)果2可畫出大致波形如圖5.6所示:輸入波形 輸出波形圖5.6 仿真結(jié)果2波形以上兩種仿真結(jié)果,分別輸入兩種不同的波形,經(jīng)過濾波器濾波,得到相應的輸出波形,如圖5.4和5.6所示,符合設計要求。圖5.7 數(shù)字濾波器工作時延分析圖 由圖5.7可以看出,設計的濾波器完成一次濾波所需時間為89.8ns,采樣頻率可達到10MHz,運算速度快,能滿足設計要求。第六章 結(jié)論及改進一、結(jié)論 本課題是基于VHD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論