




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于MATLAB的濾波器設(shè)計(jì)由于MATLAB的廣泛使用和功能的不斷更新,基于 MATLAB的濾波器設(shè)計(jì)方法以其方便快捷 的特點(diǎn),受到了設(shè)計(jì)者的歡迎。下面將舉例說(shuō)明基于 MATLAB的FIR濾波器的設(shè)計(jì)。1基于FDATool的FIR濾波器設(shè)計(jì)使用FDATool設(shè)計(jì)FIR濾波器的具體步驟如下:1.1 濾波器指標(biāo)若需要設(shè)計(jì)一個(gè)16階的FIR濾波器(h(0)=0),給定的參數(shù)如下:(1)低通濾波器(2)采樣頻率Fs為48kHz,濾波器Fc為10.8kHz(3)輸入序列位寬為9位(最高位為符號(hào)位)在此利用MATLAB來(lái)完成FIR濾波器系數(shù)的確定。1.2 打開(kāi) MATLAB 的 FDAToolMATLAB
2、集成了一套功能強(qiáng)大的濾波器設(shè)計(jì)工具 FDATool (Filter Design & Analysis Tool),可以 完成多種濾波器的設(shè)計(jì)、分析和性能評(píng)估。單擊MATLAB主窗口下方的“Start”按鈕,如圖B.1所示,選擇菜單“ToolBox” 一“Filter Design” “Filter Design & Analysis Tool (FDATool)” 命令,打開(kāi) FDATool,如圖 B.2所示。D M 占 & c一理必足乂 Ct ;fi. aeds e rkjoas 不Ojnsrl F.er Wnmiton防uctLfe 60 S«cl
3、87;ns $lHi« SOJtC*YetStor-t Fil«r ftp圖B.2 FDATool的主界面另外,在MATLAB主命令窗口內(nèi)鍵入" fdatool”,同樣可打開(kāi)FDATool程序界面1.3 選擇 Design FilterFDATool界面左下側(cè)排列了一組工具按鈕,其功能分別如下所述: 濾波器轉(zhuǎn)換(TransForm Filter) 設(shè)置量化參數(shù)(Set Quantization ParameterS 實(shí)現(xiàn)模型(Realize Model) 導(dǎo)入濾波器(Import Filter) 多速率濾波器(Multirate Filter) 零極點(diǎn)編輯器(Po
4、le-zero Editor-) 設(shè)計(jì)濾波器(Design Filter)選擇其中的按鈕,進(jìn)入設(shè)計(jì)濾波器界面,進(jìn)行下列選擇,如圖 B.3所示。歡迎下載2圖B.3 FDATool設(shè)計(jì)FIR濾波器 濾波器類(lèi)型(Filer Type)為低通(Low PasS 設(shè)計(jì)方法(Design Method)為FIR,采用窗函數(shù)法(Window) 濾波器階數(shù)(Filter order)定制為15 窗口 類(lèi)型為 Kaiser, Beta 為 0.5 Fs 為 48kHz, Fc 為 10.8kHz最后單擊Design Filter圖標(biāo),讓MATLAB計(jì)算FIR濾波器系數(shù)并作相關(guān)分析其系統(tǒng)函數(shù)H(z)可用下式來(lái)表示
5、:H(z)=bkz kk 1顯然上式可以寫(xiě)成15H(z)= z 1bkzk 01 -即可以看成是一個(gè)15階的FIR濾波器的輸出結(jié)果經(jīng)過(guò)了一個(gè)單位延時(shí)單兀 z,所以在FDATool中,把它看成15階FIR濾波器來(lái)計(jì)算參數(shù)。1.4濾波器分析計(jì)算完FIR濾波器系數(shù)以后,往往需要對(duì)設(shè)計(jì)好的FIR濾波器進(jìn)行相關(guān)的性能分析,以便了解該濾波器是否滿足設(shè)計(jì)要求。分析操作步驟如下: 歡迎下載選擇FDATool的菜單“Analysis 一 "Magnitude Response,啟動(dòng)幅頻響應(yīng)分析如圖 B.4所示,x軸為頻率,y軸為幅度值(單位為dB)-IDO0歡迎下載10圖B.4 FIR濾波器幅頻響應(yīng)在
6、圖的左側(cè)列出了當(dāng)前濾波器的相關(guān)信息:濾波器類(lèi)型為Direct Form FIR (直接I型FIR濾波器)濾波器階數(shù)為15選擇菜單“Analysis” 一 “Phase Response ,啟動(dòng)相頻響應(yīng)分析,如圖 B.5所示。由該圖可以看個(gè)線性相位的濾波器到設(shè)計(jì)的FIR濾波器在通帶內(nèi)其相位響應(yīng)為線性的,即該濾波器是F-ajuency (kHz)圖B.5濾波器相頻響應(yīng)圖B.6顯示了濾波器幅頻特性與相頻特性的比較,這可以通過(guò)菜單“Analysis” 一 “Magnitude andPhase Response來(lái)啟動(dòng)分析。(卸 and Pnftse ResponsesFrequEty 附I;圖B.6濾
7、波器幅頻和相頻響應(yīng)選擇菜單“Analysis” - “Group Delay Response,啟動(dòng)群時(shí)延分析FDATool還提供了以下幾種分析工具:群時(shí)延響應(yīng)分析。 沖激響應(yīng)分析(Impulse Response,如圖B.7所示。 階躍響應(yīng)分析(Step Response,如圖B.8所示。 零極點(diǎn)圖分析(Pole/Zero Plot),如圖B.9所示。圖B.7沖激響應(yīng)圖B.8階躍響應(yīng)圖B.9零極點(diǎn)圖求出的FIR濾波器的系數(shù)可以通過(guò)選擇菜單“ Analysis” 一 “Filter Coefficients”來(lái)觀察。如圖B.10所示,圖中列出了 FDATool計(jì)算的15階直接I型FIR濾波器的
8、部分系數(shù)。vOTTOWRC Q3的司內(nèi)1孔0。1咖?養(yǎng)鴕期 7711MQ MU劃打乜67和 4.口卻2制】蛭78Mg蒯川設(shè)。祖 (ML胃碰"熱咖 0 U招40m舞湖1 O.i?365C245h-C.D4i3?nS341n -0.08?Z6?21427941? EL ODE忖的界式口孔圖B.10濾波器系數(shù)1.5 量化可以看到,F(xiàn)DATool計(jì)算出的值是一個(gè)有符號(hào)的小數(shù),如果建立的FIR濾波器模型需要一個(gè)整數(shù)作為濾波器系數(shù),就必須進(jìn)行量化,并對(duì)得到的系數(shù)進(jìn)行歸一化。為此,單擊 FDATool左下側(cè)的工 具按鈕進(jìn)行量化參數(shù)設(shè)置。量化參數(shù)有三種方式:雙精度、單精度和定點(diǎn)。在使用定點(diǎn)量化前,必
9、須 確保MATLAB中已經(jīng)安裝定點(diǎn)工具箱并有相應(yīng)的授權(quán)。1.6 導(dǎo)出濾波器系數(shù)為導(dǎo)出設(shè)計(jì)好的濾波器系數(shù),選擇 FDATool菜單的“File” 一 “Export”命令,打開(kāi)Export (導(dǎo) 出)對(duì)話框,如圖B.11所示。圖B.11濾波器系數(shù)Export對(duì)話框Num中在該窗口中,選擇導(dǎo)出到工作區(qū)(Workplace)。這時(shí)濾波器系數(shù)就存入到一個(gè)一維變量 了。不過(guò)這時(shí)Num中的元素是以小數(shù)形式出現(xiàn)的:Num=Columns 1 through 9-0.0369 0.0109 0.0558 0.0054 -0.0873 -0.0484 0.1805 0.4133 0.4133Columns 10
10、 through 160.1805 -0.0484 -0.0873 0.0054 0.0558 0.0109 -0.03692 基于MATLAB內(nèi)建函數(shù)的FIR設(shè)計(jì)在Matlab中已經(jīng)內(nèi)建有各種濾波器的設(shè)計(jì)函數(shù),可以直接在程序中調(diào)用,這里介紹其中幾個(gè)函 數(shù)。2.1 fir1 函數(shù)功能:設(shè)計(jì)標(biāo)準(zhǔn)頻率響應(yīng)的基于窗函數(shù)的FIR濾波器。語(yǔ)法:b=fir1(n, Wn);b=fir1(n, Wn, 'ftytpe');b=fir1(n , Wn, Window);b=fir1(n, Wn, 'ftype', Window);說(shuō)明:fir1函數(shù)可以實(shí)現(xiàn)加窗線形相位 FIR數(shù)
11、字濾波器設(shè)計(jì),它可以設(shè)計(jì)出標(biāo)準(zhǔn)的低通、高通、 帶通和帶阻濾波器。b=fir1(n, Wn)可得到n階低通,截至頻率為 Wn的漢明加窗線形相位FIR濾波器,0<Wn< 1, Wn=1相當(dāng)于0.5fs。濾波器系數(shù)包含在b中,可表示為b(z) b(1) b(2)z 1 b(n 1)Z n當(dāng)Wn=W1 W2時(shí),fir1函數(shù)可得到帶通濾波器,具通帶為 WKw<W20當(dāng)ftype=high時(shí),設(shè)計(jì)高通FIR濾波器;當(dāng)ftype=stop時(shí),設(shè)計(jì)帶阻濾波器。在設(shè)計(jì)高通和帶阻濾波器時(shí),由于對(duì)奇次階的濾波器,其在Nyquist頻率處的頻率響應(yīng)為零,不適合構(gòu)成高通和帶阻濾波器。因此firl函數(shù)總
12、是使用階數(shù)為偶數(shù)的濾波器,當(dāng)輸入的階數(shù)為奇數(shù)時(shí), firl函數(shù)會(huì)自動(dòng)將階數(shù)加1。b=fir1(n , Wn, Window)利用參數(shù) Window來(lái)指定濾波器采用的窗函數(shù)類(lèi)型。其默認(rèn)值為漢明窗。b=fir1(n , Wn, 'ftype', Window)可利用 ftype 和 Window 參數(shù),設(shè)計(jì)各種濾波器。2.2 fir2 函數(shù)功能:設(shè)計(jì)任意頻率響應(yīng)的基于窗函數(shù)的FIR濾波器。語(yǔ)法:b=fir2 (n, f, m)b=fir2 (n, f, m, Window);b=fir2 (n, f, m, npt);b=fir2 (n, f, m,npt, window);b=f
13、ir2 (n, f, m, npt, lap);b=fir2 (n, f, m,npt, lap, Window);說(shuō)明:巾r2函數(shù)可以用于設(shè)計(jì)有任意頻率響應(yīng)的加窗 FIR濾波器,對(duì)標(biāo)準(zhǔn)的低通、帶通、高通和 帶阻濾波器的設(shè)計(jì)可使用fiU函數(shù)。b=fir2 (n, f, m)可設(shè)計(jì)出一個(gè)n階的FIR濾波器,具濾波器的頻率特性由參數(shù) f和m決定。 參數(shù)f為頻率點(diǎn)矢量,且f 0, 1, f=1對(duì)應(yīng)于0.5fs。矢量f按升序排列,且第一個(gè)元素必須是 0, 最后一個(gè)必須為1,并可以包含重復(fù)的頻率點(diǎn)。矢量m中包含了與f相對(duì)應(yīng)的期望得到的濾波器的幅 度。b=fir2 (n, f, m, Window)中用參
14、數(shù) Window來(lái)指定使用的窗函數(shù)類(lèi)型,默認(rèn)值為漢明窗。b=fir2 (n, f, m, npt)中用參數(shù)npt來(lái)指定巾r2函數(shù)對(duì)頻率響應(yīng)進(jìn)行內(nèi)插的點(diǎn)數(shù)。b=fir2 (n, f, m, npt, lap)中用參數(shù)lap來(lái)指定巾r2在重復(fù)頻率點(diǎn)附近插入的區(qū)域大小。3 基于FDATool的HDL代碼產(chǎn)生在MATLAB 7中,對(duì)數(shù)字濾波器的設(shè)計(jì)提供了與若干種現(xiàn)實(shí)方案的接口。此類(lèi)接口提供MATLAB到設(shè)計(jì)工具的無(wú)縫連接,即MATLAB根據(jù)設(shè)計(jì)工具的文件格式,將包含濾波器設(shè)計(jì)參數(shù)的 文件輸出。設(shè)計(jì)工具導(dǎo)入該文件,并作為設(shè)計(jì)模塊的一部分。在此類(lèi)接口中包括與Xilinx公司和TI公司的接口,還包括C頭文件
15、以及HDL代碼。與FDATool的啟動(dòng)類(lèi)似,單擊 MATLAB主窗口下方的“ Start”按鈕,選擇“ToolBox” 一 “Filter Design HDL coder” - “ Filter Design & Analysis Tool(FDATool) ” ,打開(kāi) FDATool。根據(jù)上節(jié)相同的設(shè)計(jì)和分析步驟,對(duì)FIR濾波器進(jìn)行分析和設(shè)計(jì),在設(shè)計(jì)完畢之后,可以得到濾波器系數(shù)。此時(shí)就可以應(yīng)用設(shè)計(jì)工具接口。3.1 C語(yǔ)言頭文件的產(chǎn)生選擇FDATool菜單的“Targets' 一 "Generate C HeadgT命令,打開(kāi)產(chǎn)生 C語(yǔ)言頭文件的窗口, 如圖B.12
16、所示。圖B.12產(chǎn)生C語(yǔ)言頭文件可以看到輸出的頭文件中,變量名和變量長(zhǎng)度名可以自定義,變量輸出的格式也有很多種可以選 擇。根據(jù)在FDATool量化時(shí)選用的量化方式,窗口中會(huì)顯示推薦使用的輸出格式。產(chǎn)生的頭文件內(nèi)容如下:/* Filter Coefficients (C Source) generated by the Filter Design and Analysis Tool* Generated by MATLAB(R) 7.0* Generate on: 22-Dec-2005 11:42:24*/* Discrete-Time FIR Filter (real)* FilterStr
17、ucture:Direct-Form FIR* FilterOrder:15* Stable:Yes* LinearPhase:Yes (Type 2)*/* General type conversion for MATLAB generated C-code */* include “ tmwtypes.h"/* Expected path to tmwtypes.h* C:MATLAB7externincludetmwtype.h*/const int BL = 16;const real64_T B16=1.1 03687003131181, 0.01091744268631
18、,0.0558306521771, 0.005429393216792,1.2 08726921427845,-0.04839711653448, 0.1804973650249, 0.41334007432590.4133400743259, 0.1804973650249, -0.04839711653448, -0.08726921427845,0.005429393216792, 0.0558306521771,0.01091744268631, -0.03687003131181;1.3 Xilinx系數(shù)文件的產(chǎn)生選擇 FDATool 菜單的 “Targets' 一 &quo
19、t;Xilinx Coefficients (.COE) file” 命令,MATLAB 直接提示 文件的保存位置,保存完畢之后另開(kāi)一個(gè)窗口顯示該文件的內(nèi)容。典型的文件內(nèi)容如下所示。;XILINX CORE Generator(tm) Distributed Arithmetic FIR filter coefficient (.COE) File;Generated by MATLAB (R) 7.0 and the Filter Design Toolbox 3.0.;Generated on: 22-Dec-2005 12 : 03: 10;Radix = 16 ;Coefficient
20、_Width = 16 ;CoefData = 0000,079c,05a2,f90b,f166,2272,4000,4000,2272,0000,f166,f90b,05a2,079c,0000;這些系數(shù)已經(jīng)運(yùn)用二進(jìn)制補(bǔ)碼對(duì)其進(jìn)行了運(yùn)算,所以可以表示成十六進(jìn)制。1.4 CCS 接口CCS (Code Composer Studio)是TI公司為其數(shù)字信號(hào)處理器開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境(IDE)。在 HDL coder中,可以向CCS輸出C語(yǔ)言頭文件或者直接寫(xiě)入處理器的存儲(chǔ)空間中,然后由 CCS本身 作進(jìn)一步的處理。在此接口中,可以選擇目標(biāo)板和目標(biāo)處理器的型號(hào),在這里目標(biāo)板的型號(hào)一般只能是TI公司提
21、供的專(zhuān)用EVM板。上述型號(hào)必須手動(dòng)輸入。選擇 FDATool 菜單的 “Targets' "Code Composer Studio(R)IDE'命令,打開(kāi) CCS接口。止匕接 口的窗口如圖B.13所示。圖B.13 CCS接口窗口1.5 HDL語(yǔ)言的生成選才? FDATool菜單的“Targets' 一 "Generate HDL”命令,fT開(kāi)生成HDL源代碼的窗口,該窗歡迎下載18口如圖B.14所示圖B.14生成HDL源代碼的窗口在生成HDL文件時(shí),可以選擇生成 VHDL或是Verilog HDL。可以對(duì)時(shí)鐘信號(hào)、復(fù)位信號(hào)、進(jìn) 程、構(gòu)造體和實(shí)體的定
22、義等等進(jìn)行設(shè)置。最后可以選擇文件輸出的文件夾和文件名。文件一般有如下內(nèi)容和格式:- - Module : filter- - Generated by MATLAB(R) 7.0 and the Filter Design HDL Coder 1.0- - Generated on : 2005-12-22 12:33:35- - HDL Code- -此處顯示濾波器特性以及輸出HDL代碼時(shí)的設(shè)置LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.numeric_std.ALL;ENTITY filter ISPORT ( clk:INstd_l
23、ogic;clk_enable :INstd_logic;resetIN std_logic;filter_in : IN std_logic_vector (15 DOWNTO 0) ; - sfix16_En15filter_out : OUT std_logic_vector (15 DOWNTO 0) -sfix16_En9 );END filter;-Module Architecture : filterARCHITECTURE rt1 OF filter IS-局部函數(shù)-類(lèi)定義TYPE delay_pipeline_type IS ARRAY (NATURAL range o )
24、 OF signed (15 DOWNTO 0);-sfix16_En15-定義常數(shù)CONSTANT coeff1:signed(15 DOWNTO 0):=to_signed(0,16);-sfix16_En14CONSTANT coeff2:signed(15 DOWNTO 0):=to_signed(1948,16);-sfix16_En14CONSTANT coeff3:signed(15 DOWNTO 0):=to_signed(1442,16);-sfix16_En14CONSTANT coeff4:signed(15 DOWNTO 0):=to_signed(-1781,16);
25、-sfix16_En14CONSTANT coeff1:signed(15 DOWNTO 0):=to_signed(0,16);-sfix16_En14CONSTANT coeff2:signed(15 DOWNTO 0):=to_signed(1948,16);-sfix16_En14CONSTANT coeff3:signed(15 DOWNTO 0):=to_signed(1442,16);-sfix16_En14CONSTANT coeff4:signed(15 DOWNTO 0):=to_signed(-1781,16);-sfix16_En14CONSTANT coeff5:si
26、gned(15 DOWNTO 0):=to_signed(-3738,16);-sfix16_En14CONSTANT coeff6:signed(15 DOWNTO 0):=to_signed(0,16);-sfix16_En14CONSTANT coeff7:signed(15 DOWNTO 0):=to_signed(8818,16);-sfix16_En14CONSTANT coeff8:signed(15 DOWNTO 0):=to_signed(16384,16);-sfix16_En14CONSTANT coeff9:signed(15 DOWNTO 0):=to_signed(
27、16384,16);-sfix16_En14CONSTANT coeff10:signed(15 DOWNTO 0):=to_signed(8818,16);-sfix16_En14CONSTANT coeff11:signed(15 DOWNTO 0):=to_signed(0,16);-sfix16_En14CONSTANT coeff12:signed(15DOWNTO 0):=to_signed(-3738,16);-sfix16_En14CONSTANT coeff13:signed(15DOWNTO 0):=to_signed(-1781,16);-sfix16_En14CONST
28、ANT coeff14 :signed(15DOWNTO 0):=to_signed(1442,16);-sfix16_En14CONSTANT coeff15:signed(15 DOWNTO 0):=to_signed(1948,16);-sfix16_En14CONSTANT coeff16:signed(15 DOWNTO 0):=to_signed(0,16);-sfix16_En14-彳口 pSIGNAL delay_pipeline:delay_pipeline_type (0 To 15);sfix16_En15SIGNAL product15:signed(31DOWNTO0
29、);-Sfix32_En29SIGNAL product14:signed(31DOWNTO0);-Sfix32_En29SIGNAL product13:signed(31DOWNTO0);-Sfix32_En29SIGNAL product12:signed(31DOWNTO0);- Sfix32_En29SIGNAL product10:signed(31DOWNTO0);- Sfix32_En29SIGNAL product9:signed(31DOWNTO0);- Sfix32_En29SIGNAL product8:signed(31DOWNTO0);- Sfix32_En29SI
30、GNAL product7:signed(31DOWNTO0);- Sfix32_En29SIGNAL product5:signed(31DOWNTO0);- Sfix32_En29SIGNAL product4:signed(31DOWNTO0);- Sfix32_En29SIGNAL product3:signed(31DOWNTO0);- Sfix32_En29SIGNAL product2:signed(31DOWNTO0);- Sfix32_En29SIGNAL sum1:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp:signed(3
31、2 DOWNTO0);-sfix33_En29SIGNAL sum2:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_1:signed(40 DOWNTO0);-sfix41_En29SIGNAL sum3:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_2:signed(40 DOWNTO0);-sfix41_En29SIGNAL sum4:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_3:signed(40 DOWNTO0);-sfix41_En29S
32、IGNAL sum5:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_4:signed(40 DOWNTO0);-sfix41_En29SIGNAL sum6:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_5:signed(40 DOWNTO0);-sfix41_En29SIGNAL sum7:signed(39 DOWNTO0);-sfix40_En29SIGNAL add_temp_6:signed(40 DOWNTO0);-sfix41_En29SIGNAL sum8:signed(39 DOW
33、NTO0);-sfix40_En29SIGNAL add_temp_7:signed(40 DOWNTO0);-sfix41_En290);-sfix40_En290);-sfix41_En290);-sfix40_En290);-sfix41_En290);-sfix40_En290);-sfix41_En29SIGNAL sum9SIGNAL add_temp_8SIGNAL sum10SIGNAL add_temp_9SIGNAL sumllSIGNAL add_temp_10:signed(39 DOWNTO:signed(40 DOWNTO:signed(39 DOWNTO:sign
34、ed(40 DOWNTO:signed(39 DOWNTO:signed(40 DOWNTOSIGNAL output_typeconvert :signed (15 DOWNTO 0); - Sfix16_EN9SIGNAL output_register:signed (15 DOWNTO0); - Sfix16_EN9BEGIN-塊聲明Delay_pipeline_process : PROCESS (clk , reset )BEGINIF reset =1' THENdelay_pipeline(0 to 15 )<=(OTHERS=>(OTHERS=> &
35、#39; 0');ELSIF clk ' event AND clk =' 1' THENIF clkenable= ' 1' THENdelay_pipeline(0)<=signed(fliter_in);delay_pipeline(1 to 15 )<=delay_pipeline(0 to 14);END IF ;END IF ;END PROCESS Delay_pipeline_process;Product15 <= delay_pipeline(14) * coeff15 ;Product14 <= de
36、lay_pipeline(13) * coeff14 ;Product13 <= delay_pipeline(12) * coeff13 ;Product12 <= delay_pipeline(11) * coeff12 ;00000000000000 ” ,32);00000000000000 ” ,32);Product10 <= delay_pipeline(9) * coeff10;Product9 <= resize(delay_pipeline(8)(15 DOWNTO 0) &Product8 <= resize(delay_pipeli
37、ne(7)(15 DOWNTO 0) &Product7 <= delay_pipeline(6)* coeff7;Product5 <= delay_pipeline(4)* coeff5 ;Product4<= delay_pipeline(3) * coeff4 ;Product3 <= delay_pipeline(2) * coeff3 ;Product2 <= delay_pipeline* coeff2 ;add_temp<=resize(product2 ,33) +resize(product3,33);Sum1<=resiz
38、e(add_temp,40);add_temp_1<=resize(sum1 ,41) +resize(product4,41);Sum2<= add_temp_1 (39 DOWNTO 0);add_temp_2<=resize(sum2 ,41) +resize(product5,41);Sum3<= add_temp_2 (39 DOWNTO 0);add_temp_3<=resize(sum3 ,41) +resize(product7,41);Sum4<= add_temp_3 (39 DOWNTO 0);add_temp_4<=resize
39、(sum4,41) +resize(product8,41);Sum5<= add_temp_4 (39 DOWNTO 0);add_temp_5<=resize(sum5 ,41) +resize(product9,41);Sum6<= add_temp_5 (39 DOWNTO 0);add_temp_6<=resize(sum6 ,41) +resize(product10,41);Sum7<= add_temp_6 (39 DOWNTO 0);add_temp_7<=resize(sum7 ,41) +resize(product12,41);Sum
40、8<= add_temp_7(39 DOWNTO 0);add_temp_8<=resize(sum8 ,41) +resize(product13,41);Sum9<= add_temp_8 (39 DOWNTO 0);add_temp_9<=resize(sum9 ,41) +resize(product14,41);Sum10<= add_temp_9 (39 DOWNTO 0);add_temp_10<=resize(sum10 ,41) +resize(product15,41);Sum11<= add_temp_10 (39 DOWNTO
41、0);output_typeconvert<=resize(shift_right(sum11(35 DOWNTO 0)+( "0"(SUm11 (20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20) & NOT sum11(20)& NOT sum11(20)& NOT sum11(20)& NOT su
42、m11(20)& NOT sum11(20)& NOT sum11(20)& NOT sum11(20) & NOT sum11(20) & NOT sum11(20)& NOT sum11(20) & NOT sum11(20)& NOTsum11(20),20 ) ,16);Output_Register_process : PROCESS (clk ,reset)BEGINIF reset =' 1' THENOutput_register<=(OTHERS=> ' 0');ELS
43、IF clk ' event AND clk =' 1' THENIF clk_enable =' 1' THENOutput_register<=output_typeconvert;END IF;END IF;END PROCESS Output_Register_process;-任務(wù)聲明filter_out <=std_logic_vector(output_register);END rtl;與此同時(shí),還會(huì)生成一個(gè)所謂test bench文件,產(chǎn)生用于檢驗(yàn)濾波器響應(yīng)的測(cè)試向量實(shí)驗(yàn)3:設(shè)計(jì)FIR (有限沖激響應(yīng))濾波器針對(duì)Sparta
44、n-3E開(kāi)發(fā)套件介紹在這個(gè)實(shí)驗(yàn)里,將向你展示通過(guò)系統(tǒng)發(fā)生器的FIR和FDATool模塊來(lái)指定、模擬和實(shí)現(xiàn)FIR濾波器的方法FDATool模塊被用來(lái)定義濾波器的階數(shù)和系數(shù),F(xiàn)IR模塊被用作 Simulink模擬以及在 FPGA中用XilinxISE來(lái)實(shí)現(xiàn)設(shè)計(jì).你也可以通過(guò)實(shí)際硬件來(lái)運(yùn)行它以驗(yàn)證這個(gè)設(shè)計(jì)的功能注意:在 c:xupdsp_flowlabslabsolutionslab3目錄下有完整的例子.目標(biāo)在完成這個(gè)試驗(yàn)后,你將能夠:?用FDATool模塊輸入你的濾波器指數(shù),在設(shè)計(jì)中使用產(chǎn)生的系統(tǒng)或把它儲(chǔ)存在工作區(qū)?使用具有 FDATool模塊產(chǎn)生的系數(shù)的 FIR模塊,并在Simulink中運(yùn)行b
45、it-true仿真 ?產(chǎn)生設(shè)計(jì)并用 Resource Estimator模塊和post-map報(bào)告估計(jì)資源利用量設(shè)計(jì)描述你是Cyberdyne系統(tǒng)的一個(gè)dsp設(shè)計(jì)者.你的公司正在調(diào)查用數(shù)字濾波器代替安防檢測(cè)器中的模擬濾波器,以嘗試提高性能和降低整個(gè)系統(tǒng)的成本.這將使貴公司可以進(jìn)一步滲入日益增長(zhǎng)的安防市場(chǎng) .一個(gè)單頻取樣濾波器設(shè)計(jì)如下:? Sampling Frequency (Fs)(采樣頻率)=1.5 MHz? Fstop 1 = 270 kHz? Fpass 1 = 300 kHz? Fpass 2 = 450 khz? Fstop 2 = 480 kHz? Attenuation on
46、both sides of the passband (雙邊通頻帶衰減)=54 dB? Pass band ripple (通頻帶脈動(dòng))=1因?yàn)殪`活性和上市時(shí)間的原因,Cyberdyne已經(jīng)選擇FPGA來(lái)實(shí)現(xiàn)它.你的HDL設(shè)計(jì)經(jīng)驗(yàn)是有限的.因?yàn)槟銓?duì)MathWorks的產(chǎn)品比較熟悉,所以 System Generator for DSP會(huì)是一個(gè)在 FPGA中實(shí)現(xiàn)濾波器的優(yōu)秀解決方案 .你的經(jīng)理Miles Booth已經(jīng)要求你創(chuàng)建一個(gè)在即將完成的Spartan-3E? 原型板上實(shí)現(xiàn)的濾波器的原型.這個(gè)原型必須盡可能快地完成,這是因?yàn)锳ggressive Security會(huì)議即將來(lái)臨,這個(gè)會(huì)議是業(yè)界
47、今年最大的會(huì)議,我們不能錯(cuò)過(guò)它.你的經(jīng)理已經(jīng)提供了具有輸入源和輸出接收端的最初模型.你的設(shè)計(jì)必須用隨機(jī)輸入源和來(lái)自DSP Blockset的chirp信號(hào)來(lái)仿真.為分析濾波器的輸出,輸入和輸出信號(hào)在頻譜示波器中顯示.頻譜示波器用來(lái)比較在 FPGA中實(shí)現(xiàn)的定點(diǎn) FIR濾波器的錄放頻譜響應(yīng) .兩個(gè)不同的輸入源用來(lái)仿真這個(gè)濾波器:?chirp信號(hào)1K塊,其掃描頻率為6 KHz到10 KHz ,不管其瞬時(shí)輸出頻率?隨機(jī)信號(hào)源發(fā)生器,它輸出范圍在-1.9到1.9的均勻分布的隨機(jī)信號(hào).因?yàn)榫鶆蛐盘?hào)是有界的,它是驅(qū)動(dòng)定點(diǎn) 濾波器的較好的選擇.設(shè)計(jì)流程這個(gè)試驗(yàn)由六個(gè)主要步驟組成.在步驟1,你將用系統(tǒng)發(fā)生器的
48、FDATool模塊來(lái)產(chǎn)生指定FIR濾波器的系數(shù).在步驟2,你 將把這個(gè)系數(shù)與 FIR filter模塊聯(lián)系起來(lái).步驟3要求你用兩個(gè)已提供的輸入源仿真這個(gè)設(shè)計(jì)并分析系數(shù)和輸入信號(hào)寬度變化的影響.在步驟4,你將要添加一個(gè)轉(zhuǎn)換模塊以調(diào)整輸出寬度,添加一個(gè)延時(shí)模塊以提高效率,添加一個(gè)資源估計(jì)模塊以估計(jì)資源占用量,從而完成整個(gè)設(shè)計(jì) .在下一步將實(shí)現(xiàn)這個(gè)設(shè)計(jì).在每一步總的指示下面,你會(huì)發(fā)現(xiàn)手把手的說(shuō)明和圖表,指 出了實(shí)現(xiàn)總的指示的更多細(xì)節(jié).如果你對(duì)個(gè)別指導(dǎo)有信心,可以略過(guò)手把手的說(shuō)明,跳到下一步的總指示.注意:如果你當(dāng)時(shí)不能完成這個(gè)實(shí)驗(yàn) ,你可以從Xilinx大學(xué)計(jì)劃網(wǎng)站 下載實(shí)驗(yàn)文件產(chǎn)生FIR濾波器所需
49、的系數(shù)步驟1實(shí)驗(yàn)總流程:步驟1:產(chǎn)生.步驟2: i步驟3:步驟4:小U把系數(shù)與濾口仿真 完成整個(gè)口歡迎下載濾波器波器相關(guān)聯(lián)濾波器設(shè)計(jì)18歡迎下載27Step 5:實(shí)現(xiàn)設(shè)計(jì)Step 6:估計(jì)資源 占用量Step 7:執(zhí)行HW-in-the-Loop從Xilinx Blockset DSP blockset中添力口 FDATool模塊到包含一個(gè) DA FIR 濾波器的設(shè)計(jì)中按照下列要求用FDATool模塊產(chǎn)生FIR濾波器的系數(shù)? Sampling Frequency (Fs)(采樣頻率)=1.5 MHz? Fstop 1 = 270 KHz? Fpass 1 = 300 KHz? Fpass 2
50、= 450 Khz? Fstop 2 = 480 KHz? Attenuation on both sides of the passband (雙邊通頻帶衰減) =54 dB? Pass band ripple (通頻帶脈動(dòng))=1在 Matlab中,改變目錄為 c:/xup/dsp_flow/labs/lab3/ : 在命令行窗口鍵入cd c:/xup/dsp_flow/labs/lab3/從MATLAB 控制臺(tái)窗口打開(kāi) bandpass_filter.mdl 模塊從 Xilinx Blockset DSP添加FDATool模塊到這個(gè)設(shè)計(jì)在FDATool Design Filter 窗口(圖
51、3-1)輸入下列濾波器參數(shù)Response Type: BandpassUnits: KHzSampling Frequency (Fs) = 1.5 MHzFstop 1 = 270 KHzFpass 1 = 300 KHzFpass 2 = 450 KhzFstop 2 = 480 KHzAttenuation on both sides of the passband = 54 dB (Astop1 and Astop2 parameters)Pass band ripple = 1 (Apass)引上自1 T MfjBlF/ii OrderH ighipa3 5, « Ean
52、dpa&sL SaHNQid機(jī)奇 Mihlirijrri 聲 hrrr Hand21n口|lDiNvr1;iflkir.D國(guó)注目口門(mén)dDa百卜,立創(chuàng);11&'KR |iDuteiViBfHh二匚壯士q曾FdFilAiT|LJRtW:l 殳啕£/,向品:&Llnrtdlijd口 0n口口IJinid | kHz工Fu. ITDOOU"歸d3一.| J7QAstop»1;FsiFpMCl 國(guó)aokv1Fp-flEEZ娟口Futapl'則AslapZIE圖3-1.在FDATool中設(shè)計(jì)一個(gè)濾波器點(diǎn)擊Design Filter按鈕以
53、確定濾波器指令頻譜窗口將被更新并顯示如圖3-2圖3-2.所設(shè)計(jì)濾波器的幅頻響應(yīng)1 .基于所定義的技術(shù)要求,最小的濾波器階數(shù)是多少 ?用File Save Session來(lái)儲(chǔ)存fda格式文件 coefficients.fda 中的系數(shù)注意:這是可選的步驟.這些系數(shù)對(duì)這個(gè)設(shè)計(jì)仍然可以利用.如果你把參數(shù)儲(chǔ)存在fda-file中,你可以通過(guò)FDATool模塊參數(shù)對(duì)話框來(lái)加載它們.用 File Export 導(dǎo)出工作區(qū)中的系數(shù),其 Numerator variable name 為 Num (圖 3-3)注意:這將在彳的MATLAB工作區(qū)添加Num變量.對(duì)于一個(gè) FIR濾波器,Num代表用在濾波器中的系
54、數(shù).因?yàn)橥ㄟ^(guò) FDATool模塊仍能利用這些系數(shù),這也是一可選的步驟EHportEwporl TcWorkspace圖3-3.在工作區(qū)中導(dǎo)出系數(shù).在MATLAB 控制臺(tái)窗口鍵入 Num來(lái)查看系數(shù)列表在MATLAB 控制臺(tái)窗口鍵入 max(Num)以確定指出系數(shù)寬度和二進(jìn)制小數(shù)點(diǎn)的最大系數(shù)值2 .填入與系數(shù)相關(guān)的下列信息最大值:最小值:把系數(shù)與FIR濾波器相關(guān)聯(lián)步驟2實(shí)驗(yàn)總流程:Step 1:GenerateFilter coSfentsImplementDesignStep 2:AssociateCoefficientstOtepterEstimateResourcesStep 3:Simul
55、ate theFilterStep 7:PerformHW-in-the-LoopStep 4:Complete theDesign從Xilinx Blockset DSP library添加FIR濾波器模塊并與產(chǎn)生的系數(shù)關(guān)聯(lián)從 Xilinx Blockset DSP library 添加 FIR (DA FIR v9_0)濾波器到設(shè)計(jì)中雙擊Xilinx FIR Filter 模塊 并在模塊參數(shù)窗口(圖3-4)中輸入以下參數(shù)? Coefficients : xlfda_numerator( ' FDATool ')? Coefficient Structure : Inferred from CoefficientsNumber of bits per Coefficients :12Binary Point for Coefficients :11Provide Valid
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 對(duì)分包單位的進(jìn)場(chǎng)安全總交底
- 2025年消霧塔項(xiàng)目發(fā)展計(jì)劃
- 《紅樓夢(mèng)》閱讀考題
- 江蘇省鹽城市射陽(yáng)縣2024-2025學(xué)年八年級(jí)下學(xué)期3月月考英語(yǔ)試題(原卷版+解析版)
- 實(shí)驗(yàn)室儀器采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 城市供水系統(tǒng)優(yōu)化管理方案
- 醫(yī)藥冷鏈運(yùn)輸公司排名
- 孝感城區(qū)智慧燃?xì)忭?xiàng)目可行性研究報(bào)告
- 開(kāi)發(fā)項(xiàng)目居間合同
- 2025年度北京市餐廳裝修與品牌故事創(chuàng)作合同
- 會(huì)展物流服務(wù)合同范例
- 2025年孝感貨運(yùn)從業(yè)資格考試
- 防災(zāi)避險(xiǎn)安全應(yīng)急知識(shí)培訓(xùn)課件
- 2023年新高考全國(guó)Ⅱ卷語(yǔ)文真題(解析版)
- 2025屆西北四省(山西、陜西、青海、寧夏)高三下學(xué)期第一次聯(lián)考英語(yǔ)試題
- 中考生物總復(fù)習(xí)《用藥、急救與健康地生活》專(zhuān)項(xiàng)測(cè)試題及答案
- 第2課 中華文化的世界意義 說(shuō)課稿-2023-2024學(xué)年高中歷史統(tǒng)編版(2019)選擇性必修3
- 2.2學(xué)會(huì)管理情緒 課件 -2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 鋼結(jié)構(gòu)廊架施工方案
- 2024版質(zhì)量管理培訓(xùn)
- 軌道及道岔安裝標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論