版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)字信號(hào)處理課程設(shè)計(jì)</p><p> 題 目:基于DSP Builder的FIR數(shù)字濾波器的仿真設(shè)計(jì)</p><p> 基于DSP Builder的FIR數(shù)字濾波器的仿真設(shè)計(jì)</p><p> 摘要:數(shù)字濾波器是數(shù)字信號(hào)處理中的核心環(huán)節(jié),而FIR數(shù)字濾波器因其具有嚴(yán)格的線性相位,系統(tǒng)總是穩(wěn)定等特點(diǎn)而廣泛應(yīng)用于數(shù)字信號(hào)處理的各個(gè)領(lǐng)域
2、,因此是一個(gè)重要的研究課題。隨著微電子技術(shù)的發(fā)展,數(shù)字信號(hào)處理得到了飛速發(fā)展。數(shù)字濾波器是譜分析、雷達(dá)信號(hào)處理、通信信號(hào)處理應(yīng)用中的基本處理算法,在數(shù)字音頻、圖像處理、數(shù)據(jù)傳輸、生物醫(yī)學(xué)等領(lǐng)域得到了廣泛應(yīng)用。</p><p> 本文內(nèi)容包括FIR數(shù)字濾波器的網(wǎng)絡(luò)結(jié)構(gòu)、線形相位條件和特點(diǎn)以及設(shè)計(jì)方法、基于MATLAB/Simulink的DSP設(shè)計(jì)技術(shù)、詳細(xì)的設(shè)計(jì)流程向?qū)?、ModelSim仿真等。本文通過一個(gè)設(shè)計(jì)實(shí)
3、例,提出了一種采用DSP Builder實(shí)現(xiàn)有限沖激響應(yīng)濾波器的設(shè)計(jì)方案,并以一個(gè)20階低通數(shù)字濾波器的實(shí)現(xiàn)為例,設(shè)計(jì)并完成軟件仿真與驗(yàn)證。</p><p> 通過仿真與驗(yàn)證,本系統(tǒng)所設(shè)計(jì)的數(shù)字濾波器能夠成功運(yùn)行,且所設(shè)計(jì)濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用FPGA進(jìn)行數(shù)字濾波器的開發(fā)時(shí),采用基于Matlab環(huán)境的DSP Builder作為設(shè)計(jì)工具可以更方便的建立模型,完成整個(gè)設(shè)計(jì)。</p&g
4、t;<p> 關(guān)鍵詞:MATLAB;數(shù)字濾波器;DSP Builder;仿真</p><p> The Design Of The FIR Digital Filter</p><p> Based On DSP Builder</p><p> Abstract: Digital filter algorithm is one of the
5、core techniques in signal processing. The FIR digital filter has been widely used in signal processing field because of its strict linear phase and stability. With the development of microelectronics technology, digital
6、signal processing has made rapid development. Digital filter is the basic processing algorithms in respect of spectral analysis, radar signal processing and communications signal processing applications, and receive wide
7、ly applicat</p><p> This content includes FIR digital filter network structure, linear-phase conditions, characteristics, design methods, DSP design technology of MATLAB-based, detailed design flow guide an
8、d ModelSim simulation and so on. This paper posed a design example through using the DSP Builder realize Finite Impulse Response Filter and complete hardware design simulation and verification as an example by the realiz
9、ation of 24-step low-pass digital FIR filter.</p><p> Through simulation and verification, the system of the digital filter designed can run successfully, and the designed filter has good stability, high ac
10、curacy, less susceptible to environmental impacts. In the use of FPGA for the development of digital filters using Matlab-based environment as a design tool for DSP Builder can be more convenient to create models, and to
11、 complete the whole design.</p><p> Key words: MATLAB; Digital filter; DSP Builder; Simulation.</p><p><b> 目錄</b></p><p><b> 一、前言1</b></p><p&g
12、t; ?。ㄒ唬?shù)字濾波器的概念以及分類1</p><p> (二)FIR和IIR濾波器的比較1</p><p> 二、FIR數(shù)字濾波器的原理3</p><p> 六、DSP Builder設(shè)計(jì)流程14</p><p> 七、基于DSP Builder設(shè)計(jì)FIR數(shù)字濾波器17</p><p> ?。ㄒ唬?/p>
13、3階常系數(shù)FIR濾波器的設(shè)計(jì)17</p><p> (二)4階FIR濾波器節(jié)的設(shè)計(jì)21</p><p> (三)20階FIR濾波器模型設(shè)計(jì)25</p><p> 八、基于MATLAB的濾波器設(shè)計(jì)工具30</p><p> (一)濾波器指標(biāo)30</p><p> ?。ǘ┐蜷_MATLAB的FDATOOL
14、30</p><p> ?。ㄈ┻x擇DESIGN FILTER31</p><p> ?。ㄋ模V波器分析33</p><p><b> (五)量化36</b></p><p> ?。?dǎo)出濾波器系數(shù)39</p><p> ?。ㄆ撸┬薷腇IR濾波器模型添加參數(shù)41</p>
15、<p> ?。ò耍?dǎo)出濾波器系數(shù)的另一種方法41</p><p><b> 九、結(jié)束語43</b></p><p><b> 一、前言</b></p><p> ?。ㄒ唬?shù)字濾波器的概念以及分類</p><p> 所謂數(shù)字濾波器是指輸入輸出均為數(shù)字信號(hào),通過一定的運(yùn)算關(guān)系改變
16、輸入信號(hào)中所含頻率成分的相對(duì)比例或者濾除某些頻率成分的器件。常用的濾波器有無限長單位脈沖響應(yīng)(IIR)濾波器和有限長單位脈沖響應(yīng)(FIR)濾波器兩種。其中,F(xiàn)IR濾波器能提供理想的線性相位響應(yīng),在整個(gè)頻帶上獲得常數(shù)群延時(shí)從而得到零失真輸出信號(hào),同時(shí)它可以采用十分簡單的算法實(shí)現(xiàn),這兩個(gè)優(yōu)點(diǎn)使FIR濾波器成為設(shè)計(jì)的首選。采用一種基于DSP Builder 的FPGA設(shè)計(jì)方法,使FIR濾波器設(shè)計(jì)較為簡單易行,并能滿足設(shè)計(jì)要求。</p&g
17、t;<p> 設(shè)FIR濾波器單位脈沖響應(yīng)長度為N,其系統(tǒng)函數(shù)為:</p><p><b> ?。?-1)</b></p><p> 是的(N-1)次多項(xiàng)式,它在z平面上有(N-1)個(gè)零點(diǎn),原點(diǎn)z=0是(N-1)階重極點(diǎn)。因此,永遠(yuǎn)穩(wěn)定。穩(wěn)定和線性相位特性是FIR濾波器突出的優(yōu)點(diǎn)。</p><p> ?。ǘ〧IR和IIR濾波器
18、的比較</p><p> 在很多實(shí)際應(yīng)用中如語音和音頻信號(hào)處理中,數(shù)字濾波器來實(shí)現(xiàn)選頻功能。因此,指標(biāo)的形式應(yīng)為頻域中的幅度和相位響應(yīng)。在通帶中,通常希望具有線性相位響應(yīng)。在FIR濾波器中可以得到精確的線性相位。在IIR濾波器中通常的相位是不可能得到的,因此主要考慮幅度指標(biāo)。IIR數(shù)字濾波器的設(shè)計(jì)和模擬濾波器的設(shè)計(jì)有著密切的聯(lián)系。通常要設(shè)計(jì)出適當(dāng)?shù)哪M濾波器,再通過一定的頻帶變換把它轉(zhuǎn)換成所需要的數(shù)字IIR濾波
19、器。此外,任何數(shù)字信號(hào)處理系統(tǒng)中也還不可避免地用到模擬濾波器,因此模擬濾波器設(shè)計(jì)也是數(shù)字信號(hào)應(yīng)該掌握的技術(shù)。</p><p> FIR濾波器的設(shè)計(jì)方法和IIR濾波器的設(shè)計(jì)方法有很大的不同。FIR濾波器設(shè)計(jì)任務(wù)是選擇有限長度的,使傳輸函數(shù)滿足技術(shù)要求。</p><p> 在設(shè)計(jì)和實(shí)現(xiàn)上FIR濾波器具有如下優(yōu)越性:</p><p> (1) 相應(yīng)相位可為嚴(yán)格線性,
20、因此它不存在延遲失真,只有固定的時(shí)間延遲;</p><p> (2) 由于不存在穩(wěn)定性問題,所以設(shè)計(jì)相對(duì)簡單;</p><p> (3) 只包含實(shí)數(shù)算法,不涉及復(fù)數(shù)算法,不需要遞推運(yùn)算,長度為M的濾波器(階數(shù)為M-1)它的計(jì)算值約為M/2。</p><p> 二、FIR數(shù)字濾波器的原理</p><p> 對(duì)于一個(gè)FIR濾波器系統(tǒng)而言,
21、它的沖激響應(yīng)總是有限長的,其系統(tǒng)函數(shù)可以記為:</p><p><b> ?。?-1)</b></p><p> 其中M是FIR濾波器的零點(diǎn)數(shù),即延時(shí)節(jié)數(shù),在這里被稱為FIR濾波器的節(jié)數(shù)。</p><p> 最基本的FIR濾波器可用下式表示:</p><p><b> ?。?-2)</b><
22、;/p><p> 其中是輸入采樣序列,是濾波器系數(shù),L是濾波器的系數(shù)長度,表示濾波器的輸出序列。</p><p> 也可以用卷積來表示輸出序列與、的關(guān)系。</p><p><b> (2-3)</b></p><p> 圖2-1中顯示了一個(gè)典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p>
23、<p><b> ?。?-4)</b></p><p> 圖2-1 4階FIR濾波器結(jié)構(gòu)</p><p> 在這個(gè)FIR濾波器中,總共存在3個(gè)延時(shí)節(jié),4個(gè)乘法單元,一個(gè)4輸入的加法器。如果采用普通的數(shù)字信號(hào)處理器(DSP Processor)來實(shí)現(xiàn),只能用串行的方式順序的執(zhí)行延時(shí),乘加操作,這不可能在一個(gè)DSP(指數(shù)字信號(hào)處理器)指令周期內(nèi)完成,必須用
24、多個(gè)指令周期來完成。</p><p> 但是,如果采用FPGA來實(shí)現(xiàn),就可以采用并行結(jié)構(gòu),在一個(gè)時(shí)鐘周期內(nèi)得到一個(gè)FIR濾波器的輸出。</p><p> 六、DSP Builder設(shè)計(jì)流程</p><p> DSP Builder是一個(gè)系統(tǒng)級(jí)(或算法級(jí))設(shè)計(jì)工具,它架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級(jí)和RTL級(jí)兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,最大程度發(fā)揮了兩種工
25、具的優(yōu)勢(shì)。DSP Builder依賴于Math Works公司數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過SignalCompiler可以把Matlab/Simulink的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對(duì)后者的處理可以由FPGA/CPLD開發(fā)工具Quartus,
26、DSP Builder針對(duì)不同情況提供了兩套設(shè)計(jì)流程,即自動(dòng)流程和手動(dòng)流程。</p><p> 圖6-1是利用DSP Builder進(jìn)行DSP設(shè)計(jì)的流程框圖。</p><p> 如圖6-1所示,DSP Builder設(shè)計(jì)流程第一步是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入,即在Matlab的Simulink環(huán)境中建立一個(gè)mdl模型文件,用圖形方式調(diào)用Altera DSP Buil
27、der和其它Simulink庫中的圖形模塊(Block),構(gòu)成系統(tǒng)級(jí)或算法級(jí)設(shè)計(jì)框圖(或稱Simulink設(shè)計(jì)模型)。</p><p> 第二步是利用Simulink強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計(jì)模型的正確性,完成模型仿真。</p><p> 在這兩步中,與一般的Matlab Simulink建模過程幾乎沒有什么區(qū)別,所不同的是設(shè)計(jì)模型庫采用Altera DSP Builder
28、的Simulink庫,也不涉及到其它EDA軟件,沒有自動(dòng)流程和手動(dòng)流程的區(qū)別。</p><p> 圖6-1 DSP Builder設(shè)計(jì)流程</p><p> 為了針對(duì)不同用戶的設(shè)計(jì)目的和設(shè)計(jì)要求,DSP Builder提供了兩種不同的設(shè)計(jì)流程,主要可以分為自動(dòng)流程和手動(dòng)流程。</p><p> 在手動(dòng)流程中,設(shè)計(jì)者可以靈活地指定綜合、適配條件。不過,需要手動(dòng)的
29、調(diào)用VHDL綜合器進(jìn)行綜合,調(diào)用Quartus進(jìn)行適配,調(diào)用ModelSim或者Quartus進(jìn)行仿真,最后用Quartus產(chǎn)生相應(yīng)的編程文件用于FPGA的配置。</p><p> 采用手動(dòng)流程時(shí),除了行為級(jí)仿真驗(yàn)證和設(shè)計(jì)輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計(jì)流程完全是一致的。由上一步的DSP Builder設(shè)計(jì)流程得到VHDL文件(由Simulink模型文件.mdl通過SignalCompiler轉(zhuǎn)
30、換而成),送入綜合器進(jìn)行綜合。綜合器可以是SynplifyPro,也可以是LelnardoSpectrum,或者采用Altera自己的Quartus。在綜合時(shí),可能需要對(duì)綜合器進(jìn)行配置或者提供綜合的約束條件。由于這個(gè)過程操作可能比較繁瑣,所以DSP Builder的SignalCompiler相應(yīng)提供了一個(gè)接口,針對(duì)設(shè)計(jì),自動(dòng)產(chǎn)生一個(gè)TCL腳本與綜合器Synplify或者LelnardoSpectrum相接。綜合器在綜合操作后會(huì)產(chǎn)生一個(gè)
31、網(wǎng)表文件,以供下一個(gè)流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖6-1所示),主要是EDIF一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏LCs、I/O單元、乘積項(xiàng)、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。</p><p> 如果用DSP Builder產(chǎn)生的DSP模型只是龐大設(shè)計(jì)中的一個(gè)子模塊,則可以在設(shè)計(jì)中調(diào)用DSP Builder產(chǎn)生的VHDL文件,以構(gòu)成完整的設(shè)計(jì)。同時(shí),一樣可以使用Quar
32、tus強(qiáng)大的LogicLock功能和SignalTap測(cè)試技術(shù)。</p><p> 在圖6-1的流程中,其中有個(gè)流程在DSP設(shè)計(jì)中是不可或缺的,那就是HDL仿真。與DSP Builder可以配合使用的HDL仿真器是ModelSim。DSP Builder在生成VHDL代碼時(shí),可以同時(shí)生成用于測(cè)試DSP模塊的TestBench(測(cè)試平臺(tái))文件,DSP Builder生成的TestBench文件采用VHDL 語言,
33、測(cè)試向量與該DSP模塊在Simulink中的仿真激勵(lì)相一致。通過ModelSim仿真生成的TestBench可以驗(yàn)證生成的VHDL代碼與Simulink中DSP模型的一致性。另外,DSP Builder在產(chǎn)生TestBench的同時(shí),還產(chǎn)生了針對(duì)ModelSim仿真的Rcl腳本來簡化用戶的操作,掩蓋ModelSim仿真時(shí)的復(fù)雜性。</p><p> 七、利用DSP Builder設(shè)計(jì)FIR數(shù)字濾波器</p
34、><p> 圖7-1中顯示了一個(gè)典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p><p><b> ?。?-1)</b></p><p> 圖7-1 4階FIR濾波器結(jié)構(gòu)</p><p> 在這個(gè)FIR濾波器中,總共存在3個(gè)延時(shí)節(jié),4個(gè)乘法單元,一個(gè)4輸入的加法器。如果采用普通的數(shù)字信號(hào)處理器(DSP
35、Processor)來實(shí)現(xiàn),只能用串行的方式順序地執(zhí)行延時(shí),乘加工作,這不可能在一個(gè)DSP(指數(shù)字信號(hào)處理器)指令周期內(nèi)完成,必須用多個(gè)指令周期來完成。</p><p> 但是,如果采用FPGA來實(shí)現(xiàn),就可以采用并行結(jié)構(gòu),在一個(gè)時(shí)鐘周期內(nèi)得到一個(gè)FIR濾波器的輸出。</p><p> 使用DSP Builder可以方便地在圖形化環(huán)境中設(shè)計(jì)FIR數(shù)字濾波器,而且濾波器系數(shù)的計(jì)算可以幫助M
36、atlab強(qiáng)大的計(jì)算能力和現(xiàn)成的濾波器設(shè)計(jì)工具來完成。</p><p> ?。ㄒ唬?階常系數(shù)FIR濾波器的設(shè)計(jì)</p><p> 在此用以下示例來說明整個(gè)設(shè)計(jì)過程。</p><p> 假定一個(gè)3階的FIR濾波器,其可以表示為:</p><p> 其中:,,,,是量化時(shí)附加的因子。</p><p> 這里采用直接
37、I型來實(shí)現(xiàn)FIR濾波器。設(shè)計(jì)好的3階直接I型FIR濾波器模型圖可以參見圖7-2。</p><p> 圖7-2 3階FIR濾波器</p><p> 圖中模塊的參數(shù)作如下設(shè)置:</p><p> Xin模塊:(Altbus)</p><p> 庫:Altera DSP Builder中Bus Manipulation庫</p&g
38、t;<p> 參數(shù)“Bus Type”設(shè)為“signed integer”</p><p> 參數(shù)“Node Type”設(shè)為“Input port”</p><p> 參數(shù)“number of bits”設(shè)為“8”</p><p> Yout模塊:(Altbus)</p><p> 庫:Altera DSP Build
39、er中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed integer”</p><p> 參數(shù)“Nope Type”設(shè)為“Output port”</p><p> 參數(shù)“number of bits”設(shè)為“8”</p><p> Parallel Adder Subtractor模塊
40、:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Builder中Arithmetic庫</p><p> “Add(+)Sub(-)”設(shè)為“++++”</p><p> Delay1,Delay2,Delay3模塊:(Delay)</p><p> 庫:Altera DSP Bu
41、ilder中Storage庫</p><p> 參數(shù)“Depth”設(shè)為“1”</p><p> 參數(shù)“Clock Phase Selection”設(shè)為“1”</p><p> h0模塊:(Gain)</p><p> 庫:Altera DSP Builder 中Arithemtic庫</p><p> 參數(shù)“
42、Gain Value”設(shè)為“63”</p><p> 參數(shù)“Map Gain Value to Bus Type”設(shè)為“Signed Integer”</p><p> 參數(shù)“Gate Value number of bits”設(shè)為“8”</p><p> 參數(shù)“Number of Pipeline Levels”設(shè)為“0”</p><p
43、> h1模塊:(Gain)</p><p> 參數(shù)“Gain Value”設(shè)為“127”</p><p><b> 其余同h(0)模塊</b></p><p> h2模塊:(Gain)</p><p> 參數(shù)“Gain Value”設(shè)為“127”</p><p><b>
44、 其余同h(0)模塊</b></p><p> h3模塊:(Gain)</p><p> 參數(shù)“Gain Value”設(shè)為“63”</p><p><b> 其余同h0模塊。</b></p><p> 由于FIR濾波器的系數(shù)已經(jīng)給定,是一個(gè)常數(shù),從圖中看到,在DSP Builder中可以用Gain(
45、增益)模塊來實(shí)現(xiàn)的運(yùn)算,用延時(shí)Delay模塊來實(shí)現(xiàn)輸入信號(hào)序列的延時(shí)。</p><p> 設(shè)計(jì)完3階FIR濾波器模型后,就可以添加Simulink模塊進(jìn)行仿真了,如圖7-3所示。</p><p> 新增的仿真模塊的參數(shù)作如下設(shè)置:</p><p> Chirp Signal:模塊:(Chirp Signal)</p><p> 庫:S
46、imulink中Sources庫</p><p> 參數(shù)“Initial Frequency(Hz)”設(shè)為“1”</p><p> 參數(shù)“Target time”設(shè)為“10”</p><p> 參數(shù)“Frequency at target time(Hz)”設(shè)為“1”</p><p> 參數(shù)“Interpret vectors par
47、ameter as 1-D ”選中</p><p> Gain 模塊:(Gain)</p><p> 庫:Simulink中Math Operations 庫</p><p> 參數(shù)“Gain”設(shè)為“Element wise(K.*Vu)”</p><p> Scope模塊:(Scope)</p><p>
48、庫:Simulink中sinks庫</p><p> 參數(shù)“Number of Axes”為“2”</p><p> 其中,Chirp Signal模塊為線性調(diào)頻信號(hào)發(fā)生模塊,生成一個(gè)線性調(diào)頻信號(hào)0.1Hz~1Hz。</p><p> 在該模型仿真中,使用默認(rèn)的仿真參數(shù)。</p><p> ?。ǘ?階FIR濾波器節(jié)的設(shè)計(jì)</p&
49、gt;<p> 對(duì)于直接I型FIR濾波器是可以級(jí)聯(lián)的,結(jié)構(gòu)見圖7-4,也就是說,在濾波器系數(shù)可改變的情況下,可以預(yù)先設(shè)計(jì)好一個(gè)FIR濾波器節(jié),在實(shí)際應(yīng)用中通過不斷地調(diào)用FIR濾波器節(jié),將其級(jí)聯(lián)起來,用來完成多階FIR濾波器的設(shè)計(jì)。</p><p> 圖7-4 直接I型FIR濾波器結(jié)構(gòu)</p><p> 圖7-5是一個(gè)直接I型的4階FIR濾波器節(jié)結(jié)構(gòu)。為了使該濾波器節(jié)的調(diào)
50、用更為方便,在x輸入后插入一個(gè)延時(shí)單元,由3階濾波器演變成一個(gè)4階的,不過常系數(shù)項(xiàng)(系數(shù)項(xiàng))恒為0。由于通信應(yīng)用中,F(xiàn)IR濾波器處理的往往是信號(hào)流,因而,增加一個(gè)延時(shí)單元不會(huì)影響FIR濾波器處理的結(jié)果,只是系統(tǒng)延時(shí)增加了一個(gè)時(shí)鐘周期。</p><p> 圖7-5 直接I型4階FIR濾波器模型</p><p> 對(duì)于該FIR濾波器節(jié),其系統(tǒng)函數(shù)可以用下式來表示:</p>&
51、lt;p><b> (7-2)</b></p><p> 由于浮點(diǎn)小數(shù)在FPGA中實(shí)現(xiàn)比較困難,實(shí)現(xiàn)的代價(jià)太大,因而在DSP Builder中不妨使用整數(shù)運(yùn)算來實(shí)現(xiàn),最后用位數(shù)舍取的方法得到結(jié)果。為了使參數(shù)可變,F(xiàn)IR濾波器系數(shù)、、、也作為輸入端口。在本設(shè)計(jì)中輸入序列的位寬設(shè)為9位。</p><p> 圖7-6顯示的就是一個(gè)設(shè)計(jì)好的4階FIR濾波器節(jié),與圖
52、7-2的常數(shù)FIR濾波器相比,這里運(yùn)用Product(乘法)模塊代替了Gain(增益)模塊。</p><p> 圖7-6 直接I型4階FIR濾波器節(jié)</p><p> 圖7-6中相關(guān)模塊的參數(shù)設(shè)置如下:</p><p> xin、hn1、hn2、hn3、hn4模塊:(Altbus)</p><p> 庫:Altera DSP Buid
53、er中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“Node Type” 設(shè)為“Input port”</p><p> 參數(shù)“number of bits”設(shè)為“9”</p><p> yn模塊:(Altbus)</p>
54、<p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“Node Type” 設(shè)為“output port”</p><p> 參數(shù)“number of bits”設(shè)為“20”</p><p&
55、gt; xn4模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“Node Type” 設(shè)為“output port”</p><p> 參數(shù)“number of
56、 bits”設(shè)為“9”</p><p> Parallel Adder Subtractor模塊:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Buider中Arithmetic庫</p><p> 參數(shù)“Add(+)Sub(-)”設(shè)為“++++”</p><p> 使用“Pip
57、eline”</p><p> 參數(shù)“Clock Phaese Selectioon”設(shè)為“1”</p><p> Delay、Delay1、Delay2、Delay3模塊:(Delay)</p><p> 庫:Altera DSP Buider中Storage庫</p><p> 參數(shù)“Depth”設(shè)為“1”</p>
58、<p> 參數(shù)“Clock Phase Selectioon”設(shè)為“1”</p><p> Product模塊:(Product)</p><p> 庫:Altera DSP Buider中Arithmetic庫</p><p> 參數(shù)“Pipeline”設(shè)為“2”</p><p> 參數(shù)“Clock Phase Sele
59、ctioon”設(shè)為“1”</p><p> 不選擇“Use LPM”</p><p> ?。ㄈ?0階FIR濾波器模型設(shè)計(jì)</p><p> 利用以上設(shè)計(jì)的4階FIR濾波器節(jié)可以方便地搭成4×n階直接I型FIR濾波器(注意:)。比如要實(shí)現(xiàn)一個(gè)20階的低通濾波器,可以調(diào)用5個(gè)4階FIR濾波器來實(shí)現(xiàn)。</p><p> 1.設(shè)計(jì)4
60、階FIR濾波器節(jié)子系統(tǒng)</p><p> 建立一個(gè)新的DSP Builder模型,復(fù)制上節(jié)的FIR4tap模型到新模型。由FIR4tap模型建立子系統(tǒng)(SubSystem),并對(duì)端口信號(hào)進(jìn)行修改,把子系統(tǒng)更名為fir4tap,如圖7-7所示。fir4tap的內(nèi)部結(jié)構(gòu)如圖7-8所示。(建立子系統(tǒng)的方法:選中模塊,在選中模塊上點(diǎn)擊鼠標(biāo)右鍵,在彈出的右鍵菜單中選擇“Create subsystem”。)</p&
61、gt;<p> 圖7-7 fir4tap子系統(tǒng)</p><p> 圖7-8 fir4tap子系統(tǒng)內(nèi)部原理圖</p><p> 2.組成20階FIR濾波器模型</p><p> 復(fù)制5個(gè)fir4tap,并將它們銜接起來。前一及的輸出端口x4接后一級(jí)x輸入端口,并附加上20個(gè)常數(shù)端口,作為FIR濾波器系數(shù)的輸入。把5個(gè)子系統(tǒng)fir4tap的輸入
62、端口y連接起來,接入一個(gè)5輸入端口的加法器,得到FIR濾波器的輸出。</p><p> 注意:在做好子系統(tǒng)后,要修改其Mask參數(shù)MaskType為“SubSystem AlteraBlockSet”。設(shè)計(jì)好的20階濾波器如圖7-9所示。</p><p> 圖7-9 20階直接I型FIR濾波器模型</p><p> 20階直接I型FIR濾波器模型中,對(duì)新增加的
63、模塊作如下設(shè)置:</p><p> xin模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“Node Type” 設(shè)為“Input port”</p>
64、<p> 參數(shù)“number of bits”設(shè)為“9”</p><p> yout模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“Node T
65、ype” 設(shè)為“Output port”</p><p> 參數(shù)“number of bits”設(shè)為“20”</p><p> X24模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”&
66、lt;/p><p> 參數(shù)“Node Type” 設(shè)為“Output port”</p><p> 參數(shù)“number of bits”設(shè)為“9”</p><p> Parallel Adder Subtractor模塊:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Buider中
67、Arithmetic庫</p><p> 參數(shù)“Add(+)Sub(-)”設(shè)為“++++++”</p><p> 使用“Pipeline”</p><p> 參數(shù)“Clock Phaese Selectioon”設(shè)為“1”</p><p> h0、h2、h3、h4、h5、h6、h7、h8、h9、h10、h11、h12、h13、h14、
68、h15、h16、h17、h18、h19、h20、h21、h22、h23模塊:(Delay)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設(shè)為“signed Integer”</p><p> 參數(shù)“number of bits”設(shè)為“9”</p>&l
69、t;p> 不過,在圖7-9中,對(duì)h1~h24統(tǒng)一設(shè)置了一個(gè)值:512,而實(shí)際上濾波器的系數(shù)要根據(jù)具體要求進(jìn)行計(jì)算。在系數(shù)計(jì)算好后,F(xiàn)IR濾波器才能真正應(yīng)用。</p><p> 八、基于MATLAB的濾波器設(shè)計(jì)工具</p><p><b> ?。ㄒ唬V波器指標(biāo)</b></p><p> 若需要設(shè)計(jì)一個(gè)20階的FIR濾波器(h(0)=0
70、),給定的參數(shù)如下:低通濾波器;采樣頻率Fs為48kHz,濾波器Fc為10.8kHz;輸入序列位寬為9位(最高位為符號(hào)位)。</p><p> 在此利用MATLAB來完成FIR濾波器系數(shù)確定。</p><p> ?。ǘ┐蜷_MATLAB的FDATOOL</p><p> MATLAB集成了一套功能強(qiáng)大的濾波器設(shè)計(jì)工具FDATool(Filter Design &
71、amp; Analysis Tool),可以完成多種濾波器的設(shè)計(jì)、分析和性能評(píng)估。</p><p> 點(diǎn)擊MATLAB主窗口下方的“Start”(開始)按鈕,按圖8-1選擇“ToolBox”→“Filter Design”→“Filter Design & Analysis Tool(FDATool)”,打開FDATool,如圖8-2所示。</p><p> 圖8-1 打開的
72、FDATool</p><p> 圖8-2 FDATool界面</p><p> (三)選擇DESIGN FILTER</p><p> FDATool 界面左下側(cè)排列了一組工具按鈕,其功能分別如下所述:</p><p> 濾波器轉(zhuǎn)換(TransForm Filer)</p><p> 設(shè)置量化參數(shù)(Set
73、 Quantization Parameters)</p><p> 實(shí)現(xiàn)模型(Realize Model)</p><p> 導(dǎo)入濾波器(Import Filter)</p><p> 設(shè)計(jì)濾波器(Design Filter)</p><p> 選擇其中的按鈕,進(jìn)入設(shè)計(jì)濾波器界面,進(jìn)行下列選擇:</p><p&g
74、t; 1. 濾波器類型(Filter Type)為低通(Lowpass);</p><p> 2. 設(shè)計(jì)方法(Design Method)為FIR,采用窗口法(Window);</p><p> 3. 濾波器階數(shù)(Filter Order)定制為20;</p><p> 4. 窗口類型為Kaiser,Beta為0.5;</p><p>
75、; 5. Fs為48kHz,F(xiàn)c為10.8kHz。</p><p> 設(shè)置好后的界面見圖8-3。</p><p> 圖8-3 濾波器設(shè)計(jì)界面</p><p> 注意:在濾波器階數(shù)選擇時(shí),在此設(shè)置的是19階,而不是20階!這是由于在前面設(shè)計(jì)的20階FIR濾波器的常系數(shù)項(xiàng)。其系統(tǒng)函數(shù)可用下式來表示:</p><p><b>
76、?。?-1)</b></p><p><b> 顯然上式可以寫成:</b></p><p><b> ?。?-2)</b></p><p> 即可以看成是一個(gè)19階的FIR濾波器的輸出結(jié)果經(jīng)過了一個(gè)單位延時(shí)單元,以在FDATool中把它當(dāng)成19階FIR濾波器來計(jì)算參數(shù)。</p><p&g
77、t; 點(diǎn)擊 Design Filter ,讓MATLAB計(jì)算FIR濾波器系數(shù)并作相關(guān)分析。</p><p><b> (四)濾波器分析</b></p><p> 計(jì)算完FIR濾波器系統(tǒng)分析后,往往需要對(duì)設(shè)計(jì)好的FIR濾波器進(jìn)行相關(guān)的性能分析,以便了解該濾波器是否滿足設(shè)計(jì)要求。分析操作步驟如下:</p><p> 1. 選擇FDATool
78、的菜單“Analysis”→“Magnitude Response”,啟動(dòng)幅頻響應(yīng)分析。圖8-4顯示了濾波器的幅頻響應(yīng)圖,x軸為頻率,y軸為幅度值(單位為dB)。</p><p> 在圖的左側(cè)列出了當(dāng)前濾波器的相關(guān)信息:</p><p> (1)濾波器類型為Direct form FIR(直接I型FIR濾波器)</p><p> (2)濾波器階數(shù)為19<
79、/p><p> 注意:不是每種FIR濾波器設(shè)計(jì)方法計(jì)算出的濾波器都是直接I型結(jié)構(gòu)的。如果在DSP Builder中設(shè)計(jì)的FIR濾波器為直接I型結(jié)構(gòu),那就必須保證再這里顯示的FIR濾波器結(jié)構(gòu)為“Direct form FIR”。</p><p> 圖8-4 FIR濾波器的幅頻響應(yīng)</p><p> 2. 選擇菜單“Analysis”→“Phase Response
80、”,啟動(dòng)相頻響應(yīng)分析。圖8-5顯示了濾波器的相頻響應(yīng)。由圖可以看到設(shè)計(jì)的FIR濾波器在通帶內(nèi)相位響應(yīng)為線性的,即該濾波器是一個(gè)線形相位濾波器。</p><p> 圖8-5 FIR濾波器的相頻響應(yīng)</p><p> 3. 圖8-6顯示了濾波器幅頻特性與相頻特性的比較。這可以通過菜單選擇“Analysis”→“Magnitude﹠Phase Response”來啟動(dòng)分析。</p&g
81、t;<p> 圖8-6 幅頻響應(yīng)與相頻響應(yīng)的比較</p><p> 4. 選擇菜單“Analysis”→“Group Delay Response”,啟動(dòng)群延時(shí)分析,波形如圖8-7所示。</p><p> 圖8-7 群延時(shí)</p><p> 5. 在菜單“Analysis”下還有一些分析:</p><p> (
82、1)“Impulse Response”:沖激響應(yīng),見圖8-8。</p><p> (2) “Step Response”:階躍響應(yīng),見圖8-9。</p><p> (3) “Pole/Zero Plot”:零極點(diǎn)圖,見圖8-10。</p><p> 由于直接I型FIR濾波器只有零點(diǎn),所以在圖8-10中不存在極點(diǎn)。</p><p>
83、圖8-8 FIR濾波器的沖激響應(yīng)</p><p> 圖8-9 FIR濾波器的階躍響應(yīng)</p><p> 圖8-10 FIR濾波器的零極點(diǎn)</p><p> 求出的FIR濾波器的系數(shù)可以通過選擇菜單“Analysis”→“Filter Coefficients”來觀察,見圖8-11。圖中列出了FDATool計(jì)算的19階直接I型FIR濾波器的部分系數(shù)。<
84、;/p><p> 圖8-11 FIR濾波器系數(shù)</p><p><b> (五)量化</b></p><p> 從圖8-11可以看到,F(xiàn)DATool計(jì)算出的值是一個(gè)有符號(hào)小數(shù),而在DSP Builder下建立的FIR濾波器模型需要一個(gè)整數(shù)作為濾波器系數(shù)。所以必須進(jìn)行量化,并對(duì)得到的系數(shù)進(jìn)行歸一化。為此,點(diǎn)擊FDATool左下側(cè)的工具按鈕進(jìn)行
85、量化參數(shù)設(shè)置。在設(shè)置“Turnquantization on”前選擇“√”。如圖8-12所示。</p><p> 圖8-12 量化參數(shù)設(shè)置</p><p> 在濾波器的設(shè)計(jì)指標(biāo)中,已經(jīng)提到FIR濾波器的輸入位寬是9位,表示為有符號(hào)數(shù)。在圖8-12中設(shè)置前4項(xiàng)的量化格式(Format)為“[16 15]”,表示量化后位寬為16位,絕對(duì)值為15位;設(shè)置后2項(xiàng)(乘積、乘積和)的量化格式為
86、“[32 30]”。</p><p> 點(diǎn)擊Optimization按鈕,打開圖8-13所示的對(duì)話框。在此量化優(yōu)化設(shè)置對(duì)話框中選擇相關(guān)的優(yōu)化選項(xiàng)。</p><p> 圖8-13 量化優(yōu)化設(shè)置對(duì)話框</p><p> 圖8-14中顯示了量化后的部分系數(shù)值。注意在這里系數(shù)仍是用小數(shù)表示的,不同于量化前的系數(shù),現(xiàn)在其二進(jìn)制表示的位數(shù)已滿足量化要求。</p&
87、gt;<p> 圖8-14 量化后的系數(shù)值</p><p> 設(shè)計(jì)的FIR濾波器在量化后濾波器的性能會(huì)有所改變,其幅頻響應(yīng)、相頻響應(yīng)也有所變化。圖8-15為量化后的幅頻、相頻響應(yīng)波形圖。</p><p> 圖8-15 量化后的幅頻、相頻響應(yīng)</p><p> 量化在帶來實(shí)現(xiàn)方便的同時(shí)也帶來了量化噪聲,圖8-16顯示了量化帶來的噪聲分析。<
88、;/p><p> 圖8-16 量化后的噪聲分析</p><p> ?。?dǎo)出濾波器系數(shù)</p><p> 為導(dǎo)出設(shè)計(jì)好的濾波器系數(shù),選擇FDATool菜單的“File”→“Export….”,打開導(dǎo)出(Export)對(duì)話框,如圖8-17所示。</p><p> 圖8-17 導(dǎo)出系數(shù)對(duì)話框</p><p> 在該
89、窗口中,選擇導(dǎo)出到工作區(qū)(Workspace)。這時(shí)濾波器系數(shù)就存入到一個(gè)一維變量Num中了,不過這時(shí)Num中的元素是以小數(shù)形式出現(xiàn)的:</p><p><b> Num=</b></p><p> 現(xiàn)在若要在FIR濾波器模型中使用這些數(shù)據(jù),還需要將他們轉(zhuǎn)化為整數(shù),在MATLAB主窗口的命令中鍵入:</p><p> Num*(2^15)
90、</p><p><b> 得到:</b></p><p> >> Num*(2^15)</p><p><b> ans =</b></p><p> Columns 1 through 9 </p><p> -891 1435 1601 -1
91、240 -2504 735 3729 360 -5763</p><p> Columns 10 through 18 </p><p> -3184 11846 27093 27093 11846 -3184 -5763 360 3729</p><p> Columns 19 through 24 </p><
92、p> 735 -2504 -1240 1601 1435 -891</p><p> ?。ㄆ撸┬薷腇IR濾波器模型添加參數(shù)</p><p> 把計(jì)算出的系數(shù)逐個(gè)填入到FIR濾波器模型中,見圖8-18。這樣就完成了一個(gè)20階直接I型FIR低通濾波器的設(shè)計(jì)。</p><p> ?。ò耍?dǎo)出濾波器系數(shù)的另一種方法</p><p>
93、; 按照上面介紹的導(dǎo)出濾波器系數(shù)的方法在FIR濾波器階數(shù)較大時(shí)就不太方便,而且在設(shè)計(jì)要求有所變化時(shí)系數(shù)的修改極為不利??梢园凑找韵路椒▉韺?dǎo)出:</p><p> 把FIR濾波器模型中的h1~h24模塊的參數(shù)“Constant Value(常數(shù)值)”設(shè)置為:</p><p> Num*(2^15)</p><p> 其中Num同上文所述,是FDATool的導(dǎo)出
94、系數(shù),n用具體的數(shù)字來代替,如h1模塊用Num(1)*(2^15),h2模塊用Num(2)*(2^15)。</p><p> 圖8-18 20階低通FIR濾波器</p><p><b> 九、結(jié)束語</b></p><p> 通過仿真與驗(yàn)證,本系統(tǒng)所設(shè)計(jì)的數(shù)字濾波器能夠成功運(yùn)行,且所設(shè)計(jì)濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用F
95、PGA進(jìn)行數(shù)字濾波器的開發(fā)時(shí),采用基于Matlab環(huán)境的DSP Builder作為設(shè)計(jì)工具可以更方便的建立模型,完成整個(gè)設(shè)計(jì)。當(dāng)然,在實(shí)際應(yīng)用中,受精度、速度和器件選擇方面的影響,可以對(duì)其轉(zhuǎn)化的VHDL進(jìn)行進(jìn)一步的優(yōu)化。</p><p> 通過這次畢業(yè)設(shè)計(jì),我不僅鞏固以前所學(xué)的知識(shí),并且又新學(xué)到了不少的有用的知識(shí),不但使我提高了自己的能力也知道了自己的不足。我深刻地認(rèn)識(shí)到,只有單純的理論知識(shí)是不行的,必須多實(shí)踐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--基于dsp 的 fir 數(shù)字濾波器的設(shè)計(jì)
- 數(shù)字信號(hào)課程設(shè)計(jì)---fir數(shù)字濾波器
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--fir數(shù)字濾波器的設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--數(shù)字濾波器
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--數(shù)字濾波器
- dsp課程設(shè)計(jì)fir數(shù)字濾波器
- fir數(shù)字濾波器的dsp課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)-- 用窗函數(shù)法設(shè)計(jì)fir數(shù)字濾波器
- 用窗函數(shù)法設(shè)計(jì)fir數(shù)字濾波器-數(shù)字信號(hào)處理課程設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)---數(shù)字濾波器設(shè)計(jì)及濾波
- 數(shù)字信號(hào)處理課程設(shè)計(jì)-- iir數(shù)字濾波器的設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)報(bào)告--- 數(shù)字濾波器的設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)報(bào)告--fir數(shù)字濾波器設(shè)計(jì)及matlab實(shí)現(xiàn)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)---fir數(shù)字濾波器的矩形窗函數(shù)法設(shè)計(jì)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)---數(shù)字濾波器的設(shè)計(jì)及實(shí)現(xiàn)
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--fir數(shù)字濾波器的凱澤窗函數(shù)法設(shè)計(jì)
- 基于dsp 的fir數(shù)字濾波器設(shè)計(jì)
- 數(shù)字信號(hào)課程設(shè)計(jì)報(bào)告--數(shù)字濾波器設(shè)計(jì)
- matlab課程設(shè)計(jì)---fir數(shù)字濾波器
- 數(shù)字信號(hào)課程設(shè)計(jì)---fir數(shù)字濾波器的(海明)窗函數(shù)法設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論