版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> DSP原理及應(yīng)用課程設(shè)計報告</p><p> 設(shè)計題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計與實現(xiàn)</p><p> 學(xué) 號: 0 9 13................. </p><p> 姓 名: ................ <
2、/p><p> 專 業(yè): 電 子 信 息 工 程 </p><p> 設(shè)計日期: 2012年6月13日 </p><p> 指導(dǎo)老師: ........... ................ </p><p><b> 目 錄</b></p&g
3、t;<p><b> 一、引言</b></p><p><b> 二、設(shè)計目的</b></p><p><b> 三、設(shè)計要求</b></p><p><b> 四、總體設(shè)計</b></p><p> 4.1利用Matlab軟件的F
4、DATool工具設(shè)計FIR濾波器</p><p> 4.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論</p><p> 4.1.2 利用Matlab軟件的FDATool設(shè)計FIR濾波器</p><p> 4.1.3提取濾波器參數(shù)</p><p> 4.2 CCS環(huán)境下FIR濾波器的設(shè)計及軟件仿真</p><p>
5、4.2.1 程序流程圖</p><p> 4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程</p><p> 4.2.3觀察濾波前后的信號的時域波形及FFT Magnitude波形</p><p> 4.2.4 程序清單</p><p> 4.3 對實時采樣信號進(jìn)行濾波的FIR濾波器的實現(xiàn)</p><p>
6、; 4.3.1 程序清單</p><p> 4.3.2 測試效果</p><p> 4.3.3 SCI串行數(shù)據(jù)傳輸</p><p><b> 五、總結(jié)</b></p><p><b> 六、參考文獻(xiàn)</b></p><p> 基于TMS320F2812 DSP處理
7、器的FIR濾波器的設(shè)計與實現(xiàn)</p><p><b> 一、引言</b></p><p> 數(shù)字信號處理(DSP)包括兩重含義:數(shù)字信號處理技術(shù)(Digital Signal Processing )和數(shù)字信號處理器( Digital Signal Processor )。在數(shù)字信號處理的基本方法中,濾波是應(yīng)用非常廣泛的一個環(huán)節(jié),數(shù)字濾波器的理論與相關(guān)設(shè)計也一直都
8、是人們研究的重點之一。數(shù)字濾波器根據(jù)其單位沖擊響應(yīng)函數(shù)的時域特性可分為兩類:無限沖擊響應(yīng)(Infinite Impulse Response,IIR)濾波器和有限沖擊響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器。與 IIR濾波器相比,F(xiàn)IR的實現(xiàn)是非遞歸的。</p><p> 使用通用DSP芯片實現(xiàn)濾波方式較為簡單,是一種實時的,快速的,特別適合于實現(xiàn)各種數(shù)字信號處理運算的微處理器,借助
9、于通用數(shù)字計算機(jī)按濾波器的設(shè)計算法編出程序進(jìn)行數(shù)字濾波計算。由于它具有豐富的硬件資源,改進(jìn)哈弗結(jié)構(gòu),高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng)而在很多領(lǐng)域得到廣泛應(yīng)用。</p><p><b> 二、設(shè)計目的</b></p><p> 1、掌握用窗函數(shù)法設(shè)計FIR濾波器的原理及方法,掌握使用matlab編程的基本方法。</p><p> 2、掌握T
10、MS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學(xué)習(xí)驅(qū)動TMS320F2812 DSP處理器程序編寫并能使其正常工作。實習(xí)驅(qū)動ADC模塊實現(xiàn)信號的實時采集與模數(shù)轉(zhuǎn)換。</p><p> 3、掌握使用TMS320F2812 DSP處理器實現(xiàn)FIR數(shù)字低通濾波器的設(shè)計方法,并能夠?qū)崟r采集輸入信號并濾除高頻信號再通過SCI串口傳輸?shù)接嬎銠C(jī)顯示。</p><p><b> 三、
11、設(shè)計要求</b></p><p> 1、利用Matlab軟件的FDATool工具設(shè)計FIR濾波器,并提取濾波器參數(shù);</p><p> 2、在CCS集成開發(fā)環(huán)境下,利用第1步得到的濾波器參數(shù),利用窗函數(shù)法設(shè)計FIR濾波器程序,觀察輸入信號及濾波后得到的輸出信號的時域波形及FFT Magnitude波形;</p><p> 3、利用TMS320F28
12、12的ADC片內(nèi)外設(shè)的外圍電路實時采集的混頻信號數(shù)據(jù),使用1個51階的FIR低通濾波器,在CCS中設(shè)計FIR濾波器程序?qū)崿F(xiàn)濾波,觀察相關(guān)波形及濾波效果,通過SCI接口將數(shù)據(jù)傳送到計算機(jī)上。</p><p><b> 四、總體設(shè)計</b></p><p> 4.1利用Matlab軟件的FDATool工具設(shè)計FIR濾波器</p><p> 4
13、.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論</p><p> 濾波器就是在時間域或頻域內(nèi),對已知激勵產(chǎn)生規(guī)定響應(yīng)的網(wǎng)絡(luò),使其能夠從信號中提取有用的信號,抑制并衰減不需要的信號。濾波器的設(shè)計實質(zhì)上就是對提出的要求給出相應(yīng)的性能指標(biāo),再通過計算,使物理可實現(xiàn)的實際濾波器頻率響應(yīng)特性逼近給出的頻率響應(yīng)特性。FIR 數(shù)字濾波器系統(tǒng)的傳遞函數(shù)為:</p><p><b> ?。?)<
14、/b></p><p> 由此得到系統(tǒng)的差分方程:</p><p><b> ?。?)</b></p><p> 若FIR 數(shù)字濾波器的單位沖激響應(yīng)序列為h(n),它就是濾波器系數(shù)向量b(n)。傳統(tǒng)的濾波器分析與設(shè)計均使用繁瑣的公式計算,改變參數(shù)后需要重新運算,從而在分析與設(shè)計濾波器尤其是高階濾波器時工作量特別大。這里應(yīng)用MATLAB
15、 設(shè)計FIR濾波器,根據(jù)給定的性能指標(biāo)設(shè)計一個H(z),使其逼近這一指標(biāo),進(jìn)而計算并確定濾波器的系數(shù)b(n),再將所設(shè)計濾波器的幅頻響應(yīng)、相頻響應(yīng)曲線作為輸出,與設(shè)計要求進(jìn)行比較,對設(shè)計的濾波器進(jìn)行優(yōu)化。設(shè)計完成之后將得到FIR濾波器的單位沖激響應(yīng)序列h(n)的各個參數(shù)值。</p><p> 4.1.2 利用Matlab軟件的FDATool設(shè)計FIR濾波器</p><p> 打開Mat
16、lab軟件,首先在命令窗口鍵入FDAtool命令,啟動濾波器設(shè)計分析器,調(diào)出FDAtool界面.</p><p> 在Filter Type選項中選Lowpass,在Design Method中選擇FIR濾波器,接著在FIR中選擇Window (窗函數(shù)) 法。</p><p> 然后在Filter Order 中選擇Specify Order (為指定階數(shù)),輸入數(shù)值為“24”;在Op
17、itions框中選中“Scale Passband”;在窗類型(Window:)下拉框選擇“Blackman”。</p><p> 在Frenquency Specification選項中,將fs(為采樣頻率)、fact (為通帶截止頻率)中分別鍵入30000 Hz和9600 Hz。</p><p> 點擊“Design Filter”按鈕,完成濾波器的設(shè)計。具體參數(shù)及設(shè)計成功后的結(jié)果
18、如圖所示。</p><p> 設(shè)計完成后,可以通過菜單選項Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性。點擊Analysis 中的Magnitude Response和Phase Response 對幅頻和相頻響應(yīng)進(jìn)行分析。</p><p> 4.1.3提取濾波器參數(shù)</p><p> 在FDATool 中,選擇Targets -> Gener
19、ate C Header..., 如圖設(shè)置后,點擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計出的FIR濾波器的系數(shù)表。默認(rèn)的系數(shù)表文件為fdacoefs.h。</p><p> 在Matlab中打開得到的fdacoefs.h的文件,系數(shù)表如圖 </p><p> 取系數(shù)表中的數(shù)據(jù)小數(shù)點后3位有效值,得到如下內(nèi)容:</p><p> cons
20、t float B[25]= { 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,</p><p> -0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,</p><p> -0.11,-0.02,0.049,-0.018,-0.009,0.01,</p><p> -0.002,-0.002,0.
21、001,0.0,0.0 };</p><p> 4.2 CCS環(huán)境下FIR濾波器的設(shè)計及軟件仿真</p><p> 4.2.1 程序流程圖如下</p><p> 4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程</p><p> ?。ǎ保┰O(shè)置軟件仿真模式,啟動CCS。</p><p> (2)建立一個文
22、件夾,存放在D:\FIR,將D:\課程設(shè)計\FIR濾波器\Fir源程序文件夾下的工程全部復(fù)制到D:\FIR,在CCS中打開D:\FIR\fir\fir.pjt工程,打開fir.c文件,編譯生成fir.out文件,通過File->Load Program…裝載該文件。</p><p> ?。?)設(shè)置波形時域觀察窗口,選擇菜單View→Graph→Time/Frequency… ,如圖設(shè)置</p>
23、<p> 輸入數(shù)據(jù)時域波形觀察</p><p><b> 濾波后輸出波形觀察</b></p><p> ?。?)設(shè)置頻域觀察窗口,選擇菜單View→Graph→Time/Frequency… ,分別進(jìn)行如圖設(shè)置</p><p> 輸入數(shù)據(jù)FFT分析圖形觀察</p><p> 濾波后輸出數(shù)據(jù)的FFT圖形
24、觀察</p><p> 4.2.3觀察濾波前后的信號的時域波形及FFT Magnitude波形</p><p> (1)設(shè)置斷點。在程序fir.c中,有注釋斷點的語句上設(shè)置軟件斷點。</p><p> ?。?)運行并觀察結(jié)果。選擇Debug菜單的Run項,或按F5鍵運行程序。觀察到的圖形如下圖所示。</p><p> 4.2.4 程序清
25、單</p><p> #include"math.h"</p><p> #define FIRNUMBER 25</p><p> #define PI 3.1415926</p><p> float InputWave();</p><p> float FIR();</p&g
26、t;<p> float fHn[FIRNUMBER]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,</p><p> -0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,</p><p> -0.11,-0.02,0.049,-0.018,-0.009,0.01,</p><p&g
27、t; -0.002,-0.002,0.001,0.0,0.0</p><p><b> };</b></p><p> float fXn[FIRNUMBER]={ 0.0 };</p><p> float fInput,fOutput;</p><p> float fSignal1,fSignal2;&l
28、t;/p><p> float fStepSignal1,fStepSignal2;</p><p> float f2PI;</p><p><b> int i;</b></p><p> float fIn[256],fOut[256];</p><p> int nIn,nOut;&
29、lt;/p><p> main(void)</p><p><b> { </b></p><p> nIn=0; nOut=0;</p><p> f2PI=2*PI;</p><p> fSignal1=0.0;</p><p> fSignal2=PI*0.1
30、;</p><p> fStepSignal1=2*PI/30;</p><p> fStepSignal2=2*PI*1.4;</p><p> while ( 1 )</p><p><b> {</b></p><p> fInput=InputWave();</p>
31、<p> fIn[nIn]=fInput;</p><p> nIn++; nIn%=256;</p><p> fOutput=FIR();</p><p> fOut[nOut]=fOutput;</p><p><b> nOut++;</b></p><p> if
32、 ( nOut>=256 )</p><p><b> {</b></p><p> nOut=0;/* 請在此句上設(shè)置軟件斷點 */</p><p><b> }</b></p><p><b> }</b></p><p><
33、b> } </b></p><p> float InputWave()</p><p><b> {</b></p><p> for ( i=FIRNUMBER-1;i>0;i-- )</p><p> fXn[i]=fXn[i-1];</p><p>
34、fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;</p><p> fSignal1+=fStepSignal1; </p><p> if ( fSignal1>=f2PI )fSignal1-=f2PI;</p><p> fSignal2+=fStepSignal2;</p><p> if
35、 ( fSignal2>=f2PI )fSignal2-=f2PI;</p><p> return(fXn[0]);</p><p><b> }</b></p><p> float FIR()</p><p><b> {</b></p><p> f
36、loat fSum;</p><p><b> fSum=0;</b></p><p> for ( i=0;i<FIRNUMBER;i++ )</p><p><b> {</b></p><p> fSum+=(fXn[i]*fHn[i]);</p><p>
37、;<b> }</b></p><p> return(fSum);</p><p><b> }</b></p><p> 4.3 對實時采樣信號進(jìn)行濾波的FIR濾波器的實現(xiàn)</p><p> 4.3.1 程序清單</p><p> #include "
38、;DSP281x_Device.h" </p><p> #include "DSP281x_Examples.h" </p><p> #include <math.h></p><p> #define pi 3.1415927</p><p> int px[256];<
39、/p><p> int py[256];</p><p> double npass,h[51], x, y, xmid[51];</p><p><b> int m=50;</b></p><p> int n=256;</p><p> interrupt void adc_isr(v
40、oid);</p><p> Uint16 LoopCount;</p><p> Uint16 ConversionCount;</p><p> void firdes(int m, double npass)</p><p><b> {</b></p><p><b>
41、 int t;</b></p><p> for (t=0; t<=m; t++)</p><p><b> {</b></p><p> h[t] = sin((t-m/2.0)*npass*pi)/(pi*(t-m/2.0));</p><p><b> }</b>&l
42、t;/p><p> if (t=m/2) h[t]=npass;</p><p><b> }</b></p><p> void main(void) </p><p><b> {</b></p><p> int xm,ym;</p><p&g
43、t; double fs,fstop,r,rm;</p><p> int i,j,p,k;</p><p> InitSysCtrl();</p><p><b> EALLOW;</b></p><p> SysCtrlRegs.HISPCP.all = 0x3; // HSPCLK = SYSCLKOU
44、T/6</p><p><b> EDIS;</b></p><p><b> DINT;</b></p><p> InitPieCtrl();</p><p> IER = 0x0000;</p><p> IFR = 0x0000;</p>&l
45、t;p> InitPieVectTable(); </p><p><b> EALLOW; </b></p><p> PieVectTable.ADCINT = &adc_isr;</p><p><b> EDIS; </b></p><p> InitAdc(
46、); </p><p> PieCtrlRegs.PIEIER1.bit.INTx6 = 1;</p><p> IER |= M_INT1;</p><p> EINT; </p><p> ERTM; </p><p> LoopCount = 0;</p>
47、<p> ConversionCount = 0;</p><p> AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; </p><p> AdcRegs.ADCMAXCONV.all=0x0000; AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x4; AdcRegs.ADCTRL2.bit.EVA_SOC_SE
48、Q1=1; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; </p><p> EvaRegs.T1CMPR=0x0380; </p><p> EvaRegs.T1PR=0x07FF; </p><p> EvaRegs.GPTCONA.bit.T1TOADC =
49、1; </p><p> EvaRegs.T1CON.all = 0x1042; </p><p> k=0; </p><p> fs = 250000;</p><p> fstop = 20000;</p><p> npass = fstop/fs;</p><
50、;p> for (i=0; i<=m; i++)</p><p><b> {</b></p><p> xmid[i]=0;</p><p><b> }</b></p><p><b> for(;;)</b></p><p>
51、<b> {</b></p><p> firdes(m, npass);</p><p> for (i=0; i<=n-1; i++)</p><p><b> {</b></p><p> xm = px[i];</p><p> x = xm/1
52、023.0; </p><p> for (p=0; p<=m; p++)</p><p><b> {</b></p><p> xmid[m-p] = xmid[m-p-1];</p><p><b> }</b></p><p> xmid
53、[0] = x;</p><p><b> r = 0;</b></p><p><b> rm= 0; </b></p><p> for (j=0; j<=m; j++)</p><p><b> {</b></p><p> r
54、 = xmid[j] * h[j];</p><p> rm = rm + r;</p><p><b> }</b></p><p><b> y = rm;</b></p><p> ym = (int)(1023.0 * y);</p><p> py[i]
55、= ym; </p><p><b> }</b></p><p> k++; //加斷點,觀察波形</p><p><b> }</b></p><p><b> }</b></p><p> interru
56、pt void adc_isr(void)</p><p><b> { </b></p><p> px[ConversionCount] = AdcRegs.ADCRESULT0 >>4;</p><p> if(ConversionCount == 256) </p><p><b>
57、 {</b></p><p> ConversionCount = 0; </p><p><b> }</b></p><p> else ConversionCount++;</p><p> AdcRegs.ADCTRL2.bit.RST_SEQ1=1; AdcRegs.ADCS
58、T.bit.INT_SEQ1_CLR=1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; </p><p><b> return;</b></p><p><b> }</b></p><p> 4.3.2 測試效果</p><p><b
59、> 如圖所示</b></p><p> 靠上的是濾波前時域波形,下面的是濾波后時域波形</p><p> 分別為濾波前和濾波后的FFT分析圖形</p><p> 4.3.3 SCI串行數(shù)據(jù)傳輸</p><p> 1、pc機(jī)采用串口調(diào)試工具軟件,將PC機(jī)鍵盤的輸入發(fā)送給DSP,DSP收到PC機(jī)發(fā)來的數(shù)據(jù)后,回送同一數(shù)
60、據(jù)給PC機(jī)。</p><p> 2、實驗板使用串口通信電纜,啟動串口調(diào)試助手.exe,設(shè)置數(shù)據(jù)格式為1位停止位,無奇偶校驗,8位數(shù)據(jù)輸出,串口波特率為9600bit/s。</p><p> 支持ASCII碼和十六進(jìn)制數(shù)據(jù)格式的發(fā)送和接收。</p><p><b> 五、總結(jié)</b></p><p> 通過這次課程
61、設(shè)計,我學(xué)到了很多知識并且鞏固了以前所學(xué)的很多軟件和課程。DSP不同于以前的單片機(jī),它采用了多組總線技術(shù)實現(xiàn)并行運行機(jī)制,從而極大地提高了運算速度,也提供了非常靈活的指令系統(tǒng)。通過這次課程設(shè)計使我對dsp有了更深入的了解,我不僅對以前所學(xué)的知識有了較深刻的理解,而且動手能力、獨立解決問題的能力有所提高。熟練地運用Matlab工具設(shè)計濾波參數(shù),很好的加深了我對課程的理解,方便我的思維。這次設(shè)計使我了解了MATLAB的使用方法,學(xué)會分析濾波
62、器的優(yōu)劣和性能,提高了分析和動手能力。</p><p> 我也非常感謝老師的悉心指導(dǎo),對報告的書寫格式及內(nèi)容,老師多次幫助分析思路,開拓視角。為以后的學(xué)習(xí)和就業(yè)奠定一定基礎(chǔ)。</p><p><b> 六、參考文獻(xiàn)</b></p><p> [1] 趙成 DSP原理與應(yīng)用</p><p> [2] 《數(shù)字信號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp課程設(shè)計--基于tms320f2812 dsp處理器的fir濾波器的設(shè)計與實現(xiàn)
- 課程設(shè)計---基于tms320f2812 dsp處理器的信號儀的設(shè)計與實現(xiàn)
- dsp應(yīng)用原理課程設(shè)計---基于tms320f2812 dsp處理器的信號儀的設(shè)計與實現(xiàn)
- dsp課程設(shè)計-- 基于tms320vc5509 dsp的fir濾波器設(shè)計
- dsp課程設(shè)計--基于tms320vc5509 dsp的fir濾波器設(shè)計
- dsp課程設(shè)計報告(fir濾波器的dsp實現(xiàn))
- dsp課程設(shè)計--基于tms320f2812的dsp最小系統(tǒng)設(shè)計
- 基于TMS320F2812系統(tǒng)的FIR數(shù)字濾波器設(shè)計.pdf
- dsp原理及其應(yīng)用技術(shù)課程設(shè)計--基于tms320f2812 dsp微處理器的最小系統(tǒng)設(shè)計
- dsp課程設(shè)計---基于dsp的實時fir濾波器的實現(xiàn)
- 基于dsp的fir濾波器設(shè)計課程設(shè)計報告
- dsp課程設(shè)計報告--fir濾波器設(shè)計
- dsp課程設(shè)計-fir濾波器設(shè)計
- dsp課程設(shè)計-fir濾波器設(shè)計
- dsp課程設(shè)計---fir濾波器設(shè)計
- dsp課程設(shè)計---基于tms320c5402的fir數(shù)字濾波器設(shè)計
- dsp課程設(shè)計--fir濾波器設(shè)計
- dsp軟件課程設(shè)計---fir濾波器設(shè)計
- 基于TMS320F2812的有源電力濾波器研究.pdf
- 基于dsp的fir濾波器設(shè)計報告
評論
0/150
提交評論