

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)字信號處理課程設(shè)計</p><p> 題 目:基于DSP Builder的FIR數(shù)字濾波器的仿真設(shè)計</p><p> 基于DSP Builder的FIR數(shù)字濾波器的仿真設(shè)計</p><p> 摘要:數(shù)字濾波器是數(shù)字信號處理中的核心環(huán)節(jié),而FIR數(shù)字濾波器因其具有嚴(yán)格的線性相位,系統(tǒng)總是穩(wěn)定等特點而廣泛應(yīng)用于數(shù)字信號處理的各個領(lǐng)域
2、,因此是一個重要的研究課題。隨著微電子技術(shù)的發(fā)展,數(shù)字信號處理得到了飛速發(fā)展。數(shù)字濾波器是譜分析、雷達(dá)信號處理、通信信號處理應(yīng)用中的基本處理算法,在數(shù)字音頻、圖像處理、數(shù)據(jù)傳輸、生物醫(yī)學(xué)等領(lǐng)域得到了廣泛應(yīng)用。</p><p> 本文內(nèi)容包括FIR數(shù)字濾波器的網(wǎng)絡(luò)結(jié)構(gòu)、線形相位條件和特點以及設(shè)計方法、基于MATLAB/Simulink的DSP設(shè)計技術(shù)、詳細(xì)的設(shè)計流程向?qū)?、ModelSim仿真等。本文通過一個設(shè)計實
3、例,提出了一種采用DSP Builder實現(xiàn)有限沖激響應(yīng)濾波器的設(shè)計方案,并以一個20階低通數(shù)字濾波器的實現(xiàn)為例,設(shè)計并完成軟件仿真與驗證。</p><p> 通過仿真與驗證,本系統(tǒng)所設(shè)計的數(shù)字濾波器能夠成功運行,且所設(shè)計濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用FPGA進(jìn)行數(shù)字濾波器的開發(fā)時,采用基于Matlab環(huán)境的DSP Builder作為設(shè)計工具可以更方便的建立模型,完成整個設(shè)計。</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> ?。ǘ〧IR和IIR濾波器的比較1</p><p> 二、FIR數(shù)字濾波器的原理3</p><p> 六、DSP Builder設(shè)計流程14</p><p> 七、基于DSP Builder設(shè)計FIR數(shù)字濾波器17</p><p> ?。ㄒ唬?/p>
13、3階常系數(shù)FIR濾波器的設(shè)計17</p><p> (二)4階FIR濾波器節(jié)的設(shè)計21</p><p> ?。ㄈ?0階FIR濾波器模型設(shè)計25</p><p> 八、基于MATLAB的濾波器設(shè)計工具30</p><p> ?。ㄒ唬V波器指標(biāo)30</p><p> (二)打開MATLAB的FDATOOL
14、30</p><p> (三)選擇DESIGN FILTER31</p><p> ?。ㄋ模V波器分析33</p><p><b> ?。ㄎ澹┝炕?6</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ù)字信號,通過一定的運算關(guān)系改變
16、輸入信號中所含頻率成分的相對比例或者濾除某些頻率成分的器件。常用的濾波器有無限長單位脈沖響應(yīng)(IIR)濾波器和有限長單位脈沖響應(yīng)(FIR)濾波器兩種。其中,F(xiàn)IR濾波器能提供理想的線性相位響應(yīng),在整個頻帶上獲得常數(shù)群延時從而得到零失真輸出信號,同時它可以采用十分簡單的算法實現(xiàn),這兩個優(yōu)點使FIR濾波器成為設(shè)計的首選。采用一種基于DSP Builder 的FPGA設(shè)計方法,使FIR濾波器設(shè)計較為簡單易行,并能滿足設(shè)計要求。</p&g
17、t;<p> 設(shè)FIR濾波器單位脈沖響應(yīng)長度為N,其系統(tǒng)函數(shù)為:</p><p><b> ?。?-1)</b></p><p> 是的(N-1)次多項式,它在z平面上有(N-1)個零點,原點z=0是(N-1)階重極點。因此,永遠(yuǎn)穩(wěn)定。穩(wěn)定和線性相位特性是FIR濾波器突出的優(yōu)點。</p><p> ?。ǘ〧IR和IIR濾波器
18、的比較</p><p> 在很多實際應(yīng)用中如語音和音頻信號處理中,數(shù)字濾波器來實現(xiàn)選頻功能。因此,指標(biāo)的形式應(yīng)為頻域中的幅度和相位響應(yīng)。在通帶中,通常希望具有線性相位響應(yīng)。在FIR濾波器中可以得到精確的線性相位。在IIR濾波器中通常的相位是不可能得到的,因此主要考慮幅度指標(biāo)。IIR數(shù)字濾波器的設(shè)計和模擬濾波器的設(shè)計有著密切的聯(lián)系。通常要設(shè)計出適當(dāng)?shù)哪M濾波器,再通過一定的頻帶變換把它轉(zhuǎn)換成所需要的數(shù)字IIR濾波
19、器。此外,任何數(shù)字信號處理系統(tǒng)中也還不可避免地用到模擬濾波器,因此模擬濾波器設(shè)計也是數(shù)字信號應(yīng)該掌握的技術(shù)。</p><p> FIR濾波器的設(shè)計方法和IIR濾波器的設(shè)計方法有很大的不同。FIR濾波器設(shè)計任務(wù)是選擇有限長度的,使傳輸函數(shù)滿足技術(shù)要求。</p><p> 在設(shè)計和實現(xiàn)上FIR濾波器具有如下優(yōu)越性:</p><p> (1) 相應(yīng)相位可為嚴(yán)格線性,
20、因此它不存在延遲失真,只有固定的時間延遲;</p><p> (2) 由于不存在穩(wěn)定性問題,所以設(shè)計相對簡單;</p><p> (3) 只包含實數(shù)算法,不涉及復(fù)數(shù)算法,不需要遞推運算,長度為M的濾波器(階數(shù)為M-1)它的計算值約為M/2。</p><p> 二、FIR數(shù)字濾波器的原理</p><p> 對于一個FIR濾波器系統(tǒng)而言,
21、它的沖激響應(yīng)總是有限長的,其系統(tǒng)函數(shù)可以記為:</p><p><b> ?。?-1)</b></p><p> 其中M是FIR濾波器的零點數(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> ?。?-3)</b></p><p> 圖2-1中顯示了一個典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p>
23、<p><b> ?。?-4)</b></p><p> 圖2-1 4階FIR濾波器結(jié)構(gòu)</p><p> 在這個FIR濾波器中,總共存在3個延時節(jié),4個乘法單元,一個4輸入的加法器。如果采用普通的數(shù)字信號處理器(DSP Processor)來實現(xiàn),只能用串行的方式順序的執(zhí)行延時,乘加操作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用
24、多個指令周期來完成。</p><p> 但是,如果采用FPGA來實現(xiàn),就可以采用并行結(jié)構(gòu),在一個時鐘周期內(nèi)得到一個FIR濾波器的輸出。</p><p> 六、DSP Builder設(shè)計流程</p><p> DSP Builder是一個系統(tǒng)級(或算法級)設(shè)計工具,它架構(gòu)在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設(shè)計領(lǐng)域的設(shè)計工具連接起來,最大程度發(fā)揮了兩種工
25、具的優(yōu)勢。DSP Builder依賴于Math Works公司數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計和仿真,同時又通過SignalCompiler可以把Matlab/Simulink的設(shè)計文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對后者的處理可以由FPGA/CPLD開發(fā)工具Quartus,
26、DSP Builder針對不同情況提供了兩套設(shè)計流程,即自動流程和手動流程。</p><p> 圖6-1是利用DSP Builder進(jìn)行DSP設(shè)計的流程框圖。</p><p> 如圖6-1所示,DSP Builder設(shè)計流程第一步是在Matlab/Simulink中進(jìn)行設(shè)計輸入,即在Matlab的Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用Altera DSP Buil
27、der和其它Simulink庫中的圖形模塊(Block),構(gòu)成系統(tǒng)級或算法級設(shè)計框圖(或稱Simulink設(shè)計模型)。</p><p> 第二步是利用Simulink強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計模型的正確性,完成模型仿真。</p><p> 在這兩步中,與一般的Matlab Simulink建模過程幾乎沒有什么區(qū)別,所不同的是設(shè)計模型庫采用Altera DSP Builder
28、的Simulink庫,也不涉及到其它EDA軟件,沒有自動流程和手動流程的區(qū)別。</p><p> 圖6-1 DSP Builder設(shè)計流程</p><p> 為了針對不同用戶的設(shè)計目的和設(shè)計要求,DSP Builder提供了兩種不同的設(shè)計流程,主要可以分為自動流程和手動流程。</p><p> 在手動流程中,設(shè)計者可以靈活地指定綜合、適配條件。不過,需要手動的
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> 采用手動流程時,除了行為級仿真驗證和設(shè)計輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計流程完全是一致的。由上一步的DSP Builder設(shè)計流程得到VHDL文件(由Simulink模型文件.mdl通過SignalCompiler轉(zhuǎn)
30、換而成),送入綜合器進(jìn)行綜合。綜合器可以是SynplifyPro,也可以是LelnardoSpectrum,或者采用Altera自己的Quartus。在綜合時,可能需要對綜合器進(jìn)行配置或者提供綜合的約束條件。由于這個過程操作可能比較繁瑣,所以DSP Builder的SignalCompiler相應(yīng)提供了一個接口,針對設(shè)計,自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LelnardoSpectrum相接。綜合器在綜合操作后會產(chǎn)生一個
31、網(wǎng)表文件,以供下一個流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖6-1所示),主要是EDIF一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏LCs、I/O單元、乘積項、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。</p><p> 如果用DSP Builder產(chǎn)生的DSP模型只是龐大設(shè)計中的一個子模塊,則可以在設(shè)計中調(diào)用DSP Builder產(chǎn)生的VHDL文件,以構(gòu)成完整的設(shè)計。同時,一樣可以使用Quar
32、tus強(qiáng)大的LogicLock功能和SignalTap測試技術(shù)。</p><p> 在圖6-1的流程中,其中有個流程在DSP設(shè)計中是不可或缺的,那就是HDL仿真。與DSP Builder可以配合使用的HDL仿真器是ModelSim。DSP Builder在生成VHDL代碼時,可以同時生成用于測試DSP模塊的TestBench(測試平臺)文件,DSP Builder生成的TestBench文件采用VHDL 語言,
33、測試向量與該DSP模塊在Simulink中的仿真激勵相一致。通過ModelSim仿真生成的TestBench可以驗證生成的VHDL代碼與Simulink中DSP模型的一致性。另外,DSP Builder在產(chǎn)生TestBench的同時,還產(chǎn)生了針對ModelSim仿真的Rcl腳本來簡化用戶的操作,掩蓋ModelSim仿真時的復(fù)雜性。</p><p> 七、利用DSP Builder設(shè)計FIR數(shù)字濾波器</p
34、><p> 圖7-1中顯示了一個典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p><p><b> ?。?-1)</b></p><p> 圖7-1 4階FIR濾波器結(jié)構(gòu)</p><p> 在這個FIR濾波器中,總共存在3個延時節(jié),4個乘法單元,一個4輸入的加法器。如果采用普通的數(shù)字信號處理器(DSP
35、Processor)來實現(xiàn),只能用串行的方式順序地執(zhí)行延時,乘加工作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用多個指令周期來完成。</p><p> 但是,如果采用FPGA來實現(xiàn),就可以采用并行結(jié)構(gòu),在一個時鐘周期內(nèi)得到一個FIR濾波器的輸出。</p><p> 使用DSP Builder可以方便地在圖形化環(huán)境中設(shè)計FIR數(shù)字濾波器,而且濾波器系數(shù)的計算可以幫助M
36、atlab強(qiáng)大的計算能力和現(xiàn)成的濾波器設(shè)計工具來完成。</p><p> ?。ㄒ唬?階常系數(shù)FIR濾波器的設(shè)計</p><p> 在此用以下示例來說明整個設(shè)計過程。</p><p> 假定一個3階的FIR濾波器,其可以表示為:</p><p> 其中:,,,,是量化時附加的因子。</p><p> 這里采用直接
37、I型來實現(xiàn)FIR濾波器。設(shè)計好的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)給定,是一個常數(shù),從圖中看到,在DSP Builder中可以用Gain(
45、增益)模塊來實現(xiàn)的運算,用延時Delay模塊來實現(xiàn)輸入信號序列的延時。</p><p> 設(shè)計完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)頻信號發(fā)生模塊,生成一個線性調(diào)頻信號0.1Hz~1Hz。</p><p> 在該模型仿真中,使用默認(rèn)的仿真參數(shù)。</p><p> ?。ǘ?階FIR濾波器節(jié)的設(shè)計</p&
49、gt;<p> 對于直接I型FIR濾波器是可以級聯(lián)的,結(jié)構(gòu)見圖7-4,也就是說,在濾波器系數(shù)可改變的情況下,可以預(yù)先設(shè)計好一個FIR濾波器節(jié),在實際應(yīng)用中通過不斷地調(diào)用FIR濾波器節(jié),將其級聯(lián)起來,用來完成多階FIR濾波器的設(shè)計。</p><p> 圖7-4 直接I型FIR濾波器結(jié)構(gòu)</p><p> 圖7-5是一個直接I型的4階FIR濾波器節(jié)結(jié)構(gòu)。為了使該濾波器節(jié)的調(diào)
50、用更為方便,在x輸入后插入一個延時單元,由3階濾波器演變成一個4階的,不過常系數(shù)項(系數(shù)項)恒為0。由于通信應(yīng)用中,F(xiàn)IR濾波器處理的往往是信號流,因而,增加一個延時單元不會影響FIR濾波器處理的結(jié)果,只是系統(tǒng)延時增加了一個時鐘周期。</p><p> 圖7-5 直接I型4階FIR濾波器模型</p><p> 對于該FIR濾波器節(jié),其系統(tǒng)函數(shù)可以用下式來表示:</p>&
51、lt;p><b> ?。?-2)</b></p><p> 由于浮點小數(shù)在FPGA中實現(xiàn)比較困難,實現(xiàn)的代價太大,因而在DSP Builder中不妨使用整數(shù)運算來實現(xiàn),最后用位數(shù)舍取的方法得到結(jié)果。為了使參數(shù)可變,F(xiàn)IR濾波器系數(shù)、、、也作為輸入端口。在本設(shè)計中輸入序列的位寬設(shè)為9位。</p><p> 圖7-6顯示的就是一個設(shè)計好的4階FIR濾波器節(jié),與圖
52、7-2的常數(shù)FIR濾波器相比,這里運用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è)計</p><p> 利用以上設(shè)計的4階FIR濾波器節(jié)可以方便地搭成4×n階直接I型FIR濾波器(注意:)。比如要實現(xiàn)一個20階的低通濾波器,可以調(diào)用5個4階FIR濾波器來實現(xiàn)。</p><p> 1.設(shè)計4
60、階FIR濾波器節(jié)子系統(tǒng)</p><p> 建立一個新的DSP Builder模型,復(fù)制上節(jié)的FIR4tap模型到新模型。由FIR4tap模型建立子系統(tǒng)(SubSystem),并對端口信號進(jìn)行修改,把子系統(tǒng)更名為fir4tap,如圖7-7所示。fir4tap的內(nèi)部結(jié)構(gòu)如圖7-8所示。(建立子系統(tǒng)的方法:選中模塊,在選中模塊上點擊鼠標(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個fir4tap,并將它們銜接起來。前一及的輸出端口x4接后一級x輸入端口,并附加上20個常數(shù)端口,作為FIR濾波器系數(shù)的輸入。把5個子系統(tǒng)fir4tap的輸入
62、端口y連接起來,接入一個5輸入端口的加法器,得到FIR濾波器的輸出。</p><p> 注意:在做好子系統(tǒng)后,要修改其Mask參數(shù)MaskType為“SubSystem AlteraBlockSet”。設(shè)計好的20階濾波器如圖7-9所示。</p><p> 圖7-9 20階直接I型FIR濾波器模型</p><p> 20階直接I型FIR濾波器模型中,對新增加的
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中,對h1~h24統(tǒng)一設(shè)置了一個值:512,而實際上濾波器的系數(shù)要根據(jù)具體要求進(jìn)行計算。在系數(shù)計算好后,F(xiàn)IR濾波器才能真正應(yīng)用。</p><p> 八、基于MATLAB的濾波器設(shè)計工具</p><p><b> ?。ㄒ唬V波器指標(biāo)</b></p><p> 若需要設(shè)計一個20階的FIR濾波器(h(0)=0
70、),給定的參數(shù)如下:低通濾波器;采樣頻率Fs為48kHz,濾波器Fc為10.8kHz;輸入序列位寬為9位(最高位為符號位)。</p><p> 在此利用MATLAB來完成FIR濾波器系數(shù)確定。</p><p> ?。ǘ┐蜷_MATLAB的FDATOOL</p><p> MATLAB集成了一套功能強(qiáng)大的濾波器設(shè)計工具FDATool(Filter Design &
71、amp; Analysis Tool),可以完成多種濾波器的設(shè)計、分析和性能評估。</p><p> 點擊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> 實現(xiàn)模型(Realize Model)</p><p> 導(dǎo)入濾波器(Import Filter)</p><p> 設(shè)計濾波器(Design Filter)</p><p> 選擇其中的按鈕,進(jìn)入設(shè)計濾波器界面,進(jìn)行下列選擇:</p><p&g
74、t; 1. 濾波器類型(Filter Type)為低通(Lowpass);</p><p> 2. 設(shè)計方法(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è)計界面</p><p> 注意:在濾波器階數(shù)選擇時,在此設(shè)置的是19階,而不是20階!這是由于在前面設(shè)計的20階FIR濾波器的常系數(shù)項。其系統(tǒng)函數(shù)可用下式來表示:</p><p><b>
76、?。?-1)</b></p><p><b> 顯然上式可以寫成:</b></p><p><b> ?。?-2)</b></p><p> 即可以看成是一個19階的FIR濾波器的輸出結(jié)果經(jīng)過了一個單位延時單元,以在FDATool中把它當(dāng)成19階FIR濾波器來計算參數(shù)。</p><p&g
77、t; 點擊 Design Filter ,讓MATLAB計算FIR濾波器系數(shù)并作相關(guān)分析。</p><p><b> ?。ㄋ模V波器分析</b></p><p> 計算完FIR濾波器系統(tǒng)分析后,往往需要對設(shè)計好的FIR濾波器進(jìn)行相關(guān)的性能分析,以便了解該濾波器是否滿足設(shè)計要求。分析操作步驟如下:</p><p> 1. 選擇FDATool
78、的菜單“Analysis”→“Magnitude Response”,啟動幅頻響應(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è)計方法計算出的濾波器都是直接I型結(jié)構(gòu)的。如果在DSP Builder中設(shè)計的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、”,啟動相頻響應(yīng)分析。圖8-5顯示了濾波器的相頻響應(yīng)。由圖可以看到設(shè)計的FIR濾波器在通帶內(nèi)相位響應(yīng)為線性的,即該濾波器是一個線形相位濾波器。</p><p> 圖8-5 FIR濾波器的相頻響應(yīng)</p><p> 3. 圖8-6顯示了濾波器幅頻特性與相頻特性的比較。這可以通過菜單選擇“Analysis”→“Magnitude﹠Phase Response”來啟動分析。</p&g
81、t;<p> 圖8-6 幅頻響應(yīng)與相頻響應(yīng)的比較</p><p> 4. 選擇菜單“Analysis”→“Group Delay Response”,啟動群延時分析,波形如圖8-7所示。</p><p> 圖8-7 群延時</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”:零極點圖,見圖8-10。</p><p> 由于直接I型FIR濾波器只有零點,所以在圖8-10中不存在極點。</p><p>
83、圖8-8 FIR濾波器的沖激響應(yīng)</p><p> 圖8-9 FIR濾波器的階躍響應(yīng)</p><p> 圖8-10 FIR濾波器的零極點</p><p> 求出的FIR濾波器的系數(shù)可以通過選擇菜單“Analysis”→“Filter Coefficients”來觀察,見圖8-11。圖中列出了FDATool計算的19階直接I型FIR濾波器的部分系數(shù)。<
84、;/p><p> 圖8-11 FIR濾波器系數(shù)</p><p><b> (五)量化</b></p><p> 從圖8-11可以看到,F(xiàn)DATool計算出的值是一個有符號小數(shù),而在DSP Builder下建立的FIR濾波器模型需要一個整數(shù)作為濾波器系數(shù)。所以必須進(jìn)行量化,并對得到的系數(shù)進(jìn)行歸一化。為此,點擊FDATool左下側(cè)的工具按鈕進(jìn)行
85、量化參數(shù)設(shè)置。在設(shè)置“Turnquantization on”前選擇“√”。如圖8-12所示。</p><p> 圖8-12 量化參數(shù)設(shè)置</p><p> 在濾波器的設(shè)計指標(biāo)中,已經(jīng)提到FIR濾波器的輸入位寬是9位,表示為有符號數(shù)。在圖8-12中設(shè)置前4項的量化格式(Format)為“[16 15]”,表示量化后位寬為16位,絕對值為15位;設(shè)置后2項(乘積、乘積和)的量化格式為
86、“[32 30]”。</p><p> 點擊Optimization按鈕,打開圖8-13所示的對話框。在此量化優(yōu)化設(shè)置對話框中選擇相關(guān)的優(yōu)化選項。</p><p> 圖8-13 量化優(yōu)化設(shè)置對話框</p><p> 圖8-14中顯示了量化后的部分系數(shù)值。注意在這里系數(shù)仍是用小數(shù)表示的,不同于量化前的系數(shù),現(xiàn)在其二進(jìn)制表示的位數(shù)已滿足量化要求。</p&
87、gt;<p> 圖8-14 量化后的系數(shù)值</p><p> 設(shè)計的FIR濾波器在量化后濾波器的性能會有所改變,其幅頻響應(yīng)、相頻響應(yīng)也有所變化。圖8-15為量化后的幅頻、相頻響應(yīng)波形圖。</p><p> 圖8-15 量化后的幅頻、相頻響應(yīng)</p><p> 量化在帶來實現(xiàn)方便的同時也帶來了量化噪聲,圖8-16顯示了量化帶來的噪聲分析。<
88、;/p><p> 圖8-16 量化后的噪聲分析</p><p> (六)導(dǎo)出濾波器系數(shù)</p><p> 為導(dǎo)出設(shè)計好的濾波器系數(shù),選擇FDATool菜單的“File”→“Export….”,打開導(dǎo)出(Export)對話框,如圖8-17所示。</p><p> 圖8-17 導(dǎo)出系數(shù)對話框</p><p> 在該
89、窗口中,選擇導(dǎo)出到工作區(qū)(Workspace)。這時濾波器系數(shù)就存入到一個一維變量Num中了,不過這時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> 把計算出的系數(shù)逐個填入到FIR濾波器模型中,見圖8-18。這樣就完成了一個20階直接I型FIR低通濾波器的設(shè)計。</p><p> ?。ò耍?dǎo)出濾波器系數(shù)的另一種方法</p><p>
93、; 按照上面介紹的導(dǎo)出濾波器系數(shù)的方法在FIR濾波器階數(shù)較大時就不太方便,而且在設(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> 通過仿真與驗證,本系統(tǒng)所設(shè)計的數(shù)字濾波器能夠成功運行,且所設(shè)計濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用F
95、PGA進(jìn)行數(shù)字濾波器的開發(fā)時,采用基于Matlab環(huán)境的DSP Builder作為設(shè)計工具可以更方便的建立模型,完成整個設(shè)計。當(dāng)然,在實際應(yīng)用中,受精度、速度和器件選擇方面的影響,可以對其轉(zhuǎn)化的VHDL進(jìn)行進(jìn)一步的優(yōu)化。</p><p> 通過這次畢業(yè)設(shè)計,我不僅鞏固以前所學(xué)的知識,并且又新學(xué)到了不少的有用的知識,不但使我提高了自己的能力也知道了自己的不足。我深刻地認(rèn)識到,只有單純的理論知識是不行的,必須多實踐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號處理課程設(shè)計--基于dsp 的 fir 數(shù)字濾波器的設(shè)計
- 數(shù)字信號課程設(shè)計---fir數(shù)字濾波器
- 數(shù)字信號處理課程設(shè)計--fir數(shù)字濾波器的設(shè)計
- 數(shù)字信號處理課程設(shè)計--數(shù)字濾波器
- 數(shù)字信號處理課程設(shè)計--數(shù)字濾波器
- dsp課程設(shè)計fir數(shù)字濾波器
- fir數(shù)字濾波器的dsp課程設(shè)計
- 數(shù)字信號處理課程設(shè)計-- 用窗函數(shù)法設(shè)計fir數(shù)字濾波器
- 用窗函數(shù)法設(shè)計fir數(shù)字濾波器-數(shù)字信號處理課程設(shè)計
- 數(shù)字信號處理課程設(shè)計---數(shù)字濾波器設(shè)計及濾波
- 數(shù)字信號處理課程設(shè)計-- iir數(shù)字濾波器的設(shè)計
- 數(shù)字信號處理課程設(shè)計報告--- 數(shù)字濾波器的設(shè)計
- 數(shù)字信號處理課程設(shè)計報告--fir數(shù)字濾波器設(shè)計及matlab實現(xiàn)
- 數(shù)字信號處理課程設(shè)計---fir數(shù)字濾波器的矩形窗函數(shù)法設(shè)計
- 數(shù)字信號處理課程設(shè)計---數(shù)字濾波器的設(shè)計及實現(xiàn)
- 數(shù)字信號處理課程設(shè)計--fir數(shù)字濾波器的凱澤窗函數(shù)法設(shè)計
- 基于dsp 的fir數(shù)字濾波器設(shè)計
- 數(shù)字信號課程設(shè)計報告--數(shù)字濾波器設(shè)計
- matlab課程設(shè)計---fir數(shù)字濾波器
- 數(shù)字信號課程設(shè)計---fir數(shù)字濾波器的(海明)窗函數(shù)法設(shè)計
評論
0/150
提交評論