2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  DSP原理及應(yīng)用課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  學(xué) 號(hào): 0 9 13................. </p><p>  姓 名: ................ <

2、/p><p>  專 業(yè): 電 子 信 息 工 程 </p><p>  設(shè)計(jì)日期: 2012年6月13日 </p><p>  指導(dǎo)老師: ........... ................ </p><p><b>  目 錄</b></p&g

3、t;<p><b>  一、引言</b></p><p><b>  二、設(shè)計(jì)目的</b></p><p><b>  三、設(shè)計(jì)要求</b></p><p><b>  四、總體設(shè)計(jì)</b></p><p>  4.1利用Matlab軟件的F

4、DATool工具設(shè)計(jì)FIR濾波器</p><p>  4.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論</p><p>  4.1.2 利用Matlab軟件的FDATool設(shè)計(jì)FIR濾波器</p><p>  4.1.3提取濾波器參數(shù)</p><p>  4.2 CCS環(huán)境下FIR濾波器的設(shè)計(jì)及軟件仿真</p><p>  

5、4.2.1 程序流程圖</p><p>  4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程</p><p>  4.2.3觀察濾波前后的信號(hào)的時(shí)域波形及FFT Magnitude波形</p><p>  4.2.4 程序清單</p><p>  4.3 對實(shí)時(shí)采樣信號(hào)進(jìn)行濾波的FIR濾波器的實(shí)現(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è)計(jì)與實(shí)現(xiàn)</p><p><b>  一、引言</b></p><p>  數(shù)字信號(hào)處理(DSP)包括兩重含義:數(shù)字信號(hào)處理技術(shù)(Digital Signal Processing )和數(shù)字信號(hào)處理器( Digital Signal Processor )。在數(shù)字信號(hào)處理的基本方法中,濾波是應(yīng)用非常廣泛的一個(gè)環(huán)節(jié),數(shù)字濾波器的理論與相關(guān)設(shè)計(jì)也一直都

8、是人們研究的重點(diǎn)之一。數(shù)字濾波器根據(jù)其單位沖擊響應(yīng)函數(shù)的時(shí)域特性可分為兩類:無限沖擊響應(yīng)(Infinite Impulse Response,IIR)濾波器和有限沖擊響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器。與 IIR濾波器相比,F(xiàn)IR的實(shí)現(xiàn)是非遞歸的。</p><p>  使用通用DSP芯片實(shí)現(xiàn)濾波方式較為簡單,是一種實(shí)時(shí)的,快速的,特別適合于實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算的微處理器,借助

9、于通用數(shù)字計(jì)算機(jī)按濾波器的設(shè)計(jì)算法編出程序進(jìn)行數(shù)字濾波計(jì)算。由于它具有豐富的硬件資源,改進(jìn)哈弗結(jié)構(gòu),高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng)而在很多領(lǐng)域得到廣泛應(yīng)用。</p><p><b>  二、設(shè)計(jì)目的</b></p><p>  1、掌握用窗函數(shù)法設(shè)計(jì)FIR濾波器的原理及方法,掌握使用matlab編程的基本方法。</p><p>  2、掌握T

10、MS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學(xué)習(xí)驅(qū)動(dòng)TMS320F2812 DSP處理器程序編寫并能使其正常工作。實(shí)習(xí)驅(qū)動(dòng)ADC模塊實(shí)現(xiàn)信號(hào)的實(shí)時(shí)采集與模數(shù)轉(zhuǎn)換。</p><p>  3、掌握使用TMS320F2812 DSP處理器實(shí)現(xiàn)FIR數(shù)字低通濾波器的設(shè)計(jì)方法,并能夠?qū)崟r(shí)采集輸入信號(hào)并濾除高頻信號(hào)再通過SCI串口傳輸?shù)接?jì)算機(jī)顯示。</p><p><b>  三、

11、設(shè)計(jì)要求</b></p><p>  1、利用Matlab軟件的FDATool工具設(shè)計(jì)FIR濾波器,并提取濾波器參數(shù);</p><p>  2、在CCS集成開發(fā)環(huán)境下,利用第1步得到的濾波器參數(shù),利用窗函數(shù)法設(shè)計(jì)FIR濾波器程序,觀察輸入信號(hào)及濾波后得到的輸出信號(hào)的時(shí)域波形及FFT Magnitude波形;</p><p>  3、利用TMS320F28

12、12的ADC片內(nèi)外設(shè)的外圍電路實(shí)時(shí)采集的混頻信號(hào)數(shù)據(jù),使用1個(gè)51階的FIR低通濾波器,在CCS中設(shè)計(jì)FIR濾波器程序?qū)崿F(xiàn)濾波,觀察相關(guān)波形及濾波效果,通過SCI接口將數(shù)據(jù)傳送到計(jì)算機(jī)上。</p><p><b>  四、總體設(shè)計(jì)</b></p><p>  4.1利用Matlab軟件的FDATool工具設(shè)計(jì)FIR濾波器</p><p>  4

13、.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論</p><p>  濾波器就是在時(shí)間域或頻域內(nèi),對已知激勵(lì)產(chǎn)生規(guī)定響應(yīng)的網(wǎng)絡(luò),使其能夠從信號(hào)中提取有用的信號(hào),抑制并衰減不需要的信號(hào)。濾波器的設(shè)計(jì)實(shí)質(zhì)上就是對提出的要求給出相應(yīng)的性能指標(biāo),再通過計(jì)算,使物理可實(shí)現(xiàn)的實(shí)際濾波器頻率響應(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è)計(jì)均使用繁瑣的公式計(jì)算,改變參數(shù)后需要重新運(yùn)算,從而在分析與設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量特別大。這里應(yīng)用MATLAB

15、 設(shè)計(jì)FIR濾波器,根據(jù)給定的性能指標(biāo)設(shè)計(jì)一個(gè)H(z),使其逼近這一指標(biāo),進(jìn)而計(jì)算并確定濾波器的系數(shù)b(n),再將所設(shè)計(jì)濾波器的幅頻響應(yīng)、相頻響應(yīng)曲線作為輸出,與設(shè)計(jì)要求進(jìn)行比較,對設(shè)計(jì)的濾波器進(jìn)行優(yōu)化。設(shè)計(jì)完成之后將得到FIR濾波器的單位沖激響應(yīng)序列h(n)的各個(gè)參數(shù)值。</p><p>  4.1.2 利用Matlab軟件的FDATool設(shè)計(jì)FIR濾波器</p><p>  打開Mat

16、lab軟件,首先在命令窗口鍵入FDAtool命令,啟動(dòng)濾波器設(shè)計(jì)分析器,調(diào)出FDAtool界面.</p><p>  在Filter Type選項(xiàng)中選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選項(xiàng)中,將fs(為采樣頻率)、fact (為通帶截止頻率)中分別鍵入30000 Hz和9600 Hz。</p><p>  點(diǎn)擊“Design Filter”按鈕,完成濾波器的設(shè)計(jì)。具體參數(shù)及設(shè)計(jì)成功后的結(jié)果

18、如圖所示。</p><p>  設(shè)計(jì)完成后,可以通過菜單選項(xiàng)Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性。點(diǎn)擊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è)置后,點(diǎn)擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計(jì)出的FIR濾波器的系數(shù)表。默認(rèn)的系數(shù)表文件為fdacoefs.h。</p><p>  在Matlab中打開得到的fdacoefs.h的文件,系數(shù)表如圖 </p><p>  取系數(shù)表中的數(shù)據(jù)小數(shù)點(diǎn)后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è)計(jì)及軟件仿真</p><p>  4.2.1 程序流程圖如下</p><p>  4.2.2 在CCS集成開發(fā)環(huán)境下新建FIR濾波器工程</p><p> ?。ǎ保┰O(shè)置軟件仿真模式,啟動(dòng)CCS。</p><p> ?。ǎ玻┙⒁粋€(gè)文

22、件夾,存放在D:\FIR,將D:\課程設(shè)計(jì)\FIR濾波器\Fir源程序文件夾下的工程全部復(fù)制到D:\FIR,在CCS中打開D:\FIR\fir\fir.pjt工程,打開fir.c文件,編譯生成fir.out文件,通過File->Load Program…裝載該文件。</p><p>  (3)設(shè)置波形時(shí)域觀察窗口,選擇菜單View→Graph→Time/Frequency… ,如圖設(shè)置</p>

23、<p>  輸入數(shù)據(jù)時(shí)域波形觀察</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觀察濾波前后的信號(hào)的時(shí)域波形及FFT Magnitude波形</p><p> ?。?)設(shè)置斷點(diǎn)。在程序fir.c中,有注釋斷點(diǎn)的語句上設(shè)置軟件斷點(diǎn)。</p><p> ?。?)運(yùn)行并觀察結(jié)果。選擇Debug菜單的Run項(xiàng),或按F5鍵運(yùn)行程序。觀察到的圖形如下圖所示。</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;/* 請?jiān)诖司渖显O(shè)置軟件斷點(diǎn) */</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 對實(shí)時(shí)采樣信號(hào)進(jìn)行濾波的FIR濾波器的實(shí)現(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++; //加斷點(diǎn),觀察波形</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>  靠上的是濾波前時(shí)域波形,下面的是濾波后時(shí)域波形</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、實(shí)驗(yàn)板使用串口通信電纜,啟動(dòng)串口調(diào)試助手.exe,設(shè)置數(shù)據(jù)格式為1位停止位,無奇偶校驗(yàn),8位數(shù)據(jù)輸出,串口波特率為9600bit/s。</p><p>  支持ASCII碼和十六進(jìn)制數(shù)據(jù)格式的發(fā)送和接收。</p><p><b>  五、總結(jié)</b></p><p>  通過這次課程

61、設(shè)計(jì),我學(xué)到了很多知識(shí)并且鞏固了以前所學(xué)的很多軟件和課程。DSP不同于以前的單片機(jī),它采用了多組總線技術(shù)實(shí)現(xiàn)并行運(yùn)行機(jī)制,從而極大地提高了運(yùn)算速度,也提供了非常靈活的指令系統(tǒng)。通過這次課程設(shè)計(jì)使我對dsp有了更深入的了解,我不僅對以前所學(xué)的知識(shí)有了較深刻的理解,而且動(dòng)手能力、獨(dú)立解決問題的能力有所提高。熟練地運(yùn)用Matlab工具設(shè)計(jì)濾波參數(shù),很好的加深了我對課程的理解,方便我的思維。這次設(shè)計(jì)使我了解了MATLAB的使用方法,學(xué)會(huì)分析濾波

62、器的優(yōu)劣和性能,提高了分析和動(dòng)手能力。</p><p>  我也非常感謝老師的悉心指導(dǎo),對報(bào)告的書寫格式及內(nèi)容,老師多次幫助分析思路,開拓視角。為以后的學(xué)習(xí)和就業(yè)奠定一定基礎(chǔ)。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  [1] 趙成 DSP原理與應(yīng)用</p><p>  [2] 《數(shù)字信號(hào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論