f.i.r.濾波器設(shè)計方案報告文件南理_第1頁
f.i.r.濾波器設(shè)計方案報告文件南理_第2頁
f.i.r.濾波器設(shè)計方案報告文件南理_第3頁
f.i.r.濾波器設(shè)計方案報告文件南理_第4頁
f.i.r.濾波器設(shè)計方案報告文件南理_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGE22共24頁1-共23頁一、設(shè)計指標:設(shè)計一個16階低通線性相位FIR濾波器;要求采樣頻率Fs為80KHz;截止頻率Fc為10KHz;采納函數(shù)窗法設(shè)計,且窗口類型為Kaiser,Beta為0.5;輸入序列位寬為10位的有符號數(shù)(最高位為符號位);輸出序列位寬為10位的有符號數(shù)(最高位為符號位)。二、線性相位fir濾波器理論:有限長脈沖響應(yīng)(FIR)濾波器的系統(tǒng)函數(shù)只有零點,除原點外,沒有極點,因而FIR濾波器總是穩(wěn)定的。如果他的單位脈沖響應(yīng)是非因果的,總能夠便利的通過適當?shù)囊莆坏玫揭蚬膯挝幻}沖響應(yīng),所以FIR濾波器不存在穩(wěn)定性和是否可實現(xiàn)的問題.它的另一個突出的優(yōu)點是在滿意肯定的對稱條件時,可以實現(xiàn)嚴格的線性相位.由于線性相位濾波器不會轉(zhuǎn)變輸入信號的外形,而只是在時域上使信號延時,因此線性相位特性在工程實際中具有格外重要的意義,如在數(shù)據(jù)通信、圖像處理等應(yīng)用領(lǐng)域,往往要求信號在傳輸和處理過程中不能有明顯的相位失真,因而線性相位FIR濾波器得到了廣泛的應(yīng)用。長度為M的因果有限沖激響應(yīng)濾波器由傳輸函數(shù)H(z)描述:(1)它是次數(shù)為M-1的z-1的一個多項式。在時域中,上述有限沖激響應(yīng)濾波器的輸入輸出關(guān)系為:(2)其中y(n)和x(n)分別是輸出和輸入序列。有限沖激響應(yīng)濾波器的一種直接型實現(xiàn),可由式(2)生成,M=5的情況如圖2-1(a)所示。其轉(zhuǎn)置,如圖2—1(b)所示,是其次個直接型結(jié)構(gòu)。通常一個長度為M的有限沖激響應(yīng)濾波器由M個系數(shù)描述,并且需要M個乘法器和(M—1)個雙輸入加法器來實現(xiàn).(a)(b)圖2—SEQ圖2—\*ARABIC1直接型有限沖激響應(yīng)濾波器結(jié)構(gòu)長度為M的線性相位有限沖激響應(yīng)濾波器由對稱的沖激響應(yīng)h(n)=h(M-1—n)或反對稱的沖激響應(yīng)h(n)=—h(M-1—n)描述。利用線性相位有限沖激響應(yīng)濾波器的對稱(或反對稱)性質(zhì),可以將傳輸函數(shù)的直接型實現(xiàn)所需的乘法器總量削減一半。例如,圖2-2顯示了一個具有對稱沖擊響應(yīng)的、長度為7的有限沖激響應(yīng)傳輸函數(shù)的實現(xiàn).圖2—SEQ圖2-\*ARABIC2線性相位有限沖激響應(yīng)結(jié)構(gòu)三、設(shè)計思路:依據(jù)課程上老師所講例題,首先使用matlab計算出符合設(shè)計要求的濾波器沖激響應(yīng)系數(shù)。后將整個電路規(guī)劃為語言編輯和原理圖編輯兩個單元,其中語言編輯部分負責(zé)編輯整個濾波器電路中所需用的單元器件,包括寄存器、加法器、減法器以及乘法器幾個單元器件;原理圖編輯部分完成單元器件的電氣連接工作。整個電路的原理圖設(shè)置方案如圖3—1所示:圖3—1濾波器整體設(shè)計思路四、設(shè)計過程:(一)基于matlab工具的濾波器系數(shù)計算:在matlab命令編輯窗口輸入Fdatool指令,敲擊回車可以打開FilterDesign&AnalysisTool窗口(如圖4-1所示),在該工具的幫助下,我們可以完成f。i.r.濾波器系數(shù)的計算工作。圖4-SEQ圖_4-\*ARABIC1FilterDesign&AnalysisTool窗口Fdatool界面總共分兩大部分,一部分是designfilter,在界面的下半部分,用來設(shè)置濾波器的設(shè)計參數(shù),另一部分則是特性區(qū),在界面的上半部分,用來顯示濾波器的各種特性。designfilter部分主要分為:ResponseType(響應(yīng)類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的濾波器。依據(jù)本次作業(yè)要求,在該選項中選擇Lowpass選項。DesignMethod(設(shè)計方法)選項,包括IIR濾波器的Butterworth(巴特沃思)法、ChebyshevTypei(切比雪夫i型)法、ChebyshevTypeii(切比雪夫ii型)法、Elliptic(橢圓濾波器)法等和FIR濾波器的Equiripple法、Least—squares(最小乘方)法、Window(窗函數(shù))法等多種方法。結(jié)合本次作業(yè)要求,選擇FIR濾波器的窗函數(shù)法進行設(shè)計.選定窗函數(shù)法后,會在右側(cè)消滅Options區(qū)域,進行窗函數(shù)法相關(guān)參量的設(shè)置,依據(jù)作業(yè)要求選擇Kaiser窗并設(shè)置Beta為:0.5.FilterOrder(濾波器階數(shù))選項,定義濾波器的階數(shù),包括Specifyorder(指定階數(shù))和Minimumorder(最小階數(shù))。在Specifyorder中填入所要設(shè)計的濾波器的階數(shù)(n階濾波器,specifyorder=n-1),如果選擇Minimumorder則matlab依據(jù)所選擇的濾波器類型自動使用最小階數(shù)。本次作業(yè)要求設(shè)計16階濾波器,所以選定Specifyorder并填入15。FrenquencySpecifications選項,可以簡略定義頻帶的各參數(shù),包括采樣頻率Fs和頻帶的截止頻率.它的簡略選項由ResponseType選項和DesignMetho選項決定。我們要求的Lowpass(低通)濾波器只需要定義Fs、Fc。采納窗函數(shù)設(shè)計濾波器時,由于過渡帶是由窗函數(shù)的類型和階數(shù)所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參數(shù)。MagnitudeSpecifications選項,可以定義幅值衰減的情況。采納窗函數(shù)設(shè)計時,通帶截止頻率處的幅值衰減固定為6db,所以不必定義.本次作業(yè)中的參數(shù)設(shè)定結(jié)果如圖4—2所示。圖4—SEQ圖_4—\*ARABIC2濾波器參數(shù)設(shè)定結(jié)果參數(shù)設(shè)定完畢,單擊工具窗口下方的DesignFilter按鈕,開頭進行相關(guān)參數(shù)計算。在計算結(jié)果中我們可以看到該濾波器的一些相關(guān)曲線,如幅頻響應(yīng)(如圖4-3)、相頻響應(yīng)(如圖4-4)、沖激響應(yīng)(如圖4—5)等以及簡略的系數(shù)值(如圖4-6).圖4-SEQ圖_4-\*ARABIC3幅頻響應(yīng)圖4—SEQ圖_4—\*ARABIC4相頻響應(yīng)圖4—SEQ圖_4-\*ARABIC5沖激響應(yīng)圖4—SEQ圖_4—\*ARABIC6所設(shè)計濾波器沖激系數(shù)計算的結(jié)果可通過File下拉菜單中的Export命令取出,點擊Export打開Export對話框(如圖4-7),點擊OK按鈕可將濾波器系數(shù)數(shù)據(jù)存放到當前工作空間,并以Num命名。圖4-SEQ圖_4—\*ARABIC7沖激系數(shù)輸出對話框保存并關(guān)閉濾波器設(shè)計分析工具回到matlab主窗口,在命令編輯區(qū)輸入Num可得到工具的計算結(jié)果(如圖4-8)。圖4—SEQ圖_4-\*ARABIC8輸出在matlab的沖激系數(shù)對FIR濾波器的系數(shù)進行調(diào)整,做整數(shù)化操作(如圖4-9)??傻玫綖V波器整數(shù)化的系數(shù)為[-31—88—106-547023940149949940123970-54-106-88-31]圖4—SEQ圖_4—\*ARABIC9整數(shù)化后的沖激系數(shù)(二)單元器件的語言編輯:1、寄存器模塊寄存器用于寄存一組二值代碼,只要求它們具有置1、置0的功能即可.在本設(shè)計中用D觸發(fā)器組成寄存器,實現(xiàn)寄存功能。本設(shè)計中使用帶異步復(fù)位rst端的D觸發(fā)器,當rst=1時,輸出信號q=0,當rst=0且上升沿脈沖到達時q=d.程序代碼如下:-——————————————-——LIBRARYieee;USEieee。std_logic_1164。all;--————-—-——-——-————-—-—-—-—ENTITYdff16ISPORT(rst,clk:INSTD_LOGIC;d:INSTD_LOGIC_VECTOR(9DOWNTO0);q:OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDdff16;——-——--——--——-————————-—ARCHITECTUREdff16OFdff16ISBEGINPROCESS(rst,clk)BEGINIF(rst=’1')THENq<=(OTHERS=>’0');ELSIF(clk’EVENTANDclk=’1’)THENq<=d;ENDIF;ENDPROCESS;ENDdff16;—-—--—-—--——————仿真結(jié)果如圖4-10所示:圖4—SEQ圖_4-\*ARABIC10寄存器仿真結(jié)果2、加法器模塊實現(xiàn)兩個有符號數(shù)的相加運算.即將輸入的兩數(shù),在時鐘脈沖到來時相加運算,輸出結(jié)果。在本設(shè)計中共有8個兩個10位有符號數(shù)相加產(chǎn)生一個11位有符號數(shù)的加法器、一個18位和19位有符號數(shù)相加產(chǎn)生20位有符號數(shù)的加法器、一個兩個20位有符號數(shù)相加產(chǎn)生一個21位有符號數(shù)的加法器、一個兩個19位有符號數(shù)相加產(chǎn)生一個20位有符號位數(shù)的加法器、一個20位和21位有符號數(shù)相加產(chǎn)生22位有符號數(shù)的加法器,以及一個20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路.其中一個20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路為最后一級,所以在加法器電路中在引入低位舍去功能只保留最終10位輸出,最終保留10位輸出采納了直接取輸出23位數(shù)的高十位的方法,因此在輸出中近似等于除掉了2^13即8192以后的結(jié)果.10位有符號數(shù)相加產(chǎn)生一個11位有符號數(shù)的加法器設(shè)計:————--—--——--—--———LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith。all;—-—-——-—--—-—--——ENTITYsum101011ISPORT(a,b:INSIGNED(9DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(10DOWNTO0));ENDSUM101011;—-—-—-———-————-———ARCHITECTUREsum101011OFsum101011ISBEGINPROCESS(clk)BEGINIF(clk'EVENTANDclk='1')THENs<=(a(9)&a)+(b(9)&b);ENDIF;ENDPROCESS;ENDsum101011;——--—-———-———-———-————仿真結(jié)果如圖4—11所示:圖4—SEQ圖_4-\*ARABIC11兩10位相加產(chǎn)生11位加法器仿真結(jié)果18位和19位有符號數(shù)相加產(chǎn)生20位有符號數(shù)的加法器設(shè)計:-———-——-—--——-—--———-—LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith。all;———-——-——--——-—ENTITYsum7023918ISPORT(a:INSIGNED(17DOWNTO0);b:INSIGNED(18DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(19DOWNTO0));ENDsum7023918;——-—--—————--—-ARCHITECTUREsum7023918OFsum7023918ISBEGINPROCESS(clk)BEGINIF(clk’EVENTANDclk=’1')THENs〈=(a(17)&a(17)&a)+(b(18)&b);ENDIF;ENDPROCESS;ENDsum7023918;--———--——-—-—-—-———-——仿真結(jié)果如圖4-12所示:圖4—SEQ圖_4—\*ARABIC1218位19位相加產(chǎn)生20位數(shù)仿真結(jié)果兩個20位有符號數(shù)相加產(chǎn)生一個21位有符號數(shù)的加法器設(shè)計:-—-——--——--————-———LIBRARYieee;USEieee.std_logic_1164。all;USEieee.std_logic_arith。all;-———————--——--—ENTITYsum40149919ISPORT(a:INSIGNED(19DOWNTO0);b:INSIGNED(19DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(20DOWNTO0));ENDsum40149919;-————--——————-ARCHITECTUREsum40149919OFsum40149919ISBEGINPROCESS(clk)BEGINIF(clk’EVENTANDclk=’1’)THENs〈=(a(19)&a)+(b(19)&b);ENDIF;ENDPROCESS;ENDsum40149919;————-—-——-—-—-——-仿真結(jié)果如圖4-13所示:圖4-SEQ圖_4—\*ARABIC13兩20位相加產(chǎn)生21位數(shù)仿真結(jié)果兩個19位有符號數(shù)相加產(chǎn)生一個20位有符號位數(shù)的加法器設(shè)計:-——-—-———-—--—-—LIBRARYieee;USEieee。std_logic_1164.all;USEieee.std_logic_arith.all;——-——-—-————-————-——-—ENTITYsum181819ISPORT(a:INSIGNED(18DOWNTO0);b:INSIGNED(18DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(19DOWNTO0));ENDsum181819;————————--——-——-—-ARCHITECTUREsum181819OFsum181819ISBEGINPROCESS(clk)BEGINIF(clk’EVENTANDclk=’1')THENs〈=(a(18)&a)+(b(18)&b);ENDIF;ENDPROCESS;ENDsum181819;———--——--—-—-——-———--—仿真結(jié)果如圖4—14所示:圖4—SEQ圖_4—\*ARABIC14兩19位相加產(chǎn)生20位數(shù)仿真結(jié)果20位和21位有符號數(shù)相加產(chǎn)生22位有符號數(shù)的加法器:————--——————-—-———LIBRARYieee;USEieee。std_logic_1164.all;USEieee。std_logic_arith。all;—————-————————————-ENTITYsum192021ISPORT(a:INSIGNED(19DOWNTO0);b:INSIGNED(20DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(21DOWNTO0));ENDsum192021;--——-—————-———ARCHITECTUREsum192021OFsum192021ISBEGINPROCESS(clk)BEGINIF(clk’EVENTANDclk=’1’)THENs〈=(a(19)&a(19)&a)+(b(20)&b);ENDIF;ENDPROCESS;ENDsum192021;--————————-——-—仿真結(jié)果如圖4—15所示:圖4-SEQ圖_4-\*ARABIC1520位和21相加產(chǎn)生22位數(shù)仿真結(jié)果20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路設(shè)計(最后一級帶舍位):-—-—-—-—-—--—————-—-—-LIBRARYieee;USEieee.std_logic_1164。all;USEieee。std_logic_arith。all;—-—--—--—-———--——-— ENTITYsum192110ISPORT(a:INSIGNED(19DOWNTO0);b:INSIGNED(21DOWNTO0);clk:INSTD_LOGIC;s:OUTSIGNED(9DOWNTO0));ENDsum192110;--—--—-—————--ARCHITECTUREsum192110OFsum192110ISBEGINPROCESS(clk)VARIABLEc:SIGNED(22DOWNTO0);BEGINIF(clk'EVENTANDclk='1’)THENc:=(a(19)&a(19)&a(19)&a)+(b(21)&b);ENDIF;s<=c(22DOWNTO13);ENDPROCESS;ENDsum192110;—-———--——仿真結(jié)果如圖4—16所示:圖4—SEQ圖_4—\*ARABIC1620位22位相加產(chǎn)生被截短的10位數(shù)仿真結(jié)果3、減法器模塊:實現(xiàn)零值減去兩個有符號數(shù)的減法運算。即用零值減去輸入的兩數(shù),在時鐘脈沖到來時做減法運算,輸出結(jié)果。—31和—88的乘結(jié)果都只包含了乘系數(shù)31和88的數(shù)值,并沒有將兩個負號代入,所以兩乘法器后面的加法器運算改為減法器模塊,采納0-31*累加結(jié)果-88*累加結(jié)果的方法,實現(xiàn)(-31)*累加結(jié)果+(-88)*累加結(jié)果的計算。-106和-54后面的加法器采納同樣的方式處理.—31和—88的減法器設(shè)計:—————-————-—LIBRARYieee;USEieee。std_logic_1164。all;USEieee。std_logic_arith.all;-———-—--—————ENTITYsub318817isPORT(clk:inSTD_LOGIC;Din1:insigned(15downto0);Din2:insigned(17downto0);Dout:outsigned(18downto0));ENDsub318817;——-———————-—--ARCHITECTUREsub318817ofsub318817ISSIGNALs1:signed(17downto0):=(Din1(15)&Din1(15)&Din1);SIGNALs2:signed(18downto0):=(OTHERS=>'0');BEGINPROCESS(Din1,Din2,clk)BEGINIFclk'eventandclk='1'THENDout<=s2-Din2-s1;ENDIF;ENDPROCESS;ENDsub318817;————--—--—-—————-仿真結(jié)果如圖4-17所示:圖4-SEQ圖_4—\*ARABIC17—31和—88減法器的仿真結(jié)果—106和-54的減法器的設(shè)計:——-——-————-——-————--LIBRARYieee;USEieee.std_logic_1164。all;USEieee。std_logic_arith.all;————————-——-—ENTITYsub1065417isPORT(clk:inSTD_LOGIC;Din1:insigned(17downto0);Din2:insigned(16downto0);Dout:outsigned(18downto0));ENDsub1065417;——-———-—-————-ARCHITECTUREsub1065417ofsub1065417ISSIGNALs1:signed(17downto0):=(Din2(16)&Din2);SIGNALs2:signed(18downto0):=(OTHERS=>’0');BEGINPROCESS(Din1,Din2,clk)BEGINIFclk’eventandclk='1'THENDout<=s2—Din1—s1;ENDIF;ENDPROCESS;ENDsub1065417;—-————--———-————-仿真結(jié)果如圖4—18所示:圖4—SEQ圖_4—\*ARABIC18—106和-54減法器的仿真結(jié)果4、乘法器模塊:從資源和速度考慮,常系數(shù)乘法運算可用移位相加來實現(xiàn)。將常系數(shù)分解成幾個2的冪的和形式。濾波器系數(shù)分別為—31、—88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、—31。算法:其中帶負號數(shù)先乘去負號的整數(shù)部分,在后面的求和中做減法運算.編碼方式如下:31被編碼為2^5—2^0、88被編碼為2^6+2^4+2^3、106被編碼為2^6+2^5+2^3+2^1、54被編碼為2^6-2^3—2^1、70被編碼為2^6+2^2+2^1、239被編碼為2^8—2^4-2^0、401被編碼為2^9-2^7+2^4+2^0、499被編碼為2^9-2^3-2^2—2^0。實現(xiàn)輸入帶符號數(shù)據(jù)與固定數(shù)據(jù)兩個二進制數(shù)的乘法運算.當?shù)竭_時鐘上升沿時,將兩數(shù)輸入,運算并輸出結(jié)果。乘31電路設(shè)計:-———-——-——--—————-—LIBRARYieee;USEieee。std_logic_1164.all;USEieee。std_logic_arith.all;——--—--—--—--—ENTITYmult31ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(15DOWNTO0));ENDmult31;--—--—————--——-——-—ARCHITECTUREmult31OFmult31ISSIGNALs1:SIGNED(15DOWNTO0);SIGNALs2:SIGNED(10DOWNTO0);SIGNALs3:SIGNED(15DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1〈=Din&"00000";s2〈=Din;IF(Din(10)=’0')THENs3〈=('0’&s1(14downto0))—("00000”&s2(10DOWNTO0));ELSEs3<=(’1'&s1(14downto0))-("11111"&s2(10DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s3)BEGINIFclk’EVENTANDclk='1’THENDout<=s3;ENDIF;ENDPROCESS;ENDmult31;-——-——-——--—-—--—--—--仿真結(jié)果如圖4—19所示:圖4—SEQ圖_4—\*ARABIC19乘31仿真結(jié)果乘88電路設(shè)計:———-——-———-——-——-——LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith。all;--—--——-———ENTITYmult88ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(17DOWNTO0));ENDmult88;—--——-———————--—-—-———ARCHITECTUREmult88OFmult88ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(14DOWNTO0);SIGNALs3:SIGNED(13DOWNTO0);SIGNALs4:SIGNED(17DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1〈=Din&"000000";s2<=Din&"0000”;s3<=Din&”000";IF(Din(10)='0’)THENs4〈=('0'&s1(16downto0))+("000”&s2(14DOWNTO0))+("0000”&s3(13DOWNTO0));ELSEs4〈=(’1'&s1(16downto0))+(”111”&s2(14DOWNTO0))+("1111"&s3(13DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk’EVENTANDclk=’1’THENDout〈=s4;ENDIF;ENDPROCESS;ENDmult88;—-———--————--————仿真結(jié)果如圖4—20所示:圖4—SEQ圖_4—\*ARABIC20乘88仿真結(jié)果乘106電路設(shè)計:—--——-—-———-—-———--LIBRARYieee;USEieee。std_logic_1164。all;USEieee。std_logic_arith.all;--——--—-————-———-—--——ENTITYmult106ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(17DOWNTO0));ENDmult106;———-————-—————-——-—ARCHITECTUREmult106OFmult106ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(15DOWNTO0);SIGNALs3:SIGNED(13DOWNTO0);SIGNALs4:SIGNED(11DOWNTO0);SIGNALs5:SIGNED(17DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3,s4)BEGINs1〈=Din&"000000”;s2〈=Din&"00000”;s3<=Din&”000”;s4<=Din&'0';IF(Din(10)='0’)THENs5〈=(’0'&s1(16downto0))+("00"&s2(15DOWNTO0))+("0000”&s3(13DOWNTO0))+(”000000"&s4(11DOWNTO0));ELSEs5〈=('1’&s1(16downto0))+("11”&s2(15DOWNTO0))+(”1111"&s3(13DOWNTO0))+("111111”&s4(11DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s5)BEGINIFclk'EVENTANDclk='1'THENDout〈=s5;ENDIF;ENDPROCESS;ENDmult106;———--——--———--————--—-仿真結(jié)果如圖4—21所示:圖4—SEQ圖_4—\*ARABIC21乘106仿真結(jié)果乘54電路設(shè)計:—-————————-LIBRARYieee;USEieee。std_logic_1164.all;USEieee.std_logic_arith。all;—————-——--—-———-—--ENTITYmult54ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(16DOWNTO0));ENDmult54;—-——--—————-—-—————-——ARCHITECTUREmult54OFmult54ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(13DOWNTO0);SIGNALs3:SIGNED(11DOWNTO0);SIGNALs4:SIGNED(16DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&”000000";s2〈=Din&”000";s3<=Din&'0’;IF(Din(10)=’0')THENs4〈=('0'&s1(15downto0))—(”00"&s2(13DOWNTO0))—("0000"&s3(11DOWNTO0));ELSEs4〈=(’1'&s1(15downto0))-("11”&s2(13DOWNTO0))-(”1111”&s3(11DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk’EVENTANDclk=’1’THENDout〈=s4;ENDIF;ENDPROCESS;ENDmult54;—--———-———仿真結(jié)果如圖4-22所示:圖4—SEQ圖_4—\*ARABIC22乘54仿真結(jié)果乘70電路設(shè)計:—--——-———--—-LIBRARYieee;USEieee.std_logic_1164.all;USEieee。std_logic_arith.all;——-——-———-————ENTITYmult70ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(17DOWNTO0));ENDmult70;-—-———-——--————-—-—ARCHITECTUREmult70OFmult70ISSIGNALs1:SIGNED(16DOWNTO0);SIGNALs2:SIGNED(12DOWNTO0);SIGNALs3:SIGNED(11DOWNTO0);SIGNALs4:SIGNED(17DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&"000000”;s2〈=Din&”00";s3<=Din&'0’;IF(Din(10)='0')THENs4<=(’0’&s1(16downto0))+(”00000"&s2(12DOWNTO0))+(”000000”&s3(11DOWNTO0));ELSEs4<=('1’&s1(16downto0))+(”11111”&s2(12DOWNTO0))+(”111111”&s3(11DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk'EVENTANDclk='1’THENDout〈=s4;ENDIF;ENDPROCESS;ENDmult70;--—-———-———-仿真結(jié)果如圖4-23所示:圖4-SEQ圖_4—\*ARABIC23乘70仿真結(jié)果乘239電路設(shè)計:—-——————--——-—-—LIBRARYieee;USEieee。std_logic_1164.all;USEieee.std_logic_arith。all;-————--————-———————ENTITYmult239ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(18DOWNTO0));ENDmult239;———--——-—-——--——--—ARCHITECTUREmult239OFmult239ISSIGNALs1:SIGNED(18DOWNTO0);SIGNALs2:SIGNED(14DOWNTO0);SIGNALs3:SIGNED(10DOWNTO0);SIGNALs4:SIGNED(18DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3)BEGINs1<=Din&"00000000";s2<=Din&"0000”;s3<=Din;IF(Din(10)='0')THENs4<=('0'&s1(17downto0))—(”0000"&s2(14DOWNTO0))-(”00000000"&s3(10DOWNTO0));ELSEs4<=('1’&s1(17downto0))—(”1111”&s2(14DOWNTO0))-("11111111"&s3(10DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s4)BEGINIFclk'EVENTANDclk=’1’THENDout〈=s4;ENDIF;ENDPROCESS;ENDmult239;———--—-——-——--——仿真結(jié)果如圖4-24所示:圖4—SEQ圖_4—\*ARABIC24乘239仿真結(jié)果乘401電路設(shè)計:—--———-——-—-—--—-—————LIBRARYieee;USEieee.std_logic_1164。all;USEieee。std_logic_arith。all;—--——-————-—--ENTITYmult401ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(19DOWNTO0));ENDmult401;——-——-——-—————-——--ARCHITECTUREmult401OFmult401ISSIGNALs1:SIGNED(19DOWNTO0);SIGNALs2:SIGNED(17DOWNTO0);SIGNALs3:SIGNED(14DOWNTO0);SIGNALs4:SIGNED(10DOWNTO0);SIGNALs5:SIGNED(19DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3,s4)BEGINs1<=Din&"000000000”;s2〈=Din&”0000000";s3〈=Din&”0000";s4<=Din;IF(Din(10)='0’)THENs5<=(’0’&s1(18downto0))—(”00”&s2(17DOWNTO0))+("00000"&s3(14DOWNTO0))+(”000000000”&s4(10DOWNTO0));ELSEs5〈=(’1’&s1(18downto0))—(”11”&s2(17DOWNTO0))+(”11111”&s3(14DOWNTO0))+(”111111111"&s4(10DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s5)BEGINIFclk'EVENTANDclk='1’THENDout<=s5;ENDIF;ENDPROCESS;ENDmult401;——--—-—-—-——-————--—-—仿真結(jié)果如圖4—25所示:圖4-SEQ圖_4—\*ARABIC25乘401仿真結(jié)果乘499電路設(shè)計:—-—————--———————--—LIBRARYieee;USEieee.std_logic_1164。all;USEieee。std_logic_arith。all;—————--——-—-——————--—-ENTITYmult499ISPORT(clk:INSTD_LOGIC;Din:INSIGNED(10DOWNTO0);Dout:OUTSIGNED(19DOWNTO0));ENDmult499;—-—-——-——-———-—--—--—-ARCHITECTUREmult499OFmult499ISSIGNALs1:SIGNED(19DOWNTO0);SIGNALs2:SIGNED(13DOWNTO0);SIGNALs3:SIGNED(12DOWNTO0);SIGNALs4:SIGNED(10DOWNTO0);SIGNALs5:SIGNED(19DOWNTO0);BEGINA1:PROCESS(Din,s1,s2,s3,s4)BEGINs1〈=Din&"000000000”;s2<=Din&”000";s3<=Din&”00";s4〈=Din;IF(Din(10)=’0’)THENs5〈=(’0'&s1(18downto0))-("000000”&s2(13DOWNTO0))-("0000000"&s3(12DOWNTO0))—("000000000"&s4(10DOWNTO0));ELSEs5〈=('1’&s1(18downto0))—(”111111”&s2(13DOWNTO0))-("1111111”&s3(12DOWNTO0))—("111111111”&s4(10DOWNTO0));ENDIF;ENDPROCESS;A2:PROCESS(clk,s5)BEGINIFclk'EVENTANDclk='1'THENDout<=s5;ENDIF;ENDPROCESS;ENDmult499;———-———-——————-—仿真結(jié)果如圖4—26所示:圖4-SEQ圖_4-\*ARABIC26乘499仿真結(jié)果(三)原理圖編輯將語言編輯的單元器件分別創(chuàng)建元件,將元器件按設(shè)計思路中的圖3—1連接搭建成整體的濾波器電路.其中clk和rst信號采納了總線名稱的連接方式。原理圖電路編輯結(jié)果如圖4—27所示:圖4—SEQ圖_4—\*ARABIC27濾波器原理圖編輯結(jié)果為了與matlab的conv函數(shù)結(jié)果做比對在輸出端額外引入了s輸出端口,用來顯示無截短的濾波器輸出結(jié)果(23位).仿真結(jié)果如圖4—28所示:圖4-SEQ圖_4—\*ARABIC28濾波器仿真結(jié)果(四)仿真結(jié)果驗證:利用matlab的conv函數(shù)可以驗證FIR濾波器卷積的結(jié)果,在表4-1中通過比對來進行對結(jié)果的說明。隨機輸入序列[—454,-39,55,463,—331,-52,128,26]。表4—SEQ表\*ARABIC1仿真結(jié)果驗證濾波器仿真無截短輸出23位conv函數(shù)輸出濾波器仿真截斷輸出10位conv函數(shù)除2^13(8196)14074

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論