基于FPGA的FIR濾波器的程序設(shè)計(jì)(8階)要點(diǎn)_第1頁(yè)
基于FPGA的FIR濾波器的程序設(shè)計(jì)(8階)要點(diǎn)_第2頁(yè)
基于FPGA的FIR濾波器的程序設(shè)計(jì)(8階)要點(diǎn)_第3頁(yè)
基于FPGA的FIR濾波器的程序設(shè)計(jì)(8階)要點(diǎn)_第4頁(yè)
基于FPGA的FIR濾波器的程序設(shè)計(jì)(8階)要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于fpga的fir濾波器的設(shè)計(jì)摘 要隨著信息時(shí)代和數(shù)字世界的到來(lái),數(shù)字信號(hào)處理已成為今一門(mén)極其重要的學(xué) 科和技術(shù)領(lǐng)域。數(shù)字信號(hào)處理在通信、語(yǔ)音、圖像、自動(dòng)控制、雷達(dá)、軍事、航 空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。 在數(shù)字信號(hào)處理應(yīng)用中, 數(shù)字濾波器十分重要并已獲得廣泛應(yīng)用。數(shù)字濾波是數(shù)字信號(hào)處理的重要內(nèi)容, 數(shù)字濾波器可分為iir和fir兩大類(lèi)。 對(duì)于iir數(shù)字濾波器的設(shè)計(jì),需要借助模擬原型濾波器,再將模擬濾波器轉(zhuǎn)化為 數(shù)字濾波器,文中采用的設(shè)計(jì)方法是脈沖響應(yīng)不變法、雙向性變換法和完全函數(shù) 設(shè)計(jì)法;對(duì)于fir數(shù)字濾波器的設(shè)計(jì),可以根據(jù)所給定的頻率特性直接設(shè)計(jì),文中采用的設(shè)計(jì)方法

2、是窗函數(shù)法。本文根據(jù) iir濾波器和fir濾波器的特點(diǎn),在 matlab壞境下分別用雙線(xiàn)性變換法設(shè)計(jì)iir和用窗函數(shù)設(shè)計(jì)fir數(shù)字濾波器, 并對(duì)采集的語(yǔ)音信號(hào)進(jìn)行分析,最后給出了iir和fir對(duì)語(yǔ)音濾波的效果。關(guān)鍵詞 數(shù)字濾波器;iir ; fir ; matlabi中文摘要 i1 概論 21.1 課題的目的和意義 21.2 fpg股術(shù)的發(fā)展及應(yīng)用 31.3 fpg徽件設(shè)計(jì)工具quartus ii 42 fir數(shù)字濾波器的設(shè)計(jì)方法理論部分 52.1 引言 52.2 fir數(shù)字濾波器的基礎(chǔ) 52.3 數(shù)字濾波器的設(shè)計(jì)原理 72.4 matlab直接fdatool設(shè)計(jì)方式解析 82.5 fdato

3、ol設(shè)計(jì)模板及設(shè)計(jì)結(jié)果圖 93 fir數(shù)字濾波器的設(shè)計(jì)方法程序分析部分 123.1 quartus ii 及 vhd份紹 123.2 實(shí)際濾波器程序設(shè)計(jì)(8階fir數(shù)字低通濾波器) 143.2.1 vhdl 的實(shí)現(xiàn) 143.2.2 quartusii 中功能仿真 164 總結(jié) 17參考文獻(xiàn) 18附錄 191 概論1.1 課題的目的和意義數(shù)字濾波器是一個(gè)離散時(shí)間系統(tǒng)(按預(yù)定的算法,將輸入離散時(shí)間信號(hào) 要求的輸出離散時(shí)間信號(hào)的轉(zhuǎn)換為所特定功能裝置)。應(yīng)用數(shù)字濾波器處理模擬 信號(hào)時(shí),首先須對(duì)輸入模擬信號(hào)進(jìn)行限帶、抽樣和模數(shù)轉(zhuǎn)換。數(shù)字濾波器輸入信 號(hào)的抽樣率應(yīng)大于被處理信號(hào)帶寬的兩倍,其頻率響應(yīng)具有以

4、抽樣頻率為間隔的周期重復(fù)特性,且以折疊頻率即1/2抽樣頻率點(diǎn)呈鏡像對(duì)稱(chēng)。為得到模擬信號(hào), 數(shù)字濾波器處理的輸出數(shù)字信號(hào)須經(jīng)數(shù)模轉(zhuǎn)換、平滑。數(shù)字濾波器具有高精度、 高可靠性、可程控改變特性或復(fù)用、便于集成等優(yōu)點(diǎn)。數(shù)字濾波器在語(yǔ)言信號(hào)處 理、圖像信號(hào)處理、醫(yī)學(xué)生物信號(hào)處理以及其他應(yīng)用領(lǐng)域都得到了廣泛應(yīng)用。它涉及到的領(lǐng)域很廣,如通信系統(tǒng),系統(tǒng)控制,生物醫(yī)學(xué)工程,機(jī)械振動(dòng),遙感遙 測(cè),地質(zhì)勘探,故障檢測(cè),電力系統(tǒng),航空航天,自動(dòng)化儀器等。數(shù)字濾波器的好壞對(duì)相關(guān)的眾多工程技術(shù)領(lǐng)域影響很大,一個(gè)好的數(shù)字濾波 器會(huì)有效的推動(dòng)眾多的工程技術(shù)領(lǐng)域改造和學(xué)科發(fā)展。所以對(duì)數(shù)字濾波器的工作 原理,硬件結(jié)構(gòu)和實(shí)現(xiàn)方法進(jìn)

5、行研究具有一定的意義。fpga (field programmable gate array,即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在 pal、 gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路 (asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克 服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。fpga采用了邏輯單元陣列l(wèi)ca ( logic cell array)這樣一個(gè)概念,內(nèi)部包 括可配置邏輯模塊 clb (configurable logic block)、輸出輸入模塊iob (input output block)和內(nèi)部連線(xiàn)(interconnect)三個(gè)部分

6、。 現(xiàn)場(chǎng)可編程門(mén)陣列(fpga) 是可編程器件。與傳統(tǒng)邏輯電路和門(mén)陣列(如pal, gal及cpld器件)相比,fpga具有不同的結(jié)構(gòu),fpga利用小型查找表(16mram)來(lái)實(shí)現(xiàn)組合邏輯, 每個(gè)查找表連接到一個(gè) d觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū) 動(dòng)i/o,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單 元模塊,這些模塊間利用金屬連線(xiàn)互相連接或連接到i/o模塊。fpga的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與i/o間的聯(lián)接方式,并最終決定了 fpga所能實(shí)現(xiàn)的功能,fpga允許無(wú)限次

7、的編程。1.2 fpga技術(shù)的發(fā)展及應(yīng)用fpga正處于高速發(fā)展時(shí)期,新型芯片的規(guī)模越大,成本也越來(lái)越低,低端 的fpga已逐步取代了傳統(tǒng)的數(shù)字元件,高端的 fpga將會(huì)成為今后競(jìng)爭(zhēng)的主 流。自1985年問(wèn)世以來(lái),fpga從集成電路與系統(tǒng)家族一個(gè)不起眼的小角色逐漸 成為電子設(shè)計(jì)領(lǐng)域的重要器件。它極大地提高了設(shè)計(jì)靈活性并縮短了產(chǎn)品上市時(shí) 問(wèn),在通信、工業(yè)控制、航空領(lǐng)域中廣泛應(yīng)用。fpga行業(yè)集中度很高,幾家美國(guó)公司掌握著行業(yè)的 制空權(quán)”。特別是在航 空航天及軍工等特殊領(lǐng)域,美國(guó)等少數(shù)國(guó)家對(duì)先進(jìn)的技術(shù)保持封鎖。 因此,發(fā)展 國(guó)內(nèi)fpga產(chǎn)業(yè)不是要不要的問(wèn)題,而是怎么發(fā)展的問(wèn)題。國(guó)內(nèi) ic企業(yè)介入 f

8、pga的時(shí)間并不長(zhǎng),多數(shù)公司還處于學(xué)習(xí)階段。altera公司和xilinx公司為代表的fpga廠商,除了在fpga產(chǎn)品線(xiàn)上不斷 推陳出新之外,也在不懈地提高開(kāi)發(fā)軟件的設(shè)計(jì)能力,他們的軟件產(chǎn)品在很多方 面一點(diǎn)也不遜色于專(zhuān)業(yè)的eda廠商,所以從這個(gè)角度來(lái)說(shuō),fpga廠商也是eda 公司。這里的代表性產(chǎn)品就是 altera公司的quartus ii開(kāi)發(fā)軟件和xilinx公司的 ise開(kāi)發(fā)軟件。altera的fpga開(kāi)發(fā)工具已經(jīng)經(jīng)歷了四代。從最初的基于dos的a+plus,發(fā) 展至ij max+plus, 1991 年推出基于 windows 的開(kāi)發(fā)工具 max+plus ii。max+plus ii

9、 在fpga設(shè)計(jì)工具里是一個(gè)劃時(shí)代的產(chǎn)品,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的圖形化設(shè) 計(jì)環(huán)境,功能強(qiáng)大,使用方便。設(shè)計(jì)者無(wú)須精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),而只需要 使用自己熟悉的設(shè)計(jì)輸入工具(如原理圖或者 hdl語(yǔ)言)把自己的設(shè)計(jì)輸入到 計(jì)算機(jī)中,max+plus ii就會(huì)自動(dòng)把這些設(shè)計(jì)轉(zhuǎn)換成最終結(jié)構(gòu)所需的格式,用戶(hù) 只要把最后生成的配置數(shù)據(jù)通過(guò)下載電纜下載到芯片中,即完成了所有的工作。quartus ii是altera公司在2001年推出的第四代開(kāi)發(fā)工具,是一個(gè)集成化的 多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿(mǎn)足特定設(shè)計(jì)需要,在 fpga和cpld設(shè)計(jì)各個(gè)階 段都提供了工具支持,并為可編程片上系統(tǒng)(sopc)提供全面的設(shè)

10、計(jì)環(huán)境,是一個(gè)系統(tǒng)級(jí)的高效的eda設(shè)計(jì)工具。而且,隨著器件結(jié)構(gòu)和性能的不斷提高,器 件集成度的不斷擴(kuò)大,altera始終能夠同步推出與之相適應(yīng)的開(kāi)發(fā)工具,滿(mǎn)足了設(shè)計(jì)者的要求,近年來(lái)一直保持著一年一個(gè)新版本的更新進(jìn)度。1.3 fpga軟件設(shè)計(jì)工具quartus iialtera公司和xilinx公司為代表的fpga廠商,除了在fpga產(chǎn)品線(xiàn)上不斷 推陳出新之外,也在不懈地提高開(kāi)發(fā)軟件的設(shè)計(jì)能力,他們的軟件產(chǎn)品在很多方 面一點(diǎn)都不遜色于專(zhuān)業(yè)的eda廠商,所以從這個(gè)角度來(lái)說(shuō),fpga廠商也是eda 公司。這里的代表性產(chǎn)品就是 altera公司的quartus ii開(kāi)發(fā)軟件和xilinx公司的 ise

11、開(kāi)發(fā)軟件。altera的fpga開(kāi)發(fā)工具已經(jīng)經(jīng)歷了四代。從最初的基于dos的a+plus,發(fā) 展至ij max+plus, 1991 年推出基于 windows 的開(kāi)發(fā)工具 max+plus ii。max+plus ii 在fpga設(shè)計(jì)工具里是一個(gè)劃時(shí)代的產(chǎn)品,它提供了一種和結(jié)構(gòu)無(wú)關(guān)的圖形化的 設(shè)計(jì)環(huán)境,功能強(qiáng)大,使用方便。設(shè)計(jì)者無(wú)需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),而只需 要使用自己熟悉的設(shè)計(jì)輸入工具(如原理圖或者h(yuǎn)dl語(yǔ)言)把自己的設(shè)計(jì)輸入到計(jì)算機(jī)中,max+plus ii就會(huì)自動(dòng)把這些設(shè)計(jì)轉(zhuǎn)換成最終結(jié)構(gòu)所需的格式,用 戶(hù)只要把最后生成的配置數(shù)據(jù)通過(guò)下載電纜下載到芯片中,即完成了所有的工 作。qua

12、rtus ii是altera公司在2001年推出的第四代開(kāi)發(fā)工具,是一個(gè)集成化的 多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿(mǎn)足特定的設(shè)計(jì)需要,在 fpga和cpld設(shè)計(jì)各個(gè) 階段都提供了工具支持,并為可編程片上系統(tǒng)(sopc)提供全面的設(shè)計(jì)環(huán)境, 是一個(gè)系統(tǒng)級(jí)的高效的eda設(shè)計(jì)工具。而且,隨著器件結(jié)構(gòu)和性能的不斷提高, 器件集成度的不斷擴(kuò)大,altera始終能夠同步推出與之相適應(yīng)的開(kāi)發(fā)工具,滿(mǎn)足 了設(shè)計(jì)者的要求,近年來(lái)一直保持這一年一個(gè)新版本的更新進(jìn)度。altera公司的quartus ii軟件是一種集編輯,編譯,綜合,布局布線(xiàn),仿真與 器件編程于一體的集成設(shè)計(jì)環(huán)境。quartus ii軟件支寸t基于vhdl

13、與verilog hdl 等硬件描述語(yǔ)言的設(shè)計(jì)和基于圖形的設(shè)計(jì),內(nèi)部嵌有vhdl和verilong hdl的邏輯綜合器,也支持利用第三方的綜合工具進(jìn)行邏輯綜合。進(jìn)行設(shè)計(jì)仿真時(shí),既可以利用quartus ii軟件自己的仿真工具,也可以利用如 modelsim等第三方仿 真工具。quartus ii軟件除了進(jìn)行基于fpga的一般的數(shù)字系統(tǒng)開(kāi)發(fā)外。還可以 與matlab和dsp builder結(jié)合,進(jìn)行基于fpga的dsp系統(tǒng)開(kāi)發(fā);使用內(nèi)嵌 的sopc builder設(shè)計(jì)工具,配合nios ii ide集成開(kāi)發(fā)環(huán)境,進(jìn)行基于 nios ii軟 核處理器的嵌入式系統(tǒng)開(kāi)發(fā)。quartus ii軟件的設(shè)計(jì)

14、流程遵循典型的fpga設(shè)計(jì)流程,包括設(shè)計(jì)輸入,綜合, 布局布線(xiàn),時(shí)序分析,仿真驗(yàn)證,編程配置等設(shè)計(jì)步驟,以及與布局布線(xiàn)有關(guān)的 功耗分析,調(diào)試,工程更改管理,與時(shí)序分析和仿真驗(yàn)證有關(guān)的時(shí)序逼近。2 fir數(shù)字濾波器的設(shè)計(jì)方法理論部分2.1 引言數(shù)字濾波器的功能一般是用來(lái)變換時(shí)域或者頻域中某些要求信號(hào)的屬性,濾 除信號(hào)中某一部分頻率分量。經(jīng)過(guò)數(shù)字濾波器的信號(hào)是讓其頻譜與數(shù)字濾波器的 頻率響應(yīng)相乘從而得出新的結(jié)果。經(jīng)過(guò)一個(gè)線(xiàn)性卷積過(guò)程,從時(shí)域上輸入信號(hào)與 濾波器的單位沖擊響應(yīng)作一個(gè)卷積和。下面是卷積定義式:yn=xn* fn= xnfnk = xnkfk (1) kklti數(shù)字濾波器在一般情況下分為

15、有限脈沖響應(yīng)(finite impulse response和 無(wú)限脈沖響應(yīng)(in巾nite impulse response), fir數(shù)字濾波器的設(shè)計(jì)方法和iir濾波 器的設(shè)計(jì)方法有很大的差別。因?yàn)槠湓O(shè)計(jì)方向是選擇有限長(zhǎng)度的h(n),使頻率響 應(yīng)函數(shù)h(ej6)滿(mǎn)足指標(biāo)。數(shù)字濾波器正在用直接的電子計(jì)算機(jī)規(guī)范和算法進(jìn)行 分析的方式來(lái)逐漸代替?zhèn)鹘y(tǒng)的模擬濾波器的rlc元器件和放大電路。2.2 fir數(shù)字濾波器的基礎(chǔ)首先介紹fir數(shù)字濾波器基本原理,通常情況下一般數(shù)字濾波器的n階fir數(shù)字濾波器基于輸入信號(hào)x(n)的表達(dá)式為:n -1y(n) = h(i)x(n- i)i =0這個(gè)公式給我們了一個(gè)

16、非常明了的直接型網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)表現(xiàn)出n個(gè)乘法器,每次采樣y(n)的內(nèi)容是n次乘法和n-1次加法,然后做乘累加之和。如圖2-110所示:圖2-1 fir濾波器直接型網(wǎng)絡(luò)結(jié)構(gòu)從dsp的介紹中,第一類(lèi)線(xiàn)性相位對(duì)h(n)的約束條件:n 1h(ej巧=2 h(n)e,5 =hg(co)e,(3)n=0n 1h h(n)(cos n - j sin - n) = h g ( )(cos - j sin ) (4) n=0由公式(3), (4)我們可以推出:n 1nh h(n)cosonsin ot = h(n)sinncost(5)n z0n=0移相并利用三角公式化簡(jiǎn)得到:n 4二 h(n)sin (n

17、 ,.;) = 0(6)n=0從數(shù)字信號(hào)處理學(xué)科中知道函數(shù)h(n)sinco(n-t)關(guān)于求和區(qū)間的中心(n-1)/2奇對(duì)稱(chēng),于是我們要求t和h(n)滿(mǎn)足如下條件:4(切)h(n) = h(n -1 -n)二 n -1其中對(duì)應(yīng)的有,一 20 n n -1圖2-2線(xiàn)性相位fir濾波器結(jié)構(gòu)若h(n)呈現(xiàn)對(duì)稱(chēng)特性,即此具有線(xiàn)性相位的濾波器是fir數(shù)字濾波器。濾波 器的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)可以相互進(jìn)行轉(zhuǎn)換。在前面本文已經(jīng)討論過(guò),fpga的實(shí)現(xiàn)中將對(duì)各種方法進(jìn)行比較,找出最優(yōu)設(shè)計(jì)方式。從而達(dá)到減少資源占有和提高系統(tǒng)作業(yè)速度的目的,更好的體現(xiàn)實(shí)時(shí)性的數(shù)字濾波器優(yōu)勢(shì)。2.3數(shù)字濾波器的設(shè)計(jì)原理在數(shù)字信號(hào)處理技術(shù)的研

18、究中,一般是使用的三種設(shè)計(jì)方法:窗函數(shù)法, fdatool直接設(shè)計(jì)法,程序編譯法。本文首先使用窗函數(shù)和matlab軟件共同進(jìn)行設(shè)計(jì)。隨著軟件技術(shù)的不斷發(fā)展,matlab軟件能給設(shè)計(jì)者帶來(lái)的數(shù)字信號(hào)處理工作 已經(jīng)非常的完善和多樣了,設(shè)計(jì)者可以利用 matlab軟件進(jìn)行數(shù)字濾波器的設(shè)計(jì) 和仿真,而且還可以用這款軟件進(jìn)行設(shè)計(jì)的優(yōu)化。數(shù)字濾波器的一般設(shè)計(jì)步驟如 下:1 .指標(biāo)的確定做任何工程或者設(shè)計(jì),設(shè)計(jì)者都必須要有一個(gè)期望的指標(biāo)用來(lái)限制設(shè)計(jì)范圍。在很多的實(shí)際應(yīng)用中,設(shè)計(jì)者常常都是使用數(shù)字濾波器做選頻的工作。因此,指標(biāo)的形式一半在頻域中給出相位響應(yīng)和幅度。相位響應(yīng)的指標(biāo)形式,一半是指系統(tǒng)在通頻帶中藥有

19、線(xiàn)性相位。幅度指標(biāo):絕對(duì)指標(biāo),它給出對(duì)幅度響應(yīng)函數(shù)的要 求,一般用于fir濾波器的設(shè)計(jì)。相對(duì)指標(biāo),以分貝值的形式給出具體限制。2 .逼近目標(biāo)設(shè)計(jì)者做高頻的時(shí)候大概都有一個(gè)模式,就是首先得到技術(shù)指標(biāo),然后利用 我們的技術(shù)和工具讓我們的產(chǎn)品去逼近這個(gè)指標(biāo)。同理我們首先建立以個(gè)目標(biāo)的 數(shù)字濾波器模型。一般情況下都是采用理想的數(shù)字濾波器模型, 然后去逼近我們 想要的目標(biāo)數(shù)字濾波器參數(shù)。3 .計(jì)算機(jī)仿真和性能優(yōu)化分析在工作中我們發(fā)現(xiàn)通過(guò)(1)、(2)之后本文會(huì)得到以差分、系統(tǒng)函數(shù)或者沖 擊響應(yīng)這三種方式描述的濾波器。 這個(gè)時(shí)候設(shè)計(jì)者可以利用計(jì)算進(jìn)行仿真, 在系 統(tǒng)中分析技術(shù)指標(biāo)和濾波結(jié)果是否是希望得到的

20、結(jié)果。2.4 matlab直接fdatool設(shè)計(jì)方式解析fdatool(filter design & analysis tool)是 matlab 信號(hào)處理工具箱里專(zhuān)用 的濾波器設(shè)計(jì)分析工具,matlab6.0以上的版本還專(zhuān)門(mén)增加了濾波器設(shè)計(jì)工具 箱(filter design toolbox)。fdatool可以設(shè)計(jì)幾乎所有的基本的常規(guī)濾波器,包 括fir和iir的各種設(shè)計(jì)方法。它操作簡(jiǎn)單,方便靈活。fdatool界面總共分兩大部分,一部分是 design filter,在界面的下半部, 用來(lái)設(shè)置濾波器的設(shè)計(jì)參數(shù),另一部分則是特性區(qū),在界面的上半部分,用來(lái)顯 示濾波器的各種特性。desig

21、n filter部分主要分為:filter type(濾波器類(lèi)型)選項(xiàng),包括lowpass砥通)、highpass(tj通)、 bandpass帶通)、bandstop曲阻)和特殊的fir濾波器。design method(設(shè)計(jì)方法)選項(xiàng),包括iir濾波器的butterworth(巴特沃思)法、 chebyshev type i儂比雪夫 i 型)法、 chebyshev type ii(切比雪夫 ii 型)法、 elliptic(橢圓濾波器)法和fir濾波器的equiripple法、least-square4小乘方)法、 window(窗函數(shù))法。filter order(濾波器階數(shù))選項(xiàng),定

22、義濾波器的階數(shù),包括 specify order(指定 階數(shù))和minimum order(最小階數(shù))。在specify order中填入所要設(shè)計(jì)的濾波器的 階數(shù)(n 階濾波器,specify order= n-1),如果選擇 minimum order 則 matlab 根據(jù)所選擇的濾波器類(lèi)型自動(dòng)使用最小階數(shù)。frenquency specfications選項(xiàng),可以詳細(xì)定義頻帶的各參數(shù),包括采樣頻率 fs和頻帶的截止頻率。它的具體選項(xiàng)由filter type選項(xiàng)和design method選項(xiàng)決 定,例如bandpass帶通)濾波器需要定義fstop1(t阻帶截止頻率卜fpass1(!帶下

23、限截止頻率卜fpass2(!市上限截止頻率卜fstop2(上阻市截止頻率),而 lowpass氐通)濾波器只需要定義fstopl、fpassl。采用窗函數(shù)設(shè)計(jì)濾波器時(shí),由 于過(guò)渡帶是由窗函數(shù)的類(lèi)型和階數(shù)所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參數(shù)。2.5 fdatool設(shè)計(jì)模板及設(shè)計(jì)結(jié)果圖fir 8階低通濾波器總體設(shè)計(jì)參數(shù)fl filter ensign & 4門(mén)間”i$ tool - untiiledfdd *1rie edit analysis targets view window help學(xué)q耳您月ax 白瓦 ess皓宿m胡媼o國(guó)區(qū)次currant filer inlort

24、nsllonstructue: di red-form firodar:7statoteybssource: designedm3emude fi-esponse10152qfrequency (khz?sweffter .respcrrse type_ hiantucie peciniceflions器命tewslowpas&highp.aaabandpassbandata-pdihureni 漸削design methodvra frq specily order: 7mnnruni orderl 0pticm/ scale passbandvmndow心西ebetafl .5freque

25、ney 郅amgmsthe attenuation at culotilirequencies is fixed crt 6 db(haitlhe gs:事bemd gain)fjgmpnaguir .design filercomputing response . done圖2-5 fir 8階低通濾波器總體設(shè)計(jì)參數(shù)濾波器幅頻響應(yīng)圖2-5-1濾波器幅頻響應(yīng)濾波器相頻響應(yīng)12magnaudt 市j and phae# frsponis51。frequency t hx)圖2-5-2濾波器相頻響應(yīng)濾波器的幅頻和相頻響應(yīng)-0 1211tdo1-2 079y。川-5 0174-5 9w7ig15rf

26、requency (khzl圖2-5-3濾波器的幅頻和相頻響應(yīng)沖擊響應(yīng)0time ( u second s1卜.140圖2-5-4沖擊響應(yīng)階躍響應(yīng)20 4g 6080100120time (usecondsji圖2-5-5階躍響應(yīng)零點(diǎn)響應(yīng)real part圖2-5-6階躍響應(yīng)濾波器系數(shù)export對(duì)話(huà)框:j export圖2-5-7濾波器系數(shù)export對(duì)話(huà)框33濾波器系數(shù)圖2-5-8濾波器系數(shù)導(dǎo)出的濾波器系數(shù)圖2-5-9導(dǎo)出濾波器系數(shù)3 fir數(shù)字濾波器的設(shè)計(jì)方法程序分析部分3.1 quartus n 及 vhd楊紹quartus ii屬于altera公司的綜合性pld開(kāi)發(fā)軟件,支持原理圖、

27、vhdl、 veriloghdl 以及 ahdl (altera hardware description language 等多種設(shè)計(jì)輸入 形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整 pld設(shè)計(jì)流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用 tcl腳本 完成設(shè)計(jì)流程外,提供了完善的用戶(hù)圖形界面設(shè)計(jì)方式。 具有運(yùn)行速度快,界面 統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。quartus ii支持altera的ip核,包含了 lpm/megafunction宏功能模塊庫(kù), 使用戶(hù)可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第 三方

28、eda工具的良好支持也使用戶(hù)可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三 方eda工具。此外,quartus ii通過(guò)和dsp builder工具與matlab/simulink相結(jié)合,可 以方便地實(shí)現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開(kāi)發(fā), 集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開(kāi)發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開(kāi)發(fā) 平臺(tái)。maxplus ii作為altera的上一代pld設(shè)計(jì)軟件,由于其出色的易用性而 得到了廣泛的應(yīng)用。目前altera已經(jīng)停止了對(duì)maxplus ii的更新支持,quartus ii 與之相比不僅僅是支持器件類(lèi)型的豐富和圖形界面的改變。altera在qua

29、rtus ii中包含了許多諸如 signaltap ii、chip editor和rtl viewer的設(shè)計(jì)輔助工具,集 成了 sopc和hardcopy設(shè)計(jì)流程,并且繼承了 maxplus ii友好的圖形界面及簡(jiǎn) 便的使用方法。altera quartus ii作為一種可編程邏輯的設(shè)計(jì)環(huán)境,由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來(lái)越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。vhdl(very-high-speed integrated circuit hardware description language) 國(guó)國(guó)防部為其超高速集成電路研究計(jì)劃提出的硬件描述語(yǔ)言,作為各合同商之間提交復(fù)雜電路設(shè)計(jì)文檔的一

30、種標(biāo)準(zhǔn)方案.作為eda的重要組成部分,vhdl提供了借助計(jì)算機(jī)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)的一種很 好的手段.vhdl設(shè)計(jì)硬件描述能力很強(qiáng),可以用于從門(mén)級(jí)、電路級(jí)直至系統(tǒng)級(jí)的 描述、仿真、綜合和調(diào)試。利用 vhdl豐富的仿真語(yǔ)句和庫(kù)函數(shù)對(duì)大系統(tǒng),在 設(shè)計(jì)的早期可在遠(yuǎn)離門(mén)級(jí)的高層次上進(jìn)行模擬,以利于設(shè)計(jì)者確定整個(gè)設(shè)計(jì)的結(jié) 構(gòu)和功能的可行性。vhdl強(qiáng)大的行為描述能力和程序結(jié)構(gòu),是其具有支持對(duì)大 規(guī)模設(shè)計(jì)進(jìn)行分解,以及對(duì)已有的設(shè)計(jì)進(jìn)行再利用的功能。運(yùn)用 vhdl設(shè)計(jì)系 統(tǒng)硬件具有相對(duì)獨(dú)立性,設(shè)計(jì)時(shí)沒(méi)有嵌入與工藝有關(guān)的信息, 對(duì)硬件的描述與具 體的工藝技術(shù)和硬件結(jié)構(gòu)無(wú)關(guān)。當(dāng)門(mén)級(jí)或門(mén)級(jí)以上的描述通過(guò)仿真檢驗(yàn)以后,

31、再用相應(yīng)的工具將設(shè)計(jì)映射成不同的工藝,這使硬件實(shí)現(xiàn)的目標(biāo)器件有很寬的選擇 范圍,并且修改電路與修改工藝相互之間不會(huì)產(chǎn)生不良的影響。vhdl標(biāo)準(zhǔn)、規(guī)范,語(yǔ)法較為嚴(yán)格,采用 vhdl的設(shè)計(jì)便于復(fù)用和交流,vhdl所具有的類(lèi)屬 描述語(yǔ)句和子程序調(diào)用等功能,使設(shè)計(jì)者對(duì)完成的設(shè)計(jì),不必改變?cè)匆睬f,只需 改變類(lèi)屬參數(shù)或函數(shù),就可改變?cè)O(shè)計(jì)的規(guī)模和結(jié)構(gòu)。3.2 實(shí)際濾波器程序設(shè)計(jì)(8階fir數(shù)字低通濾波器)要求fpga實(shí)現(xiàn)fir濾波器,首先進(jìn)行指標(biāo)選定和 matlab軟件參數(shù)仿真,然 后執(zhí)行基于vhdl方法的硬件實(shí)現(xiàn)設(shè)計(jì)要求:(1)采樣頻率fs=48khz(2)截止頻率 fc=10.8khz(4)窗口 類(lèi)型為

32、 kaiser 窗,:=0.5(5)濾波器長(zhǎng)度為83.2.1 vhdl的實(shí)現(xiàn)使用matlab軟件toolbox中的filter design,選擇低通濾波器, fs=48khz,fc=10.8khz,階數(shù)為8位,線(xiàn)性相位。設(shè)計(jì)出符合設(shè)計(jì)指標(biāo)的線(xiàn)性相 位8階fir數(shù)字低通濾波器的特征參數(shù)并轉(zhuǎn)換為 8位二進(jìn)制補(bǔ)碼如下: h(0)=h(7)= 00000011;h(1)=h(6)= 00011000;h(2)=h(5)= 00101010;h(3)=h(4)= 00111001fir數(shù)字濾波器的數(shù)字硬件系統(tǒng)主要由輸入模塊、乘累加模塊、進(jìn)制轉(zhuǎn)換模 塊、鎖存模塊和輸出顯示模塊組成。各模塊執(zhí)行的功能說(shuō)明如

33、下:(1)輸入模塊:輸入模塊的主要功能主要是完成對(duì)輸入數(shù)據(jù)的處理,為后續(xù)電路做準(zhǔn)備,主要由模擬信號(hào)源與a/d轉(zhuǎn)換芯片tlc5510組成。(2)乘累加模塊:乘累加模塊的主要功能是實(shí)現(xiàn)數(shù)據(jù)的相乘和累加。(3)進(jìn)制轉(zhuǎn)換模塊由于乘累加模塊輸出的數(shù)據(jù)為二進(jìn)制的數(shù)據(jù),為了方便在數(shù)碼管上觀察,此處將 二進(jìn)制數(shù)轉(zhuǎn)化為二-十進(jìn)制的bcd碼。(4)鎖存模塊:鎖存模塊主要功能是將轉(zhuǎn)化為 bcd碼的輸出結(jié)果鎖存后輸出。(程序見(jiàn)附錄) (5)輸出顯示模塊:輸出顯示模塊主要功能是將由鎖存模塊輸出的數(shù)據(jù)在數(shù)碼管上顯示出來(lái)(程序見(jiàn)附錄)(6)輸入模塊在輸入模塊中,主要由試驗(yàn)箱集成芯片icl8038產(chǎn)生模擬信號(hào),輸入到 tlc

34、5510進(jìn)行a/d轉(zhuǎn)換,輸出數(shù)據(jù)即為8位數(shù)字信號(hào)。采樣頻率選用48khz , 使用分頻器實(shí)現(xiàn),a為6mhz的時(shí)鐘信號(hào),對(duì)其進(jìn)行50分頻,b,c為分頻以后的 輸出時(shí)鐘信號(hào).(程序見(jiàn)附錄)(7)乘累加模塊依據(jù)fir濾波器的直接型結(jié)構(gòu),假定要求設(shè)計(jì)的fir濾波器的階數(shù)為8,即n=8 這時(shí),濾波器的輸出序列y(n)為:y(1)=x(1)h(0)=0+0+0+0+0+0+0+x(1)h(0)=0h(7)+0h(6)+0h(5)+0h(4)+0h(3)+0h(2)+0h(1)+x(1)h(0)y(2)=x(1)h(1)+x(2)h(0)=0+0+0+0+0+0+x(1)h(1)+x(2)h(0)=0h(7

35、)+0h(6)+0h(5)+0h(4)+0h(3)+0h(2)+x(1)h(1)+x(2)h(0)y(8)=x(1)h(7)+x(2)h(6)+x(3)h(5)+x(4)h(4)+x(5)h(3)+x(6)h(2)+x(7)h(1)+x(8)h(0)可知,當(dāng)n的值不同時(shí)(處于時(shí)鐘的不同節(jié)拍),計(jì)算y(n)所需的乘法及加法的 次數(shù)有所不同。為了實(shí)現(xiàn)程序在每次循環(huán)中(一個(gè)時(shí)鐘周期內(nèi))以相同的運(yùn)算形 式,算出一個(gè)y(n)值,可把不同n值時(shí)輸出的y(n)(程序見(jiàn)附錄)3.2.2 quartusii 中功能仿真在modelsim-alter軟件中仿真的波形圖如下圖3-2-2仿真波形圖4總結(jié)為期兩周的課設(shè)

36、即將結(jié)束了,回顧這幾周的歷程,我收獲了很多,不僅鞏固 了以前老師所講的東西,也學(xué)到了許多以前上課沒(méi)注意到的地方。 總的來(lái)說(shuō)有以 下幾點(diǎn);首先就是對(duì)于有符號(hào)數(shù)的加減乘方面的運(yùn)算,以前經(jīng)常做的都是些無(wú)符號(hào)數(shù) 運(yùn)運(yùn)算,相比較而言,有符號(hào)數(shù)還是有點(diǎn)難度的,由于其有符號(hào)位,所以在運(yùn)算 時(shí)必須考慮進(jìn)位相關(guān)的東西,開(kāi)始幾天,查閱了許多這方面的資料,所以對(duì)其原 理有了清醒的認(rèn)識(shí),做起來(lái)也容易些了。其次就是對(duì)fir濾波器知識(shí)方面的,雖然大三學(xué)過(guò)數(shù)字信號(hào)處理,但那時(shí)老 師只是講了一些基本知識(shí),由于這部分知識(shí)很抽象,難度很大,所以當(dāng)時(shí)也沒(méi)學(xué) 好,經(jīng)過(guò)這次課設(shè),我又從新翻閱了以前的課本,細(xì)細(xì)品味了這方面的知識(shí),然 后

37、才開(kāi)始這次的設(shè)計(jì),使我對(duì)這樣抽象的知識(shí)有了更直觀的認(rèn)識(shí),以前只是老師在上面講,對(duì)其為什么這樣做并不知道,但通過(guò)這次的課設(shè),我弄清了原因,所 以真信感謝這次課設(shè),使我鞏固了以前的很多知識(shí)。最后就是頂層原理圖的編輯,在這此設(shè)計(jì)中根據(jù)老師的例題思路采用了層次 化、模塊化的設(shè)計(jì)思想,將整個(gè)電路設(shè)計(jì)劃分為多個(gè)功能模塊,利用vhdl語(yǔ)言和原理圖輸入兩種設(shè)計(jì)技術(shù)進(jìn)行了整個(gè)功能模塊的設(shè)計(jì),最后完成fir數(shù)字濾波器的系統(tǒng)設(shè)計(jì),按照這個(gè)思路,雖然各個(gè)模塊已經(jīng)編輯好,并且都已經(jīng)生成了元 件,但在仿真是還是有許多錯(cuò)誤,由于本次設(shè)計(jì)學(xué)要的模塊很多,所以圖形很龐 大,一不小心就會(huì)出現(xiàn)這樣或那樣的錯(cuò)誤,開(kāi)始時(shí),也打算用總線(xiàn)

38、方式來(lái)連線(xiàn), 但平時(shí)做實(shí)驗(yàn)室,用總線(xiàn)時(shí)經(jīng)常出錯(cuò),所以保險(xiǎn)起見(jiàn),這次用了一般的連線(xiàn),雖 然有錯(cuò)誤,但經(jīng)過(guò)一個(gè)個(gè)排查,一個(gè)個(gè)消除了錯(cuò)誤,也使我認(rèn)識(shí)到了哪些地方容 易出錯(cuò),以后做時(shí)就可以避免這樣的錯(cuò)誤出現(xiàn)??傊ㄟ^(guò)這次課設(shè),使我收獲了很多,也懂得了許多。很感謝能有這次鍛 煉的機(jī)會(huì),相信在以后的人生道路中我會(huì)做的更好!參考文獻(xiàn)1周潤(rùn)景.基于quartusn的fpga/cpld數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例m.電子工業(yè)出版社.2007,82褚振勇.fpga設(shè)計(jì)及應(yīng)用(第三版)m.西安電子科技大學(xué)出版社.2012,43陳懷琛,.matlab及在電子信息課程中的應(yīng)用m.北京:電子工業(yè)出版社.2008,14王金明,冷自強(qiáng)

39、,eda技術(shù)與verilog設(shè)計(jì)m.北京:科學(xué)出版社.20085程佩青.數(shù)字信號(hào)處理教程(第三版)m.北京:清華大學(xué)出版社,20076杜勇,路建功,數(shù)字濾波器的matlab與fpga實(shí)現(xiàn)m北京:電子工業(yè)出版社,2012,3附錄fir濾波器rtl圖分頻器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ad isport(a:in std_logic;-c:out std_logic_vector(7 downto 0);b:out std_logic;c:out std_logi

40、c);end ad;architecture ab of ad issignal x:integer range 0 to 6;signal mid:std_logic;beginprocess(a)beginif aevent and a=1 thenif x=2 thenx=0;mid=not mid;elsex=x+1;end if;b=mid;c=mid;end if;end process;end ab;乘累加模塊程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;package pr

41、e isconstant inb: positive:=8;constant hb: positive:=8;constant mres:positive:=inb+hb;constant outb:positive:=mres+3;constant h0:std_logic_vector:=00000011;constant h1:std_logic_vector:=00011000;constant h2:std_logic_vector:=00101010”;constant h3:std_logic_vector:=00111001;constant h4:std_logic_vect

42、or:=00111001;constant h5:std_logic_vector:=00101010”;constant h6:std_logic_vector:=00011000;constant h7:std_logic_vector:=00000011;type regs is array(1 to 7) of std_logic_vector(inb-1 downto 0);end pre;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use work.pre.all;entity f

43、ir isport(xin:in std_logic_vector(inb-1 downto 0);clk:in std_logic;outs:out std_logic_vector(15 downto 0);end fir;architecture rtl of fir issignal ir:regs;signal m0,m1,m2,m3,m4,m5,m6,m7:std_logic_vector(15 downto 0);signal a0,a1,a2,a3:std_logic_vector(15 downto 0);signal b0,b1,b2:std_logic_vector(15

44、 downto 0);-signal c0,c1:std_logic_vector(15 downto 0);beginprocess(clk)beginif clkevent and clk=1thenm0=xin*h0;m1=ir*h1;m2=ir*h2;m3=ik3)*h3;m4=ir(4)*h4;m5=ir(5)*h5;m6=ir(6)*h6;m7=ir*h7;for i in 0 to 5 loopir(7-i)=ir(6-i);end loop;ir(1)=xin;a0=m0+m7;a1=m1+m6;a2=m2+m5;a3=m3+m4;b0=a0+a1;b1=a2+a3;outs=

45、30000 then d(19 downto 16):=0011; z:=z-30000;elsif z=20000then d(19 downto 16):=0010; z:=z-20000;elsif z=10000then d(19 downto 16):=0001; z:=z-10000;elsed(19 downto 16):=0000;end if;ifz=9000 then d(15 downto 12):=1001; z:=z-9000;elsif z=7000thend(15 downto 12):=0111;z:=z-7000;elsif z=6000thend(15 do

46、wnto 12):=0110;z:=z-6000;elsif z=5000thend(15 downto 12):=0101;z:=z-5000;elsif z=4000thend(15 downto 12):=0100;z:=z-4000;elsif z=3000thend(15 downto 12):=0011;z:=z-3000;elsif z=2000thend(15 downto 12):=0010;z:=z-2000;elsif z=1000thend(15 downto 12):=0001;z:=z-1000;elsed(15 downto 12):=0000;end if;if

47、z=900 then d(11 downto 8):=1001; z:=z-900;elsif z=800thend(11downto 8):=1000;z:=z-800;elsif z=700thend(11downto 8):=0111;z:=z-700;elsif z=600thend(11downto 8):=0110;z:=z-600;elsif z=500thend(11downto 8):=0101;z:=z-500;elsif z=400thend(11downto 8):=0100;z:=z-400;elsif z=300thend(11downto 8):=0011;z:=

48、z-300;elsif z=200thend(11downto 8):=0010;z:=z-200;elsed(11 downto 8):=0000;end if;ifz=90 then d(7 downto 4):=1001; z:=z-90;elsif z=80thend(7 downto 4):=1000;z:=z-80;elsif z=70thend(7 downto 4):=0111;z:=z-70;elsif z=60thend(7 downto 4):=0110;z:=z-60;elsif z=50thend(7 downto 4):=0101;z:=z-50;基于vhd印言的f

49、ir濾波器設(shè)計(jì)elsif z=40 then d(7 downto 4):=0100; z:=z-40;elsif z=30thend(7downto4):=0011;z:=z-30;elsif z=20thend(7downto4):=0010;z:=z-20;elsif z=10thend(7downto4):=0001;z:=z-10;elsed(7 downto 4):=0000;end if;ifz=9 then d(3 downto 0):=1001;elsif z=8 then d(3 downto 0):=1000;elsif z=7 then d(3 downto 0):=0

50、111;elsif z=6 then d(3 downto 0):=0110;elsif z=5 then d(3 downto 0):=0101;elsif z=4 then d(3 downto 0):=0100;elsif z=3 then d(3 downto 0):=0011;elsif z=2 then d(3 downto 0):=0010;elsif z=1 then d(3 downto 0):=0001;elsed(3 downto 0):=0000;end if;y=d;end process;end one;顯示模塊程序:library ieee;use ieee.st

51、d_logic_1164.all;use ieee.std_logic_unsigned.all;entity xian isport(ain: in std_logic_vector(19 downto 0);clk3:in std_logic;chs:out std_logic_vector(2 downto 0);result:out std_logic_vector(7 downto 0);end xian;architecture aa of xian issignalresultz,resulto,resultt,resulte,resultf,resultv:std_logic_

52、vector(7 downto 0);signal sel,seo,set,see,sef:std_logic_vector(3 downto 0);signal ch:std_logic_vector(2 downto 0);beginsel=ain(3 downto 0);seo=ain(7 downto 4);set=ain(11 downto 8);see=ain(15 downto 12);sef=ain(19 downto 16);process(sel,seo,set,see,sef)beginif sel=0000 then resultz=00111111”;elsif sel=0001 then resultz=00000110”;elsif sel=0010 then resultz=01011011”;elsif sel=0011 then resultz=01001111”;elsif sel=0100 then resultz=01100110”;elsif sel=0101 then resultz=01101101”;elsif sel=0110 then resultz=01111101”;el

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論