

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)字信號處理課程設計</p><p> 題 目:基于DSP Builder的FIR數(shù)字濾波器的仿真設計</p><p> 基于DSP Builder的FIR數(shù)字濾波器的仿真設計</p><p> 摘要:數(shù)字濾波器是數(shù)字信號處理中的核心環(huán)節(jié),而FIR數(shù)字濾波器因其具有嚴格的線性相位,系統(tǒng)總是穩(wěn)定等特點而廣泛應用于數(shù)字信號處理的各個領域
2、,因此是一個重要的研究課題。隨著微電子技術的發(fā)展,數(shù)字信號處理得到了飛速發(fā)展。數(shù)字濾波器是譜分析、雷達信號處理、通信信號處理應用中的基本處理算法,在數(shù)字音頻、圖像處理、數(shù)據(jù)傳輸、生物醫(yī)學等領域得到了廣泛應用。</p><p> 本文內(nèi)容包括FIR數(shù)字濾波器的網(wǎng)絡結(jié)構、線形相位條件和特點以及設計方法、基于MATLAB/Simulink的DSP設計技術、詳細的設計流程向?qū)АodelSim仿真等。本文通過一個設計實
3、例,提出了一種采用DSP Builder實現(xiàn)有限沖激響應濾波器的設計方案,并以一個20階低通數(shù)字濾波器的實現(xiàn)為例,設計并完成軟件仿真與驗證。</p><p> 通過仿真與驗證,本系統(tǒng)所設計的數(shù)字濾波器能夠成功運行,且所設計濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用FPGA進行數(shù)字濾波器的開發(fā)時,采用基于Matlab環(huán)境的DSP Builder作為設計工具可以更方便的建立模型,完成整個設計。</p&g
4、t;<p> 關鍵詞: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設計流程14</p><p> 七、基于DSP Builder設計FIR數(shù)字濾波器17</p><p> ?。ㄒ唬?/p>
13、3階常系數(shù)FIR濾波器的設計17</p><p> ?。ǘ?階FIR濾波器節(jié)的設計21</p><p> (三)20階FIR濾波器模型設計25</p><p> 八、基于MATLAB的濾波器設計工具30</p><p> ?。ㄒ唬V波器指標30</p><p> (二)打開MATLAB的FDATOOL
14、30</p><p> ?。ㄈ┻x擇DESIGN FILTER31</p><p> ?。ㄋ模V波器分析33</p><p><b> (五)量化36</b></p><p> ?。С鰹V波器系數(shù)39</p><p> ?。ㄆ撸┬薷腇IR濾波器模型添加參數(shù)41</p>
15、<p> ?。ò耍С鰹V波器系數(shù)的另一種方法41</p><p><b> 九、結(jié)束語43</b></p><p><b> 一、前言</b></p><p> (一)數(shù)字濾波器的概念以及分類</p><p> 所謂數(shù)字濾波器是指輸入輸出均為數(shù)字信號,通過一定的運算關系改變
16、輸入信號中所含頻率成分的相對比例或者濾除某些頻率成分的器件。常用的濾波器有無限長單位脈沖響應(IIR)濾波器和有限長單位脈沖響應(FIR)濾波器兩種。其中,F(xiàn)IR濾波器能提供理想的線性相位響應,在整個頻帶上獲得常數(shù)群延時從而得到零失真輸出信號,同時它可以采用十分簡單的算法實現(xiàn),這兩個優(yōu)點使FIR濾波器成為設計的首選。采用一種基于DSP Builder 的FPGA設計方法,使FIR濾波器設計較為簡單易行,并能滿足設計要求。</p&g
17、t;<p> 設FIR濾波器單位脈沖響應長度為N,其系統(tǒng)函數(shù)為:</p><p><b> ?。?-1)</b></p><p> 是的(N-1)次多項式,它在z平面上有(N-1)個零點,原點z=0是(N-1)階重極點。因此,永遠穩(wěn)定。穩(wěn)定和線性相位特性是FIR濾波器突出的優(yōu)點。</p><p> (二)FIR和IIR濾波器
18、的比較</p><p> 在很多實際應用中如語音和音頻信號處理中,數(shù)字濾波器來實現(xiàn)選頻功能。因此,指標的形式應為頻域中的幅度和相位響應。在通帶中,通常希望具有線性相位響應。在FIR濾波器中可以得到精確的線性相位。在IIR濾波器中通常的相位是不可能得到的,因此主要考慮幅度指標。IIR數(shù)字濾波器的設計和模擬濾波器的設計有著密切的聯(lián)系。通常要設計出適當?shù)哪M濾波器,再通過一定的頻帶變換把它轉(zhuǎn)換成所需要的數(shù)字IIR濾波
19、器。此外,任何數(shù)字信號處理系統(tǒng)中也還不可避免地用到模擬濾波器,因此模擬濾波器設計也是數(shù)字信號應該掌握的技術。</p><p> FIR濾波器的設計方法和IIR濾波器的設計方法有很大的不同。FIR濾波器設計任務是選擇有限長度的,使傳輸函數(shù)滿足技術要求。</p><p> 在設計和實現(xiàn)上FIR濾波器具有如下優(yōu)越性:</p><p> (1) 相應相位可為嚴格線性,
20、因此它不存在延遲失真,只有固定的時間延遲;</p><p> (2) 由于不存在穩(wěn)定性問題,所以設計相對簡單;</p><p> (3) 只包含實數(shù)算法,不涉及復數(shù)算法,不需要遞推運算,長度為M的濾波器(階數(shù)為M-1)它的計算值約為M/2。</p><p> 二、FIR數(shù)字濾波器的原理</p><p> 對于一個FIR濾波器系統(tǒng)而言,
21、它的沖激響應總是有限長的,其系統(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> 也可以用卷積來表示輸出序列與、的關系。</p><p><b> (2-3)</b></p><p> 圖2-1中顯示了一個典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p>
23、<p><b> ?。?-4)</b></p><p> 圖2-1 4階FIR濾波器結(jié)構</p><p> 在這個FIR濾波器中,總共存在3個延時節(jié),4個乘法單元,一個4輸入的加法器。如果采用普通的數(shù)字信號處理器(DSP Processor)來實現(xiàn),只能用串行的方式順序的執(zhí)行延時,乘加操作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用
24、多個指令周期來完成。</p><p> 但是,如果采用FPGA來實現(xiàn),就可以采用并行結(jié)構,在一個時鐘周期內(nèi)得到一個FIR濾波器的輸出。</p><p> 六、DSP Builder設計流程</p><p> DSP Builder是一個系統(tǒng)級(或算法級)設計工具,它架構在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設計領域的設計工具連接起來,最大程度發(fā)揮了兩種工
25、具的優(yōu)勢。DSP Builder依賴于Math Works公司數(shù)學分析工具Matlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進行圖形化設計和仿真,同時又通過SignalCompiler可以把Matlab/Simulink的設計文件(.mdl)轉(zhuǎn)成相應的硬件描述語言VHDL設計文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對后者的處理可以由FPGA/CPLD開發(fā)工具Quartus,
26、DSP Builder針對不同情況提供了兩套設計流程,即自動流程和手動流程。</p><p> 圖6-1是利用DSP Builder進行DSP設計的流程框圖。</p><p> 如圖6-1所示,DSP Builder設計流程第一步是在Matlab/Simulink中進行設計輸入,即在Matlab的Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用Altera DSP Buil
27、der和其它Simulink庫中的圖形模塊(Block),構成系統(tǒng)級或算法級設計框圖(或稱Simulink設計模型)。</p><p> 第二步是利用Simulink強大的圖形化仿真、分析功能,分析此設計模型的正確性,完成模型仿真。</p><p> 在這兩步中,與一般的Matlab Simulink建模過程幾乎沒有什么區(qū)別,所不同的是設計模型庫采用Altera DSP Builder
28、的Simulink庫,也不涉及到其它EDA軟件,沒有自動流程和手動流程的區(qū)別。</p><p> 圖6-1 DSP Builder設計流程</p><p> 為了針對不同用戶的設計目的和設計要求,DSP Builder提供了兩種不同的設計流程,主要可以分為自動流程和手動流程。</p><p> 在手動流程中,設計者可以靈活地指定綜合、適配條件。不過,需要手動的
29、調(diào)用VHDL綜合器進行綜合,調(diào)用Quartus進行適配,調(diào)用ModelSim或者Quartus進行仿真,最后用Quartus產(chǎn)生相應的編程文件用于FPGA的配置。</p><p> 采用手動流程時,除了行為級仿真驗證和設計輸入外,其它過程與標準的基于VHDL的EDA設計流程完全是一致的。由上一步的DSP Builder設計流程得到VHDL文件(由Simulink模型文件.mdl通過SignalCompiler轉(zhuǎn)
30、換而成),送入綜合器進行綜合。綜合器可以是SynplifyPro,也可以是LelnardoSpectrum,或者采用Altera自己的Quartus。在綜合時,可能需要對綜合器進行配置或者提供綜合的約束條件。由于這個過程操作可能比較繁瑣,所以DSP Builder的SignalCompiler相應提供了一個接口,針對設計,自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LelnardoSpectrum相接。綜合器在綜合操作后會產(chǎn)生一個
31、網(wǎng)表文件,以供下一個流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖6-1所示),主要是EDIF一種參數(shù)可設置的,并含有具體器件系列硬件特征(如邏輯宏LCs、I/O單元、乘積項、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。</p><p> 如果用DSP Builder產(chǎn)生的DSP模型只是龐大設計中的一個子模塊,則可以在設計中調(diào)用DSP Builder產(chǎn)生的VHDL文件,以構成完整的設計。同時,一樣可以使用Quar
32、tus強大的LogicLock功能和SignalTap測試技術。</p><p> 在圖6-1的流程中,其中有個流程在DSP設計中是不可或缺的,那就是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仿真時的復雜性。</p><p> 七、利用DSP Builder設計FIR數(shù)字濾波器</p
34、><p> 圖7-1中顯示了一個典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:</p><p><b> ?。?-1)</b></p><p> 圖7-1 4階FIR濾波器結(jié)構</p><p> 在這個FIR濾波器中,總共存在3個延時節(jié),4個乘法單元,一個4輸入的加法器。如果采用普通的數(shù)字信號處理器(DSP
35、Processor)來實現(xiàn),只能用串行的方式順序地執(zhí)行延時,乘加工作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用多個指令周期來完成。</p><p> 但是,如果采用FPGA來實現(xiàn),就可以采用并行結(jié)構,在一個時鐘周期內(nèi)得到一個FIR濾波器的輸出。</p><p> 使用DSP Builder可以方便地在圖形化環(huán)境中設計FIR數(shù)字濾波器,而且濾波器系數(shù)的計算可以幫助M
36、atlab強大的計算能力和現(xiàn)成的濾波器設計工具來完成。</p><p> ?。ㄒ唬?階常系數(shù)FIR濾波器的設計</p><p> 在此用以下示例來說明整個設計過程。</p><p> 假定一個3階的FIR濾波器,其可以表示為:</p><p> 其中:,,,,是量化時附加的因子。</p><p> 這里采用直接
37、I型來實現(xiàn)FIR濾波器。設計好的3階直接I型FIR濾波器模型圖可以參見圖7-2。</p><p> 圖7-2 3階FIR濾波器</p><p> 圖中模塊的參數(shù)作如下設置:</p><p> Xin模塊:(Altbus)</p><p> 庫:Altera DSP Builder中Bus Manipulation庫</p&g
38、t;<p> 參數(shù)“Bus Type”設為“signed integer”</p><p> 參數(shù)“Node Type”設為“Input port”</p><p> 參數(shù)“number of bits”設為“8”</p><p> Yout模塊:(Altbus)</p><p> 庫:Altera DSP Build
39、er中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed integer”</p><p> 參數(shù)“Nope Type”設為“Output port”</p><p> 參數(shù)“number of bits”設為“8”</p><p> Parallel Adder Subtractor模塊
40、:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Builder中Arithmetic庫</p><p> “Add(+)Sub(-)”設為“++++”</p><p> Delay1,Delay2,Delay3模塊:(Delay)</p><p> 庫:Altera DSP Bu
41、ilder中Storage庫</p><p> 參數(shù)“Depth”設為“1”</p><p> 參數(shù)“Clock Phase Selection”設為“1”</p><p> h0模塊:(Gain)</p><p> 庫:Altera DSP Builder 中Arithemtic庫</p><p> 參數(shù)“
42、Gain Value”設為“63”</p><p> 參數(shù)“Map Gain Value to Bus Type”設為“Signed Integer”</p><p> 參數(shù)“Gate Value number of bits”設為“8”</p><p> 參數(shù)“Number of Pipeline Levels”設為“0”</p><p
43、> h1模塊:(Gain)</p><p> 參數(shù)“Gain Value”設為“127”</p><p><b> 其余同h(0)模塊</b></p><p> h2模塊:(Gain)</p><p> 參數(shù)“Gain Value”設為“127”</p><p><b>
44、 其余同h(0)模塊</b></p><p> h3模塊:(Gain)</p><p> 參數(shù)“Gain Value”設為“63”</p><p><b> 其余同h0模塊。</b></p><p> 由于FIR濾波器的系數(shù)已經(jīng)給定,是一個常數(shù),從圖中看到,在DSP Builder中可以用Gain(
45、增益)模塊來實現(xiàn)的運算,用延時Delay模塊來實現(xiàn)輸入信號序列的延時。</p><p> 設計完3階FIR濾波器模型后,就可以添加Simulink模塊進行仿真了,如圖7-3所示。</p><p> 新增的仿真模塊的參數(shù)作如下設置:</p><p> Chirp Signal:模塊:(Chirp Signal)</p><p> 庫:S
46、imulink中Sources庫</p><p> 參數(shù)“Initial Frequency(Hz)”設為“1”</p><p> 參數(shù)“Target time”設為“10”</p><p> 參數(shù)“Frequency at target time(Hz)”設為“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”設為“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> 在該模型仿真中,使用默認的仿真參數(shù)。</p><p> ?。ǘ?階FIR濾波器節(jié)的設計</p&
49、gt;<p> 對于直接I型FIR濾波器是可以級聯(lián)的,結(jié)構見圖7-4,也就是說,在濾波器系數(shù)可改變的情況下,可以預先設計好一個FIR濾波器節(jié),在實際應用中通過不斷地調(diào)用FIR濾波器節(jié),將其級聯(lián)起來,用來完成多階FIR濾波器的設計。</p><p> 圖7-4 直接I型FIR濾波器結(jié)構</p><p> 圖7-5是一個直接I型的4階FIR濾波器節(jié)結(jié)構。為了使該濾波器節(jié)的調(diào)
50、用更為方便,在x輸入后插入一個延時單元,由3階濾波器演變成一個4階的,不過常系數(shù)項(系數(shù)項)恒為0。由于通信應用中,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> (7-2)</b></p><p> 由于浮點小數(shù)在FPGA中實現(xiàn)比較困難,實現(xiàn)的代價太大,因而在DSP Builder中不妨使用整數(shù)運算來實現(xiàn),最后用位數(shù)舍取的方法得到結(jié)果。為了使參數(shù)可變,F(xiàn)IR濾波器系數(shù)、、、也作為輸入端口。在本設計中輸入序列的位寬設為9位。</p><p> 圖7-6顯示的就是一個設計好的4階FIR濾波器節(jié),與圖
52、7-2的常數(shù)FIR濾波器相比,這里運用Product(乘法)模塊代替了Gain(增益)模塊。</p><p> 圖7-6 直接I型4階FIR濾波器節(jié)</p><p> 圖7-6中相關模塊的參數(shù)設置如下:</p><p> xin、hn1、hn2、hn3、hn4模塊:(Altbus)</p><p> 庫:Altera DSP Buid
53、er中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”</p><p> 參數(shù)“Node Type” 設為“Input port”</p><p> 參數(shù)“number of bits”設為“9”</p><p> yn模塊:(Altbus)</p>
54、<p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”</p><p> 參數(shù)“Node Type” 設為“output port”</p><p> 參數(shù)“number of bits”設為“20”</p><p&
55、gt; xn4模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”</p><p> 參數(shù)“Node Type” 設為“output port”</p><p> 參數(shù)“number of
56、 bits”設為“9”</p><p> Parallel Adder Subtractor模塊:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Buider中Arithmetic庫</p><p> 參數(shù)“Add(+)Sub(-)”設為“++++”</p><p> 使用“Pip
57、eline”</p><p> 參數(shù)“Clock Phaese Selectioon”設為“1”</p><p> Delay、Delay1、Delay2、Delay3模塊:(Delay)</p><p> 庫:Altera DSP Buider中Storage庫</p><p> 參數(shù)“Depth”設為“1”</p>
58、<p> 參數(shù)“Clock Phase Selectioon”設為“1”</p><p> Product模塊:(Product)</p><p> 庫:Altera DSP Buider中Arithmetic庫</p><p> 參數(shù)“Pipeline”設為“2”</p><p> 參數(shù)“Clock Phase Sele
59、ctioon”設為“1”</p><p> 不選擇“Use LPM”</p><p> ?。ㄈ?0階FIR濾波器模型設計</p><p> 利用以上設計的4階FIR濾波器節(jié)可以方便地搭成4×n階直接I型FIR濾波器(注意:)。比如要實現(xiàn)一個20階的低通濾波器,可以調(diào)用5個4階FIR濾波器來實現(xiàn)。</p><p> 1.設計4
60、階FIR濾波器節(jié)子系統(tǒng)</p><p> 建立一個新的DSP Builder模型,復制上節(jié)的FIR4tap模型到新模型。由FIR4tap模型建立子系統(tǒng)(SubSystem),并對端口信號進行修改,把子系統(tǒng)更名為fir4tap,如圖7-7所示。fir4tap的內(nèi)部結(jié)構如圖7-8所示。(建立子系統(tǒng)的方法:選中模塊,在選中模塊上點擊鼠標右鍵,在彈出的右鍵菜單中選擇“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> 復制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”。設計好的20階濾波器如圖7-9所示。</p><p> 圖7-9 20階直接I型FIR濾波器模型</p><p> 20階直接I型FIR濾波器模型中,對新增加的
63、模塊作如下設置:</p><p> xin模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”</p><p> 參數(shù)“Node Type” 設為“Input port”</p>
64、<p> 參數(shù)“number of bits”設為“9”</p><p> yout模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”</p><p> 參數(shù)“Node T
65、ype” 設為“Output port”</p><p> 參數(shù)“number of bits”設為“20”</p><p> X24模塊:(Altbus)</p><p> 庫:Altera DSP Buider中Bus Manipulation庫</p><p> 參數(shù)“Bus Type”設為“signed Integer”&
66、lt;/p><p> 參數(shù)“Node Type” 設為“Output port”</p><p> 參數(shù)“number of bits”設為“9”</p><p> Parallel Adder Subtractor模塊:(Parallel Adder Subtractor)</p><p> 庫:Altera DSP Buider中
67、Arithmetic庫</p><p> 參數(shù)“Add(+)Sub(-)”設為“++++++”</p><p> 使用“Pipeline”</p><p> 參數(shù)“Clock Phaese Selectioon”設為“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”設為“signed Integer”</p><p> 參數(shù)“number of bits”設為“9”</p>&l
69、t;p> 不過,在圖7-9中,對h1~h24統(tǒng)一設置了一個值:512,而實際上濾波器的系數(shù)要根據(jù)具體要求進行計算。在系數(shù)計算好后,F(xiàn)IR濾波器才能真正應用。</p><p> 八、基于MATLAB的濾波器設計工具</p><p><b> (一)濾波器指標</b></p><p> 若需要設計一個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集成了一套功能強大的濾波器設計工具FDATool(Filter Design &
71、amp; Analysis Tool),可以完成多種濾波器的設計、分析和性能評估。</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> ?。ㄈ┻x擇DESIGN FILTER</p><p> FDATool 界面左下側(cè)排列了一組工具按鈕,其功能分別如下所述:</p><p> 濾波器轉(zhuǎn)換(TransForm Filer)</p><p> 設置量化參數(shù)(Set
73、 Quantization Parameters)</p><p> 實現(xiàn)模型(Realize Model)</p><p> 導入濾波器(Import Filter)</p><p> 設計濾波器(Design Filter)</p><p> 選擇其中的按鈕,進入設計濾波器界面,進行下列選擇:</p><p&g
74、t; 1. 濾波器類型(Filter Type)為低通(Lowpass);</p><p> 2. 設計方法(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> 設置好后的界面見圖8-3。</p><p> 圖8-3 濾波器設計界面</p><p> 注意:在濾波器階數(shù)選擇時,在此設置的是19階,而不是20階!這是由于在前面設計的20階FIR濾波器的常系數(shù)項。其系統(tǒng)函數(shù)可用下式來表示:</p><p><b>
76、 (8-1)</b></p><p><b> 顯然上式可以寫成:</b></p><p><b> ?。?-2)</b></p><p> 即可以看成是一個19階的FIR濾波器的輸出結(jié)果經(jīng)過了一個單位延時單元,以在FDATool中把它當成19階FIR濾波器來計算參數(shù)。</p><p&g
77、t; 點擊 Design Filter ,讓MATLAB計算FIR濾波器系數(shù)并作相關分析。</p><p><b> ?。ㄋ模V波器分析</b></p><p> 計算完FIR濾波器系統(tǒng)分析后,往往需要對設計好的FIR濾波器進行相關的性能分析,以便了解該濾波器是否滿足設計要求。分析操作步驟如下:</p><p> 1. 選擇FDATool
78、的菜單“Analysis”→“Magnitude Response”,啟動幅頻響應分析。圖8-4顯示了濾波器的幅頻響應圖,x軸為頻率,y軸為幅度值(單位為dB)。</p><p> 在圖的左側(cè)列出了當前濾波器的相關信息:</p><p> (1)濾波器類型為Direct form FIR(直接I型FIR濾波器)</p><p> (2)濾波器階數(shù)為19<
79、/p><p> 注意:不是每種FIR濾波器設計方法計算出的濾波器都是直接I型結(jié)構的。如果在DSP Builder中設計的FIR濾波器為直接I型結(jié)構,那就必須保證再這里顯示的FIR濾波器結(jié)構為“Direct form FIR”。</p><p> 圖8-4 FIR濾波器的幅頻響應</p><p> 2. 選擇菜單“Analysis”→“Phase Response
80、”,啟動相頻響應分析。圖8-5顯示了濾波器的相頻響應。由圖可以看到設計的FIR濾波器在通帶內(nèi)相位響應為線性的,即該濾波器是一個線形相位濾波器。</p><p> 圖8-5 FIR濾波器的相頻響應</p><p> 3. 圖8-6顯示了濾波器幅頻特性與相頻特性的比較。這可以通過菜單選擇“Analysis”→“Magnitude﹠Phase Response”來啟動分析。</p&g
81、t;<p> 圖8-6 幅頻響應與相頻響應的比較</p><p> 4. 選擇菜單“Analysis”→“Group Delay Response”,啟動群延時分析,波形如圖8-7所示。</p><p> 圖8-7 群延時</p><p> 5. 在菜單“Analysis”下還有一些分析:</p><p> (
82、1)“Impulse Response”:沖激響應,見圖8-8。</p><p> (2) “Step Response”:階躍響應,見圖8-9。</p><p> (3) “Pole/Zero Plot”:零極點圖,見圖8-10。</p><p> 由于直接I型FIR濾波器只有零點,所以在圖8-10中不存在極點。</p><p>
83、圖8-8 FIR濾波器的沖激響應</p><p> 圖8-9 FIR濾波器的階躍響應</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> ?。ㄎ澹┝炕?lt;/b></p><p> 從圖8-11可以看到,F(xiàn)DATool計算出的值是一個有符號小數(shù),而在DSP Builder下建立的FIR濾波器模型需要一個整數(shù)作為濾波器系數(shù)。所以必須進行量化,并對得到的系數(shù)進行歸一化。為此,點擊FDATool左下側(cè)的工具按鈕進行
85、量化參數(shù)設置。在設置“Turnquantization on”前選擇“√”。如圖8-12所示。</p><p> 圖8-12 量化參數(shù)設置</p><p> 在濾波器的設計指標中,已經(jīng)提到FIR濾波器的輸入位寬是9位,表示為有符號數(shù)。在圖8-12中設置前4項的量化格式(Format)為“[16 15]”,表示量化后位寬為16位,絕對值為15位;設置后2項(乘積、乘積和)的量化格式為
86、“[32 30]”。</p><p> 點擊Optimization按鈕,打開圖8-13所示的對話框。在此量化優(yōu)化設置對話框中選擇相關的優(yōu)化選項。</p><p> 圖8-13 量化優(yōu)化設置對話框</p><p> 圖8-14中顯示了量化后的部分系數(shù)值。注意在這里系數(shù)仍是用小數(shù)表示的,不同于量化前的系數(shù),現(xiàn)在其二進制表示的位數(shù)已滿足量化要求。</p&
87、gt;<p> 圖8-14 量化后的系數(shù)值</p><p> 設計的FIR濾波器在量化后濾波器的性能會有所改變,其幅頻響應、相頻響應也有所變化。圖8-15為量化后的幅頻、相頻響應波形圖。</p><p> 圖8-15 量化后的幅頻、相頻響應</p><p> 量化在帶來實現(xiàn)方便的同時也帶來了量化噪聲,圖8-16顯示了量化帶來的噪聲分析。<
88、;/p><p> 圖8-16 量化后的噪聲分析</p><p> ?。С鰹V波器系數(shù)</p><p> 為導出設計好的濾波器系數(shù),選擇FDATool菜單的“File”→“Export….”,打開導出(Export)對話框,如圖8-17所示。</p><p> 圖8-17 導出系數(shù)對話框</p><p> 在該
89、窗口中,選擇導出到工作區(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低通濾波器的設計。</p><p> ?。ò耍С鰹V波器系數(shù)的另一種方法</p><p>
93、; 按照上面介紹的導出濾波器系數(shù)的方法在FIR濾波器階數(shù)較大時就不太方便,而且在設計要求有所變化時系數(shù)的修改極為不利。可以按照以下方法來導出:</p><p> 把FIR濾波器模型中的h1~h24模塊的參數(shù)“Constant Value(常數(shù)值)”設置為:</p><p> Num*(2^15)</p><p> 其中Num同上文所述,是FDATool的導出
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ù)字濾波器能夠成功運行,且所設計濾波器穩(wěn)定性好,精確度高,不易受環(huán)境影響。在利用F
95、PGA進行數(shù)字濾波器的開發(fā)時,采用基于Matlab環(huán)境的DSP Builder作為設計工具可以更方便的建立模型,完成整個設計。當然,在實際應用中,受精度、速度和器件選擇方面的影響,可以對其轉(zhuǎn)化的VHDL進行進一步的優(yōu)化。</p><p> 通過這次畢業(yè)設計,我不僅鞏固以前所學的知識,并且又新學到了不少的有用的知識,不但使我提高了自己的能力也知道了自己的不足。我深刻地認識到,只有單純的理論知識是不行的,必須多實踐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號處理課程設計--基于dsp 的 fir 數(shù)字濾波器的設計
- 數(shù)字信號課程設計---fir數(shù)字濾波器
- 數(shù)字信號處理課程設計--fir數(shù)字濾波器的設計
- 數(shù)字信號處理課程設計--數(shù)字濾波器
- 數(shù)字信號處理課程設計--數(shù)字濾波器
- dsp課程設計fir數(shù)字濾波器
- fir數(shù)字濾波器的dsp課程設計
- 數(shù)字信號處理課程設計-- 用窗函數(shù)法設計fir數(shù)字濾波器
- 用窗函數(shù)法設計fir數(shù)字濾波器-數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計---數(shù)字濾波器設計及濾波
- 數(shù)字信號處理課程設計-- iir數(shù)字濾波器的設計
- 數(shù)字信號處理課程設計報告--- 數(shù)字濾波器的設計
- 數(shù)字信號處理課程設計報告--fir數(shù)字濾波器設計及matlab實現(xiàn)
- 數(shù)字信號處理課程設計---fir數(shù)字濾波器的矩形窗函數(shù)法設計
- 數(shù)字信號處理課程設計---數(shù)字濾波器的設計及實現(xiàn)
- 數(shù)字信號處理課程設計--fir數(shù)字濾波器的凱澤窗函數(shù)法設計
- 基于dsp 的fir數(shù)字濾波器設計
- 數(shù)字信號課程設計報告--數(shù)字濾波器設計
- matlab課程設計---fir數(shù)字濾波器
- 數(shù)字信號課程設計---fir數(shù)字濾波器的(海明)窗函數(shù)法設計
評論
0/150
提交評論