




已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)說(shuō)明書 基于FPGA的帶通數(shù)字濾波器 設(shè)計(jì)與實(shí)現(xiàn) 學(xué)生姓名 專業(yè)名稱電子信息工程 指導(dǎo)教師 電子與信息工程系 基于FPGA的帶通數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn) FPGA-Based Band-Pass Digital Filter Design and Implementation 摘 要 隨著高速 DSP 技術(shù)的廣泛應(yīng)用,實(shí)時(shí)而又快速可靠地進(jìn)行數(shù)字信號(hào)的處理越來(lái)越 成為用戶追求的目標(biāo)。本文分析了國(guó)內(nèi)外數(shù)字濾波技術(shù)的應(yīng)用現(xiàn)狀與發(fā)展趨勢(shì),介紹 了數(shù)字濾波器的基本結(jié)構(gòu),介紹了數(shù)字濾波器的理論及常見(jiàn)的實(shí)現(xiàn)方法。FPGA 是常用 的可編程邏輯器件,它所具有的查找表結(jié)構(gòu)非常的適用于實(shí)現(xiàn)實(shí)時(shí)而又快速可靠的數(shù) 字濾波器上,加上 Verilog 語(yǔ)言靈活的描述方式以及與硬件無(wú)關(guān)的這種特點(diǎn),使得使 基于 Verilog 語(yǔ)言的 FPGA 芯片實(shí)現(xiàn)數(shù)字濾波器成為研究的方向。 本文正是圍繞著硬件描述語(yǔ)言在數(shù)字硬件系統(tǒng)設(shè)計(jì)中的應(yīng)用展開(kāi)來(lái)的。首先從比 較傳統(tǒng)的數(shù)字硬件系統(tǒng)的設(shè)計(jì)方法與采用硬件描述語(yǔ)言的數(shù)字硬件系統(tǒng)設(shè)計(jì)方法的特 點(diǎn)出發(fā),介紹了EDA技術(shù)發(fā)展的過(guò)程以及VHDL語(yǔ)言的特點(diǎn)。介紹了分布式算法,基于 ALTERA公司四輸入查找表結(jié)構(gòu)的FPGA器件的帶通數(shù)字濾波器設(shè)計(jì)技術(shù)和結(jié)合先進(jìn)的 Quartus II軟件、Matlab軟件進(jìn)行高效設(shè)計(jì)的方法和途徑,給出了設(shè)計(jì)仿真結(jié)果。該 設(shè)計(jì)能夠滿足要求,設(shè)計(jì)效率高,對(duì)于FPGA硬件資源高效合理的利用。 關(guān)鍵詞:FPGA;Verilog;查找表;分布式算法 ABSTRACT With the extensive application of high-speed DSP technology, the users pursuit the target that it is real time high-speed and reliable to process digital signal. This paper analyzes the situation of application and development of digital filter technology home and abroad, introduced the basic structure of the digital filter, introduce the theory of digital filter and common method of its implementation. FPGA is ones of usual PLD, and its architecture of LUT is be applicable to implement real-time, high-speed and reliable digital filter, in addition, Verilog HDL can be quickly learned and mastered , and has nothing to do with hardware, which make it to be a research problem that using Verilog achieves digital filters based on FPGA. This paper is arranged around the apply of Verilog in digital system design. We analyze the way of digital system design traditional and using Verilog ,and introduced the development of EDA, the characteristic of Verilog. Introduced the distributed algorithm, the design technology of the band-pass digital filter in digital algorithm design and implementation is described based on4-input look-up table in FPGA s, the way and method of high-speed design using excellent Quartus II software,Matlab software. The design can meet the quest and be high-speed, proper in using FPGA hardware. Keywords: FPGA; Verilog; LUT(Look-Up-Table); Distributed Algorithm 目 錄 第 1 章 緒論 .1 1.1 數(shù)字濾波器研究的背景與意義 .1 1.2 數(shù)字濾波器的研究基礎(chǔ) .1 1.2.1 電子設(shè)計(jì) EDA 自動(dòng)化技術(shù).1 1.2.2 可編程邏輯器件.2 1.2.3 硬件描述語(yǔ)言 Verilog 及數(shù)字系統(tǒng)設(shè)計(jì)方法.3 1.3 數(shù)字濾波器實(shí)現(xiàn)方法的現(xiàn)狀分析 .4 1.4 本文的研究?jī)?nèi)容 .5 第 2 章 數(shù)字濾波器原理及設(shè)計(jì)方法 .7 2.1 數(shù)字濾波器的基本原理 .7 2.2 FIR 濾波器的基本網(wǎng)絡(luò)結(jié)構(gòu) .8 2.2.1 FIR 數(shù)字濾波器的直接型網(wǎng)絡(luò)結(jié)構(gòu).8 2.2.2 FIR 數(shù)字濾波器的線性相位型網(wǎng)絡(luò)結(jié)構(gòu).9 2.3 FIR 濾波器的設(shè)計(jì).10 2.3.1 頻率抽樣法設(shè)計(jì) FIR 濾波器.10 2.3.2 窗函數(shù)法設(shè)計(jì) FIR 濾波器.11 2.3.3 等紋波最佳一致逼近.12 第 3 章 基于 FPGA 設(shè)計(jì) FIR 型帶通濾波器 .14 3.1 指標(biāo)的確定 .14 3.2 設(shè)計(jì)的思路 .14 3.2.1 FIR 基本算法.14 3.3 使用 MATLAB設(shè)計(jì)濾波器 .19 3.3.1 Matlab 來(lái)設(shè)計(jì) FIR 型帶通濾波器.20 第 4 章 FIR 濾波器的軟件描述及仿真.22 4.1 FIR 型帶通濾波器總體結(jié)構(gòu).22 4.2 16 位加法器的實(shí)現(xiàn).23 4.3 8 位乘法器的實(shí)現(xiàn).25 4.4 延時(shí)器的實(shí)現(xiàn) .27 4.5 硬件下載 .30 4.6 結(jié)論 .30 致 謝 .30 參考文獻(xiàn) .31 附 錄 .32 第 1 章 緒論 1 第 1 章緒論 1.1 數(shù)字濾波器研究的背景與意義 在航天、通信、醫(yī)療等電子系統(tǒng)的信號(hào)處理子系統(tǒng)中,數(shù)字信號(hào)處理 (DSP:Digtal Signal Processing)占據(jù)著重要的地位。與國(guó)民經(jīng)濟(jì)息息相關(guān),與國(guó)防 建設(shè)緊密相連;數(shù)字濾波技術(shù)在語(yǔ)音和圖像處理、譜分析、模式識(shí)別等很多應(yīng)用中經(jīng) 常被用到。和模擬濾波相比,數(shù)字濾波含有非常突出的優(yōu)點(diǎn)。比如,它能夠滿足濾波 器對(duì)幅度和相位特性的技術(shù)要求,可以避免使用模擬濾波過(guò)程中不能克服的電壓漂移、 溫度漂移和噪聲等等很多問(wèn)題。數(shù)字濾波器依照沖激響應(yīng)函數(shù)的對(duì)時(shí)域的要求,能夠 把數(shù)字濾波器分成有限長(zhǎng)沖激響應(yīng)(FIR)和無(wú)限長(zhǎng)沖激響應(yīng)(IIR)濾波器濾波器兩 種。因?yàn)?FIR 系統(tǒng)僅含有零點(diǎn),所以系統(tǒng)十分穩(wěn)定,使運(yùn)算速度快、傅里葉變換 (FFT) 算法、線性相位的特性以及設(shè)計(jì)更有利于實(shí)現(xiàn)上更為的靈活等突出的優(yōu)點(diǎn)因 而在實(shí)際工程中得到了廣泛的應(yīng)用。FPGA 是可編程邏輯器件中相對(duì)其他的一種比較復(fù) 雜的形式,其正處于數(shù)字信號(hào)處理的前沿。FPGA 與 ASIC 擁有許多的相同的特點(diǎn)。例如, 在重量、功耗以及規(guī)模等方面都有降低,吞吐量更高,可以更好的防止未授權(quán)復(fù)制、 元器件以及開(kāi)發(fā)成本的進(jìn)一步降低,也大大的縮短了開(kāi)發(fā)所需的時(shí)間。在線路中重復(fù) 編程是它的重要特性。前端數(shù)字信號(hào)處理之運(yùn)算都要用到它,PDSP 和 ASIC 逐漸的被全 新的可編程邏輯器件 FPGA 所替代。 電路設(shè)計(jì)的過(guò)程時(shí)候,它許可設(shè)計(jì)者基于計(jì)算機(jī)開(kāi)發(fā)平臺(tái)操作,再通過(guò)一系列的 輸入,仿真,測(cè)試以及校驗(yàn)。最后能夠達(dá)到要求,使最終的設(shè)計(jì)能夠更為經(jīng)濟(jì)的實(shí)惠。 更進(jìn)人矚目的是,電路板級(jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品完全可以用 FPGA 來(lái)實(shí)現(xiàn),就像我們 現(xiàn)在生活當(dāng)中所見(jiàn)到的。伴 FPGA 在數(shù)字信號(hào)處理應(yīng)用中的大規(guī)?;覀兊纳a(chǎn)和生 活的方式正被影響或改變著。 程序設(shè)計(jì)過(guò)程中,將不同的功能代碼分別進(jìn)行存放,以便于設(shè)計(jì)的后期更新和維 護(hù)??梢允褂?FPGA Express 或 Leonardo Spectrum 對(duì)設(shè)計(jì)進(jìn)行綜合的處理,將產(chǎn)生的. edf 文件放在 QUARTUS II 軟件平臺(tái)上仿真,假如仿真結(jié)果符合它的要求,就能夠?qū)⒋?碼下載到所對(duì)應(yīng)的具體芯片里,從而完成數(shù)字濾波器設(shè)計(jì)。 1.2 數(shù)字濾波器的研究基礎(chǔ) 1.2.1 電子設(shè)計(jì) EDA 自動(dòng)化技術(shù) EDA 是電子系統(tǒng)設(shè)計(jì)技術(shù)的核心,EDA 技術(shù)就是把電子計(jì)算機(jī)作為工具,設(shè)計(jì)人員 在 EDA 軟件的平臺(tái)上,自由的利用硬件描述語(yǔ)言 VHDL 來(lái)完成設(shè)計(jì)所需的文件,接著計(jì) 算機(jī)自動(dòng)地完成邏輯的編譯、分割、化簡(jiǎn)然后綜合再優(yōu)化以及布局布線并且完成仿真, 一直到對(duì)特定的芯片的適配的編譯和邏輯的映射以及編程下載等等任務(wù)。EDA 技術(shù)大大 第 1 章 緒論 2 的提高了電路設(shè)計(jì)的效率以及操作性,設(shè)計(jì)者的勞動(dòng)強(qiáng)度降低。使用 EDA 工具,使用 者能夠從概念、算法、協(xié)議等設(shè)計(jì)電子系統(tǒng),通過(guò)計(jì)算機(jī)可以直接完成大量的工作, 而且能夠把電子的產(chǎn)品從電路的設(shè)計(jì)和性能的分析再到到設(shè)計(jì)出 PCB 的版圖或者 IC 版 圖的過(guò)程在電子計(jì)算機(jī)上處理完成。 現(xiàn)在對(duì) EDA 的概念以及范疇使用得都很寬。包括在通信、機(jī)械、航空航天、電子、 軍事、化工、礦產(chǎn)、生物、等領(lǐng)域,均有 EDA 技術(shù)的應(yīng)用。目前 EDA 技術(shù)已經(jīng)得到各 大公司、企事業(yè)單位等部門的廣泛使用。例如在飛機(jī)制造的過(guò)程中,從設(shè)計(jì)、性能測(cè) 試以及特性分析,直到飛行的模擬,都可能涉及到 EDA 技術(shù)。 EDA 技術(shù)在教學(xué)、科研、產(chǎn)品設(shè)計(jì)與制造等各個(gè)方面均發(fā)揮著巨大的作用。從應(yīng)用 的領(lǐng)域來(lái)看,EDA 已經(jīng)滲透到各行各業(yè)。另外,EDA 軟件的功能日益強(qiáng)大,原來(lái)功能比 較單一的軟件,現(xiàn)在增加了很多的新用途。例如 AutoCAD 軟件可用于機(jī)械設(shè)計(jì)及建筑 設(shè)計(jì),也擴(kuò)展到了建筑裝璜和各類效果圖、飛機(jī)和汽車的模型、電影特技等領(lǐng)域。 1.2.2 可編程邏輯器件 可編程的邏輯器件(簡(jiǎn)稱 PLD)是二十世紀(jì)七十年代發(fā)展的新型邏輯器件,可編程 的邏輯器件是大規(guī)模集成電路技術(shù)的需素發(fā)展以及電子計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、電子 計(jì)算機(jī)輔助測(cè)試(CAT)、電子計(jì)算機(jī)輔助生產(chǎn)(CAM)相結(jié)合的產(chǎn)物,是現(xiàn)代數(shù)字電 子系統(tǒng)朝著極低功耗、超高集成度、超小型封裝以及專業(yè)化發(fā)展方向重要的基礎(chǔ)。 可編程邏輯器件是一種由用戶編程實(shí)現(xiàn)所需功能的半定制集成電路,近年來(lái)發(fā)展 十分迅速,已在國(guó)內(nèi)外的計(jì)算機(jī)硬件、工業(yè)控制、智能儀表、數(shù)字視聽(tīng)設(shè)備、家用電 器等領(lǐng)域得到了廣泛的應(yīng)用??删幊踢壿嬈骷c EDA 技術(shù)的結(jié)合,使得系統(tǒng)設(shè)計(jì)人員 與芯片設(shè)計(jì)人員的相互滲透,從而快速、方便地構(gòu)建數(shù)字系統(tǒng)。學(xué)習(xí) ASIC 技術(shù),掌握 可編程邏輯器件的設(shè)計(jì)方法,已成為現(xiàn)代電子系統(tǒng)設(shè)計(jì)人員必須具備的基本技能之一。 1.目前使用的 PLD 產(chǎn)品主要有: 1) FPLA 現(xiàn)場(chǎng)可編程邏輯陣列(field programmable logic array) 2) PAL 可編程陣列邏輯(programmable array logic) 3) GAL 通用陣列邏輯(generic array logic) 4) EPLD 可擦除的可編程邏輯器件(erasable programmable logic device); 5) FPGA 現(xiàn)場(chǎng)可編程門陣列(field programmable gate array) 其中 FPGA 和 EPLD 的集成度相對(duì)比較高。有時(shí)把這兩種器件又稱為高密度 PLD。 FPGA 采用了邏輯單元陣列 LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可 配置邏輯模塊 CLB(Configurable Logic Block)、輸出輸入模塊 IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)在主要用的 FPGA 依據(jù)查找表技術(shù),早已大大超出先前的版本的基本性能,完成 整合常用的功能(如 DSP、時(shí)鐘管理和 RAM)的硬核模塊。如圖 1-1 所示(注:圖 1-1 第 1 章 緒論 3 只是一個(gè)示意圖,實(shí)際中每個(gè)系列的 FPGA 都具有其對(duì)應(yīng)的內(nèi)部結(jié)構(gòu)),F(xiàn)PGA 芯片主要 由 6 部分來(lái)完成,它們分別時(shí):基本可編程邏輯單元、可編程輸入輸出單元、嵌入塊 式 RAM、豐富的布線資源、完整的時(shí)鐘管理、內(nèi)嵌專用硬件和內(nèi)嵌底層功能單元模塊。 2.FPGA 的基本特點(diǎn): 1)FPGA 采用高速 CHMOS 工藝,功耗低,可以與 CMOS、TTL 電平兼容。 2)FPGA 可做其它全定制或半定制 ASIC 電路的中試樣片。 3)采用 FPGA 設(shè)計(jì) ASIC 電路,用戶就不需要投片生產(chǎn),就得到合用的芯片。 4)FPGA 內(nèi)部有豐富的觸發(fā)器和 IO 引腳。 5) FPGA 是 ASIC 電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小器件之一。 可以說(shuō),F(xiàn)PGA 芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 FPGA 是由存放在片內(nèi) RAM 中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片 內(nèi)的 RAM 進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA 芯片將 EPROM 中數(shù)據(jù)讀入片內(nèi)編程 RAM 中,配置完成后,F(xiàn)PGA 進(jìn)入工作 狀態(tài)。掉電后,F(xiàn)PGA 恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA 能夠反復(fù)使用。 FPGA 的編程無(wú)須專用的 FPGA 編程器,只須用通用的 EPROM、PROM 編程器即可。當(dāng)需要 修改 FPGA 功能時(shí),只需換一片 EPROM 即可。這樣,同一片 FPGA,不同的編程數(shù)據(jù),可 以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA 的使用非常靈活。 1.2.3 硬件描述語(yǔ)言 Verilog 及數(shù)字系統(tǒng)設(shè)計(jì)方法 HDL 是 Hardware Description Language(硬件描述語(yǔ)言)的縮寫,不是 Hardware Design Language(硬件設(shè)計(jì)語(yǔ)言)的縮寫。1983 年由 Gateway Automation 首創(chuàng),并在 1995 年成為 IEEE 標(biāo)準(zhǔn),即 IEEE standard 1364。 Verilog 是基于 C 語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的一種用于硬件描述的具有時(shí)間概念的并 行編程語(yǔ)言,是一種以文本的形式來(lái)描述數(shù)字系統(tǒng)硬件的行為和結(jié)構(gòu)的語(yǔ)言,可以用 它來(lái)表示邏輯表達(dá)式、邏輯電路圖,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。 1.Verilog 語(yǔ)言的特點(diǎn): 1) 支持不同抽象層次精確的描述和混合模擬,例如 RTL 級(jí)、開(kāi)關(guān)級(jí)、行為級(jí)等 2) 設(shè)計(jì)、測(cè)試以及模擬所用的語(yǔ)法都是相同的 3) 較高層次的描述與具體的工藝無(wú)關(guān) 4) 提供了類似 C 語(yǔ)言的高級(jí)程序語(yǔ)句,如 case,loop,if-else 等 5) 提供了邏輯、算術(shù)以及位操作等運(yùn)算符 6) 包含完整的如 or、and、xor 等組合邏輯元件,無(wú)需自行定義 7) 支持元件門級(jí)延時(shí)和元件門級(jí)驅(qū)動(dòng)的強(qiáng)度 Verilog HDL 程序是由模塊構(gòu)成的。每一個(gè)模塊的內(nèi)容都嵌入在 module 和 endmodule 的兩個(gè)語(yǔ)句之間。每個(gè)模塊實(shí)現(xiàn)各自特定地功能。而且模塊之間可以進(jìn)行層 次的嵌套。在進(jìn)行一些大型的數(shù)字電路設(shè)計(jì)的時(shí)候,我們可將其進(jìn)行分割,做成各種 第 1 章 緒論 4 不同的小模塊來(lái)實(shí)現(xiàn)它特定的功能,最后再通過(guò)頂層的模塊來(lái)調(diào)用子模塊來(lái)達(dá)到對(duì)整體 功能的實(shí)現(xiàn)。各個(gè)模塊都要進(jìn)行端口的定義,說(shuō)明輸入和輸出的端口,然后再對(duì)模塊的 功能進(jìn)行行為邏輯的描述。Verilog 語(yǔ)言適用對(duì)各種抽象級(jí)的模型進(jìn)行開(kāi)發(fā)和驗(yàn)證。 1.3 數(shù)字濾波器實(shí)現(xiàn)方法的現(xiàn)狀分析 數(shù)字濾波實(shí)現(xiàn)的方法多種多樣,其中最常見(jiàn)的按類別劃分是以沖激響應(yīng)的寬度來(lái) 分類的。數(shù)字濾波器依據(jù)沖激響應(yīng)的寬度劃分為無(wú)限沖激響應(yīng)(IIR)濾波器和有限沖激 響應(yīng)(FIR)濾波器。無(wú)限脈沖響應(yīng)(IIR)濾波器具有良好的幅頻特性曲線,系統(tǒng)函數(shù)的 極點(diǎn)可位于單位圓內(nèi)任何地方,因此,零點(diǎn)和極點(diǎn)相結(jié)合,可以用較低的階數(shù)獲得高 選擇性,所用的存儲(chǔ)單元少,計(jì)算量小,所以經(jīng)濟(jì)高效。這個(gè)高效率的實(shí)現(xiàn)是以相位 的非線性作為代價(jià)的。與之相反,F(xiàn)IR濾波器可得到比較嚴(yán)格的線性相位,但是由于 FIR濾波器系統(tǒng)的函數(shù)極點(diǎn)是被固定在原點(diǎn),所以只能夠采用比較高的階數(shù)來(lái)達(dá)到高的 選擇性;對(duì)于相同的濾波器幅頻特性指標(biāo)來(lái)講,F(xiàn)IR濾波器所要求的階數(shù)就要比IIR濾 波器高5到10倍,成本比較高,信號(hào)延時(shí)也相對(duì)較大;要是按照同樣的選擇性和同樣的 線性相位要求,那么IIR濾波器就一定要加全通網(wǎng)絡(luò)進(jìn)行相位的較正,也就要大大地增 加濾波器的階數(shù)和其復(fù)雜性。 在結(jié)構(gòu)方面,IIR濾波器必須使用遞歸結(jié)構(gòu),幾點(diǎn)位置一定要在單位圓之內(nèi),不然 系統(tǒng)將會(huì)不穩(wěn)定。還有就是,因?yàn)樵谶@樣的結(jié)構(gòu)里,運(yùn)算時(shí)要進(jìn)行對(duì)序列的舍入處理 這一處理過(guò)程,有限字長(zhǎng)效應(yīng)會(huì)在有的時(shí)候引起寄生震蕩。相反,F(xiàn)IR濾波器只要采用 的是非遞歸結(jié)構(gòu),不論是在理論上還是在實(shí)際有限精度的運(yùn)算中均不存在穩(wěn)定性的問(wèn) 題,有運(yùn)算誤差引起的輸出信號(hào)和噪聲功率也比較小。此外,F(xiàn)IR濾波器可以采用FFT 算法實(shí)現(xiàn),在相同階數(shù)的條件下,運(yùn)算速度可以大大提高。 從設(shè)計(jì)工具看,IIR濾波器可以借助成熟的模擬濾波器設(shè)計(jì)成果,因此一般都有封 閉形式的設(shè)計(jì)公式準(zhǔn)確計(jì)算,計(jì)算工作量比較小,對(duì)計(jì)算工具的要求不高。FIR濾波器 計(jì)算通帶和阻帶衰減等仍無(wú)顯式表達(dá)式,其邊界頻率也不易精確控制。一般情況下, 對(duì)FIR濾波器進(jìn)行設(shè)計(jì)的時(shí)候只有計(jì)算程序可循,因此對(duì)計(jì)算的工具要求會(huì)較高。但在 計(jì)算機(jī)普及的今天,很容易實(shí)現(xiàn)其設(shè)計(jì)計(jì)算。 另外,也應(yīng)看到,IIR濾波器雖然設(shè)計(jì)簡(jiǎn)單,但主要是用于設(shè)計(jì)具有片段常數(shù)特性 的選頻型濾波器,比如低通、帶通、高通以及阻帶,通常脫不開(kāi)這幾種典型的模擬濾 波器的頻響特性約束。但是FIR濾波器更加靈活,更能適應(yīng)一些特殊應(yīng)用,如構(gòu)成積分 器或微分器,或者用于切比雪夫,巴特沃斯等靠近但永遠(yuǎn)不可能達(dá)到預(yù)定目標(biāo)的情形。 比如,因?yàn)橐恍┰蛞笕切蔚姆l響應(yīng)或者更為復(fù)雜的幅頻響應(yīng)的形狀,因此FIR 濾波器更能適應(yīng)許多場(chǎng)合。 1.現(xiàn)在FIR濾波器的實(shí)現(xiàn)方法大概有以下幾種: (1)采用單片通用數(shù)字濾波器的集成電路121單片的通用數(shù)字的濾波器,例如 TDC1028,還有仙童公司TMC2246,使用更加簡(jiǎn)單,但是因?yàn)樽珠L(zhǎng)以及階數(shù)規(guī)格很少,不 第 1 章 緒論 5 能夠完美的滿足實(shí)際的需要。即使我們能夠選用多片的擴(kuò)展來(lái)達(dá)到滿足,這樣就增加 功耗以及體積,所以在實(shí)際設(shè)計(jì)過(guò)程中就會(huì)受到一些限制。好的一些數(shù)字通用濾波器, 比如HARRIS的HSP43168,含有兩個(gè)獨(dú)立8階的計(jì)算的單元,而且含有16位的延時(shí)因子, 都能滿足16-256階的計(jì)算的精度需求,來(lái)實(shí)現(xiàn)多相位的功能;并且自帶存儲(chǔ)的單元,可 以儲(chǔ)存32組的系數(shù);而且有計(jì)算機(jī)的接口,可以由電子計(jì)算機(jī)控制以及運(yùn)算,但工作頻 率比較低,最大的數(shù)據(jù)速率是45MSPS,需要電子計(jì)算機(jī)的外部控制,時(shí)序很復(fù)雜,使 用的人要仔細(xì)的研究操作手則?;谑褂谜卟煌脑O(shè)計(jì)的要求,那么這些有限的通用 濾波器將很難滿足這些設(shè)計(jì)者的個(gè)性化的要求,基于實(shí)現(xiàn)器件的通用性的目的,這類 濾波器的電路工作當(dāng)中的有效采樣率也不是特別的高,已然不能實(shí)現(xiàn)高采樣率環(huán)境的 具體需求。 (2)使用DSP的器件來(lái)設(shè)計(jì)的FIR濾波器的應(yīng)用也最廣泛,TMS32CXX系列。設(shè)計(jì)的時(shí) 后有專用的函數(shù)可調(diào)用還有依據(jù)FIR濾波器的數(shù)據(jù)的移位相乘累加算法編寫軟件程序, 利用軟件及硬件互相結(jié)合來(lái)完成濾波器的開(kāi)發(fā)設(shè)計(jì)。軟件運(yùn)行,這些指令是串行執(zhí)行 的,得到滿足的幅頻的特性,當(dāng)濾波器的字長(zhǎng)數(shù)增加或者抽頭增加的時(shí)侯,會(huì)大大增 長(zhǎng)計(jì)算的時(shí)間,這樣就降低最大有效的數(shù)據(jù)的采樣率,又因?yàn)镈SP的芯片本身的時(shí)鐘速 度是有限的,這種方式常常應(yīng)用于音頻信號(hào)的處理,不適用數(shù)據(jù)采樣率提高的情況。 DSP器件的性能不斷的提高,在一定的場(chǎng)合會(huì)收到限制。 (3)可編程邏輯器件的速度和容量伴隨著可編程邏輯器件FPGA的使用而正在不斷 的增加,使單片系統(tǒng)的集成SOC的實(shí)現(xiàn)已成為可能。通過(guò)FPGA實(shí)現(xiàn)FIR帶通數(shù)字濾波器, 由于我們要實(shí)現(xiàn)的是硬件并行這一算法,因而在某些實(shí)時(shí)性的要求比較高的場(chǎng)合能夠 得到更好的應(yīng)用。FPGA器件的芯片適用頻率比較高,密度相對(duì)較大,已成為目前大規(guī) 模的數(shù)字邏輯設(shè)計(jì)的發(fā)展方向,是專業(yè)數(shù)字濾波器設(shè)計(jì)者的非常理想的一種載體。 FPGA擁有著相當(dāng)豐富的連線資源以及整齊的內(nèi)部邏輯塊陣列,非常的適用于高并行度 和細(xì)粒度這一結(jié)構(gòu)特點(diǎn)的數(shù)字信號(hào)的處理工作,例如,F(xiàn)FT以及FIR濾波等等,對(duì)于以 串行的運(yùn)算為主導(dǎo)的通用DSP芯片來(lái)說(shuō)可擴(kuò)展性以及并行性都會(huì)更加的優(yōu)異,相關(guān)記錄 在眾文獻(xiàn)中都可找到。不過(guò)在長(zhǎng)期的發(fā)展過(guò)程中,F(xiàn)PGA的運(yùn)用一直被用在時(shí)序控制和 系統(tǒng)邏輯上,信號(hào)處理方面的應(yīng)用相對(duì)較少,F(xiàn)PGA內(nèi)部功能電路的固有時(shí)延是其中的 主要原因,在電路復(fù)雜的程度不斷增加的時(shí)候,仍然沒(méi)有辦法擺脫通過(guò)簡(jiǎn)單的算法翻 譯式設(shè)計(jì)的方法所帶來(lái)的時(shí)鐘瓶頸這樣的約束。因而在FPGA中無(wú)法高效的實(shí)現(xiàn)信號(hào)處 理中應(yīng)用最廣的乘法器。所以,為了充分的開(kāi)發(fā)和利用FPGA以及實(shí)現(xiàn)高速算法的要求, 選擇一種好的設(shè)計(jì)方法,充分地利用FPGA的高速度、大規(guī)模以及可編程的這些突出優(yōu) 點(diǎn),讓FPGA在它的最高時(shí)鐘頻率上飛跑成為關(guān)鍵。根據(jù)以上給出的原因,本文設(shè)計(jì)以 Verilog為描述方法,基于FPGA來(lái)實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)。 1.4 本文的研究?jī)?nèi)容 為了確定使用的方法在設(shè)計(jì) FIR 濾波器上是有效并且是高效的,因此在本文中對(duì) 第 1 章 緒論 6 比了兩種不同的 FIR 濾波器的設(shè)計(jì)方法,通過(guò)對(duì)比得知,采用 FPGA 的 FIR 濾波器無(wú)論 在速度上和所占用的資源上均優(yōu)于普通的設(shè)計(jì)方式,因此可以確定采用 FPGA 來(lái)設(shè)計(jì) FIR 濾波器占有優(yōu)勢(shì)。 在開(kāi)始進(jìn)行撰寫論文之前閱讀了大量的有關(guān) DSP 和 EDA 的材料,了解并學(xué)習(xí)了很 多的硬件和軟件的相關(guān)知識(shí)。學(xué)習(xí)并研究了 Verilog 實(shí)例的使用。在不斷的思考、討 論、理解和對(duì)比了幾種實(shí)現(xiàn) FIR 型帶通數(shù)字濾波器的方法之后,最終決定運(yùn)用分布式 的算法作為基本算法來(lái)實(shí)現(xiàn)本論文的設(shè)計(jì)方法,用 Verilog 作為 FIR 濾波器描述的方 法,采用自頂向下的模塊化、層次化的設(shè)計(jì),進(jìn)行 Verilog 程序的編寫,如果有條件 的話可在 FPGA 芯片上進(jìn)行調(diào)試以及仿真,并且給出仿真的結(jié)果。 1.本課題的研究的主要內(nèi)容為: 1)對(duì) FIR 數(shù)字濾波器的結(jié)構(gòu)以及設(shè)計(jì)方法進(jìn)行深入的了解,運(yùn)用 MATLAB 軟件對(duì) FIR 帶通濾波器進(jìn)行設(shè)計(jì),以便對(duì)設(shè)計(jì)的仿真結(jié)果進(jìn)行比較。 2)理解使用硬件描述語(yǔ)言設(shè)計(jì)數(shù)字系統(tǒng)的方法。掌握自頂向下層次化、模塊化的 設(shè)計(jì)方法。 3)理解 Booth 這一算法,以及以它為基礎(chǔ)的實(shí)現(xiàn) FIR 濾波器硬件結(jié)構(gòu)。最后利用 FPGA 器件實(shí)現(xiàn) FIR 數(shù)字濾波器的硬件電路。 第 2 章 數(shù)字濾波器原理及設(shè)計(jì)方法 7 第 2 章數(shù)字濾波器原理及設(shè)計(jì)方法 在數(shù)字信號(hào)處理的領(lǐng)域中,對(duì)于信號(hào)處理的實(shí)時(shí)性以及快速性的要求在不斷的提 高。而在處理許多信息的過(guò)程中,比如對(duì)信號(hào)進(jìn)行的預(yù)測(cè)、檢測(cè)以及過(guò)濾等等,濾波 器經(jīng)常的要被使用到。數(shù)字濾波器具有眾多突出的優(yōu)點(diǎn),比如設(shè)計(jì)精度高、穩(wěn)定性強(qiáng)、 實(shí)現(xiàn)方便、設(shè)計(jì)非常靈活等等,完成了模擬濾波器所不能克服的溫度漂移、噪聲以及 電壓漂移等很多的問(wèn)題,因此,伴隨著數(shù)字技術(shù)的不斷發(fā)展,采用數(shù)字技術(shù)來(lái)實(shí)現(xiàn)一 些特定功能的濾波器越來(lái)越多的得到大家的注意以及廣泛的使用。其中,有限沖激響 應(yīng)(FIR)濾波器能在設(shè)計(jì)任意幅頻特性的同時(shí)保證嚴(yán)格的線性相位特性,在語(yǔ)音、數(shù)據(jù) 傳輸中應(yīng)用非常廣泛。 數(shù)字濾波器Digital Filter,指的是用來(lái)將輸入的信號(hào)執(zhí)行濾波的軟件和硬件。 數(shù)字濾波器,指的是它的輸入和輸出都是數(shù)字信號(hào),然后經(jīng)過(guò)給定關(guān)系的運(yùn)算,從而 改變輸入信號(hào)中所含有的頻率成分的一種器件。模擬和數(shù)字濾波器相比較,由于信號(hào) 的形式以及對(duì)濾波的實(shí)現(xiàn)所采取的方法不一樣,數(shù)字濾波器相對(duì)模擬濾波器而言,它 擁有靈活、重量輕、體積小、穩(wěn)定、精度高以及不需要求阻抗匹配等優(yōu)點(diǎn)。 數(shù)字濾波器的實(shí)現(xiàn)通常采用兩種方法:一種方法是使用通用的計(jì)算機(jī),把濾波器 需要進(jìn)行的運(yùn)算過(guò)程編寫為可以用計(jì)算機(jī)來(lái)執(zhí)行的程序,即通過(guò)計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn)設(shè) 計(jì);二是使用數(shù)字處理的硬件來(lái)實(shí)現(xiàn)。 由它的單位沖激響應(yīng)函數(shù)時(shí)域特性我們可以將濾波器分成兩種:即 IIR 無(wú)限沖激 響應(yīng)濾波器、FIR 有限沖激響應(yīng)濾波器。和 IIR 濾波器進(jìn)行比較,F(xiàn)IR 濾波器的實(shí)現(xiàn)過(guò) 程是非遞歸的,而且是很穩(wěn)定的;其中更為重要的是,F(xiàn)IR 在達(dá)到幅頻特性響應(yīng)要求的 同時(shí),還能夠獲得非常嚴(yán)格的線性相位這一特性。在數(shù)字信號(hào)處理系統(tǒng)中,F(xiàn)IR 濾波器 更加被廣泛的使用,因此本章主要研究 FIR 濾波器的實(shí)現(xiàn)技術(shù),其中的很多優(yōu)化技術(shù) 同樣可以應(yīng)用于 IIR 濾波器的實(shí)現(xiàn)中。 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 14 第 3 章基于 FPGA 設(shè)計(jì) FIR 型帶通濾波器 在前面的幾章討論了基于 FPGA 數(shù)字濾波器設(shè)計(jì)的相關(guān)原理和其相關(guān)基礎(chǔ)知識(shí)。本 章將針對(duì)以上所提到的原理以及方法進(jìn)行進(jìn)一步的組合應(yīng)用。 3.1 指標(biāo)的確定 在濾波器的設(shè)計(jì)中,所確定的指標(biāo)如下: (1) 帶寬 100MHZ,最小阻帶衰減-35db; (2) 進(jìn)行綜合仿真; (3) 設(shè)計(jì) FIR 型帶通濾波器,滿足上述性能指標(biāo); 3.2 設(shè)計(jì)的思路 將輸入信號(hào)的每一位通過(guò)四個(gè)延時(shí)器后,以每位信號(hào)的4個(gè)引出點(diǎn)作為選擇控制端, 選擇出己經(jīng)算好的系數(shù),每一位信號(hào)選取存儲(chǔ)器中的不同位上的數(shù)值,達(dá)到乘法移位 的功能,并送到累加器。累加器將8位信號(hào)選擇出的8個(gè)數(shù)據(jù)累加后輸出,得到濾波結(jié) 果。為了FPGA中四輸入查找表的電路結(jié)構(gòu)的充分利用,我們采用每8節(jié)為濾波器的一個(gè) 基本單元,對(duì)于64節(jié)濾波器的設(shè)計(jì),采用8個(gè)基本濾波單元。 3.2.1 FIR 基本算法 (1)對(duì)加法器的設(shè)計(jì) 加法器是數(shù)字系統(tǒng)設(shè)計(jì)中最常用的運(yùn)算電路,其他運(yùn)算電路比如減法器、乘法器、 除法器等都可以利用加法器來(lái)實(shí)現(xiàn)。在本次的設(shè)計(jì)中也大量的運(yùn)用到了加法器。一個(gè) 基本 N 位二進(jìn)制加法器/減法器由 N 個(gè)加法器組成。每個(gè)加法器都執(zhí)行如下的布爾方程: XOR y XOR (3.1) k x k s k y kkkk cyxc 進(jìn)位位按如下方法計(jì)算: =(AND) OR (AND) OR (AND) 1k c k x k y k x k c k y k c =()+()+() (3.2) k x k y k x k c k y k c 最簡(jiǎn)單的加法器結(jié)構(gòu)稱之為并行加法,如圖 3-1 所示,是位串行格式的。 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 15 圖 3-1 并行加法器 在 QuartusII 中提供了宏模塊 lpm、add、sub 構(gòu)造加法器和減法器。表 3-1 中給 出了 lpm、add、sum 的基本邏輯參數(shù): 表表 3-13-1 lpm-add-sublpm-add-sub 宏模塊的基本邏輯參數(shù)宏模塊的基本邏輯參數(shù) 端口名稱功能描述 dataa 被加數(shù)/被減數(shù) 輸入端口 datab 加數(shù)/減數(shù) result Data +datab +cin 或 data -datab+cin-1 Cout 最高有效位進(jìn)位和借位 標(biāo)志 輸出端口 Overflow 計(jì)算結(jié)果超過(guò)計(jì)數(shù)范圍 標(biāo)志 Cout 和 Overflow 不能同 時(shí)出現(xiàn),Cout 適合于無(wú)符 號(hào)運(yùn)算,而 Overflow 適 合于有符號(hào)運(yùn)算。 參數(shù)設(shè)置 LPM_WIDTH LPM_DIRECTION LPM_REPRESENTATION Data .datab 和 result 端口的數(shù)據(jù)線寬度; ADD 表示宏模塊執(zhí)行加法運(yùn)算; SUB 表示宏模塊執(zhí)行減法運(yùn)算; DEFAULT 表示宏模塊缺省設(shè)置為加法; 指定參與運(yùn)算的數(shù)值是無(wú)符號(hào)數(shù)還是有符號(hào)數(shù) (2)乘法器的設(shè)計(jì) 乘法器是DSP系統(tǒng)構(gòu)成的基本部件,也是FIR數(shù)字濾波器的基本運(yùn)算。乘法器按數(shù) 字表示方法的不同,可以分成浮點(diǎn)和定點(diǎn)乘法器。浮點(diǎn)運(yùn)算的動(dòng)態(tài)范圍雖然比較大、 精度比較高,但是它的復(fù)雜度很高,因而也導(dǎo)致了它的運(yùn)算的速度會(huì)慢很多,因此本 文將對(duì)定點(diǎn)乘法器的的設(shè)計(jì)作為研究的方向。本章從乘法器的算法開(kāi)始,研究了多種 乘法器的算法以及他的其實(shí)現(xiàn)方法,并討論了各自的優(yōu)缺點(diǎn),最后給出了一種基于 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 16 Booth算法的硬件乘法器電路。 1、定點(diǎn)乘法器的算法和實(shí)現(xiàn) 數(shù)字系統(tǒng)中,主要的數(shù)制表示方法為二進(jìn)制表示法。二進(jìn)制表示法主要有二進(jìn)制 原碼、補(bǔ)碼、反碼三種,其中二進(jìn)制原碼屬于無(wú)符號(hào)數(shù),二進(jìn)制反碼和補(bǔ)碼屬于有符 號(hào)數(shù)。根據(jù)二進(jìn)制碼的不同,定點(diǎn)乘法可分為有符號(hào)數(shù)乘法和無(wú)符號(hào)數(shù)乘法。 2、無(wú)符號(hào)數(shù)一位乘法 無(wú)符號(hào)數(shù)的二進(jìn)制乘法與十進(jìn)制乘法的運(yùn)算方法一樣,只是二進(jìn)制乘法規(guī)則不同, 其運(yùn)算規(guī)則和邏輯“與”運(yùn)算規(guī)則相同,為:00=0;01=0;10=0;l1=1。以 兩個(gè)無(wú)符號(hào)數(shù)的二進(jìn)制乘法運(yùn)算為例,“手算”的過(guò)程如圖3-2所示。 圖3-2 無(wú)符號(hào)數(shù)二進(jìn)制乘法的過(guò)程 進(jìn)行“手算”過(guò)程的時(shí)候,將乘積項(xiàng)中所有的乘數(shù)和被乘數(shù)中的某一位的乘積全 都計(jì)算之后進(jìn)行累加的操作,它所對(duì)應(yīng)地硬件的實(shí)現(xiàn)方法叫做陣列實(shí)現(xiàn),這種方法在 速度上相對(duì)較快,但是耗費(fèi)資源大。乘法器中的每一個(gè)位的輸出均可寫成2個(gè)操作數(shù)地 邏輯函數(shù),由于操作數(shù)的位寬會(huì)不斷的增加,這樣將會(huì)使乘法器的電路變的越來(lái)越復(fù) 雜,實(shí)現(xiàn)起來(lái)會(huì)比較的困難。 在進(jìn)行“手算”的過(guò)程時(shí),也可在每次算出1個(gè)乘積后,就將它加到乘積里,我們 把這時(shí)的積稱作部分積。如果在硬件實(shí)現(xiàn)時(shí)乘數(shù)與乘積項(xiàng)相應(yīng)位對(duì)齊,也就是將乘積 項(xiàng)左移,被乘數(shù)位寬與加法運(yùn)算寬度相同,這樣實(shí)現(xiàn)起來(lái)會(huì)比較不容易。習(xí)慣的方法 是將部分積進(jìn)行右移操作,乘積項(xiàng)與部分積的高位部分進(jìn)行相加,圖3-3所示的為運(yùn)算 原理,圖3-4所示的為運(yùn)算流程。通過(guò)這樣的方法來(lái)實(shí)現(xiàn)乘法器,我們通常將其稱為移 位相加乘法器,由圖3-3和圖3-4可見(jiàn),將被乘數(shù)存放在A寄存器中,乘數(shù)存放在B寄存 器中,同時(shí)B寄存器將作為部分積的低位部分,部分積的高位部分存儲(chǔ)在D寄存器中, 初始時(shí)先進(jìn)行清零操作,兩數(shù)相加要考慮到進(jìn)位的存在,進(jìn)位用一位C寄存器來(lái)保存。 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 17 圖3-3 移位相加乘法運(yùn)算原理 圖3-4 移位相加乘法程序流程圖 其運(yùn)算的原理為:從最低位的寄存器B即乘數(shù)開(kāi)始,如果為0,則部分積高位寄存 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 18 器D內(nèi)的值將與0進(jìn)行相加運(yùn)算,D寄存器內(nèi)的值不改變。如果為1,則將部分積高位寄 存器D內(nèi)的值與被乘數(shù)A進(jìn)行相加運(yùn)算,寄存器D存放運(yùn)算的結(jié)果,寄存器C存放進(jìn)位。 然后將和值、進(jìn)位、部分積低位部分向右移1位,從而算出進(jìn)行一次運(yùn)算后的結(jié)果。在 進(jìn)行右移之后乘數(shù)的次低位這時(shí)處在最低位,己用過(guò)的乘數(shù)位舍棄掉,不斷重復(fù)上述 的運(yùn)算過(guò)程,一直到乘數(shù)的最高位移出B寄存器。 在進(jìn)行上述的乘法器的實(shí)現(xiàn)時(shí),乘數(shù)寄存器與某些積低位部分共同使用,在乘數(shù) 寄存器右移后空出的高位部分正好可以存放部分積的低位部分,節(jié)省了資源。 符號(hào)數(shù)相乘可以將數(shù)值部分和符號(hào)部分進(jìn)行分別的處理操作,即:符號(hào)部分異或, 數(shù)值部分絕對(duì)值進(jìn)行相乘。這樣的方法便于實(shí)現(xiàn)二進(jìn)制原碼表示的數(shù);針對(duì)于二進(jìn)制 反碼所表示的數(shù),我們只需要把操作數(shù)按條件進(jìn)行取反就可以,實(shí)現(xiàn)起來(lái)也比較的容 易。對(duì)于二進(jìn)制補(bǔ)碼所表示的數(shù),考慮到資源耗費(fèi)以及時(shí)延等等原因,這樣的方法不 適用于二進(jìn)制補(bǔ)碼所表示的兩個(gè)數(shù)進(jìn)行乘法的運(yùn)算。 乘數(shù)為: 1210 NN BBBB B 補(bǔ) 若被乘數(shù)為:, 1210 NN AAAA A 補(bǔ) 乘積為:。 CA B 補(bǔ)補(bǔ) 乘數(shù)B可表示為: (3.3) 1210 1210 2222 NN NN BBBBB 因而它的乘積我們可如下表示: (3.4) 1210 1210 1210 1210 (2222 ) 2 2 2 2 NN NN NN NN CA B ABBBB BABABABA 補(bǔ)補(bǔ) 補(bǔ) 補(bǔ)補(bǔ)補(bǔ)補(bǔ) 根據(jù)這個(gè),符號(hào)數(shù)的乘法也就不難實(shí)現(xiàn)了。在對(duì)高位進(jìn)行計(jì)算的時(shí)候,我們需要 對(duì)它進(jìn)行一些特殊的減操作過(guò)程,因而,便不可避免它的一些復(fù)雜程度上的邏輯設(shè)計(jì)。 我們以下介紹的是運(yùn)用Booth算法將最高位也就是符號(hào)位進(jìn)行數(shù)據(jù)位考慮,可以省掉一 些比較特殊的減操作。如果乘數(shù)和被乘數(shù)不變的話,式3.3可轉(zhuǎn)變?yōu)椋?11 1210 12 1223 10 100 22 ()2() 2 () 2(0) 2 N NN NN NNNN BBBBB BBBB BBB (3.5) 1 11 1 0,00 () 2(2 ) NN nn nnn nAn BBE 式3.5中, 11 ,0(1) ,0, nnn EBBnNB 乘積補(bǔ)碼結(jié)果為: 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 19 (3.6) N-1 n=0 =( ) 2 n n CA BEA 補(bǔ)補(bǔ)補(bǔ) 以上就是Booth的算法,在這樣的處理方式過(guò)程當(dāng)中,對(duì)于最高位我們不需要再進(jìn) 行一些特殊的處理,算法通過(guò)對(duì)本位和相鄰低位的編過(guò)程,來(lái)確定運(yùn)算量為0還是B, 操作是加或者還是減,有N項(xiàng)編碼項(xiàng),有N項(xiàng)乘積項(xiàng)。進(jìn)行這樣的處理方式時(shí),其中的 每一個(gè)過(guò)程都要進(jìn)行編碼,讓門延遲增加,相對(duì)(3.4) 式來(lái)說(shuō)更復(fù)雜,但是只要對(duì)該 算法進(jìn)行一些改進(jìn),便能得到一個(gè)較理想的算法,即高基Booth算法。為了實(shí)現(xiàn)兩個(gè)用 12位二進(jìn)制補(bǔ)碼表示的有符號(hào)的相乘,可以根據(jù)布斯(Booth)乘法器的原理,用移位 相加的方式實(shí)現(xiàn)。 3.3 使用 Matlab 設(shè)計(jì)濾波器 基于 FPGA 來(lái)設(shè)計(jì)的 FIR 濾波器,由于設(shè)計(jì)的平臺(tái)是 Quartus II,不同于軟件開(kāi) 發(fā)的環(huán)境,濾波器的效果并不能明確的顯示,因此,需要在設(shè)計(jì)之前用軟件的平臺(tái)來(lái) 仿真分析。 Matlab(Matrix-Laboratory)是矩陣實(shí)驗(yàn)室的意思??蛇M(jìn)行數(shù)學(xué)的計(jì)算、算法開(kāi) 發(fā)、仿真、原型、建模、數(shù)據(jù)的采集、數(shù)據(jù)的分析、可視化科學(xué)以及工程圖形應(yīng)用程 序的開(kāi)發(fā)等等,包括用戶界面圖形的創(chuàng)建等一系列的工作。Matlab 是 Mathworks 公司 研發(fā)的工具,是一個(gè)專門為計(jì)算科學(xué)和工程而設(shè)計(jì)地一種比較高級(jí)的交互式的軟件包。 Matlab 集成了精確的數(shù)值計(jì)算以及圖示工具,它能夠完成各種各樣的數(shù)據(jù)處理以及數(shù) 據(jù)計(jì)算的很強(qiáng)大的工具。Matlab 可以應(yīng)用在很多的領(lǐng)域,比如物理、化學(xué)、數(shù)學(xué)、醫(yī) 藥、工程、金融等等。同時(shí)它也是一個(gè)非常優(yōu)秀的教學(xué)工具。 1.matlab 主要的特點(diǎn)主要有: 1)輸入輸出的格式化數(shù)據(jù)以及與用其他的語(yǔ)言編寫的程序相結(jié)合的能力 2)基于 HTML 的完全幫助系統(tǒng) 3)有大量的數(shù)學(xué)函數(shù)事先定義完成的,而且擁有用戶自定義函數(shù)的能力 4)具有強(qiáng)有力的面向向量/矩陣的高級(jí)程序設(shè)計(jì)的語(yǔ)言,適合于個(gè)人應(yīng)用 5)由于具有高性能的數(shù)值計(jì)算的高級(jí)算法從而特別適合于代數(shù)矩陣的領(lǐng)域 6)顯示數(shù)據(jù)及繪圖,并且具有教育、藝術(shù)學(xué)和科學(xué)的圖解 7)擁有各種工具箱,能夠在多個(gè)應(yīng)用領(lǐng)域幫助人們解決疑難問(wèn)題 開(kāi)放性使用 MATLAB 深受廣大用戶的歡迎。除內(nèi)部的函數(shù)外,所有 MATLAB 主包文 件和各種工具包都是可讀可修改的文件,用戶通過(guò)對(duì)源程序的修改或加入自己編寫程 序構(gòu)造新的專用工具包。firrcos()用于設(shè)計(jì)具有光滑,正弦過(guò)渡帶的低通線性相位濾 波器。filter()用于實(shí)現(xiàn) FIR 濾波器以及 IIR 濾波器濾波,我們經(jīng)常用它來(lái)計(jì)算數(shù)字 濾波器針對(duì)輸入地響應(yīng)。fftfilt()運(yùn)用一種高效率地、使用 FFT 的重疊相加的算法來(lái) 實(shí)現(xiàn)對(duì)數(shù)據(jù)的濾波,這樣的函數(shù)僅僅適用設(shè)計(jì) FIR 濾波器的過(guò)程中。freqz(),用來(lái)求 頻率的響應(yīng),而且還提供了各種各樣的函數(shù)的窗函數(shù)進(jìn)行選擇使用,例如凱塞窗函數(shù) 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 20 kaiser(),海明窗函數(shù) hamming(),我們?cè)谠O(shè)計(jì)的過(guò)程中可以選擇性的使用,不再需要 我們親自設(shè)計(jì)窗函數(shù)。 3.3.1 Matlab 來(lái)設(shè)計(jì) FIR 型帶通濾波器 在進(jìn)行硬件描述的時(shí)程序需要的帶通濾波器的參數(shù)我們通過(guò)使用 Matlab 里面的 FDATOOL 工具來(lái)得到。 FDA TOOL 是 Matlab 里的一個(gè)專門用來(lái)設(shè)計(jì)數(shù)字濾波器的軟件模塊,它的功能強(qiáng)大, 操作簡(jiǎn)單,可以設(shè)計(jì)出多種濾波器。打開(kāi)軟件選擇帶通濾波器,帶通 100Mhz,最小阻 帶衰減-35db 帶內(nèi)波動(dòng)小于 2db,設(shè)計(jì)出符合設(shè)計(jì)指標(biāo)的線性相位的 20 階 FIR 帶通濾 波器參數(shù)設(shè)置如圖 3-5 所示: 圖 3-5 20 階 FIR 帶通濾波器特征參數(shù) 圖 3-6 FIR 濾波器的幅頻響應(yīng) 第 3 章 基于 FPGA 設(shè)計(jì) FIR 濾波器 21 圖 3-7 FIR 濾波器的相頻響應(yīng) 圖 3-8 FIR 濾波器的沖激響應(yīng) 圖 3-9 濾波器特征參數(shù) 對(duì) FIR 濾波器的系數(shù)進(jìn)行調(diào)整,使整數(shù)化。具體方法是:將系數(shù)全部擴(kuò)大 2 倍, 然后乘以相同倍數(shù) 256 即 2 的 8 次方,將得到的結(jié)果取整。 可得 FIR 濾波器的系數(shù)為:10 -14 -13 6 -8 31 58 -85 -107 119 119 -107 - 85 58 31 -8 6 -13 -14 10。 中南大學(xué)本科生畢業(yè)論文第 4 章 IIR 帶通濾波器的 VHDL 描述及仿真 22 第 4 章 FIR 濾波器的軟件描述及仿真 描述一個(gè) FIR 濾波器最簡(jiǎn)單的方法,就是用卷積和表示: ( 4.1) N n knxkhny 0 N 階 FIR 直接型結(jié)構(gòu)如圖 4-1 所示: 圖 4-1 N 階 FIR 直接型結(jié)構(gòu)圖 而線性 FIR 濾波器的實(shí)現(xiàn)結(jié)構(gòu)可進(jìn)一步簡(jiǎn)化為圖 4-2 所示模型(以 N=6 階為例) 圖 4-2 FIR 濾波器簡(jiǎn)化模型 4.1 FIR 型帶通濾波器總體結(jié)構(gòu) 利用上面所編寫的 16 位加法器,8 位乘法器以及延時(shí)器,我們可以組合出所需的 FIR 帶通濾波器。程序中主要是運(yùn)用元件例化語(yǔ)句來(lái)實(shí)現(xiàn)一個(gè)結(jié)構(gòu)化的描述,系統(tǒng)函數(shù)通過(guò)調(diào) 用 16 位加法器,8 位乘法器及延時(shí)器等模塊來(lái)構(gòu)成 FIR 帶通濾波器。具體的調(diào)用層次見(jiàn) 圖 4-12 所示。 中南大學(xué)本科生畢業(yè)論文第 4 章 IIR 帶通濾波器的 VHDL 描述及仿真 23 圖4-3 FIR型帶通濾波器的結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際產(chǎn)權(quán)交易法律協(xié)調(diào)機(jī)制構(gòu)建考核試卷
- 保健食品營(yíng)養(yǎng)素?cái)z入與慢性病預(yù)防考核試卷
- 區(qū)塊鏈在支付安全中的應(yīng)用考核試卷
- 紙張防偽技術(shù)考核試卷
- 五金店客戶關(guān)系管理的風(fēng)險(xiǎn)防范考核試卷
- 技術(shù)狀態(tài)管理的核心原理
- 產(chǎn)品合作協(xié)議書13篇
- 企業(yè)職員個(gè)人工作總結(jié)15篇
- 保安公司年度工作總結(jié)11篇
- 水果干活動(dòng)策劃方案
- 港口裝卸作業(yè)培訓(xùn)
- 鉗工考試試題及答案
- 2025年廣東省佛山市順德區(qū)中考二模物理試題(含答案)
- 研發(fā)項(xiàng)目變更管理制度
- 2024-2025學(xué)年下學(xué)期小學(xué)數(shù)學(xué)人教版三年級(jí)期末必刷常考題之復(fù)式統(tǒng)計(jì)表
- 2025至2030中國(guó)復(fù)印機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 暑假安全家長(zhǎng)會(huì)4
- 瑞幸大學(xué)題目及答案
- 消防監(jiān)督檢查員崗位技能考核題庫(kù)
- 2024年安徽省泗縣衛(wèi)生局公開(kāi)招聘試題帶答案
- 2025年云南省中考生物試卷真題(含標(biāo)準(zhǔn)答案)
評(píng)論
0/150
提交評(píng)論