fir濾波器的設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  電子通信工程系</b></p><p>  DSP原理及應(yīng)用課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題目:基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  基于TMS320F2812 DSP處理器的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>

2、;  一.引言</b></p><p>  數(shù)字信號(hào)處理是電路系統(tǒng)從模擬時(shí)代向數(shù)字時(shí)代前進(jìn)的理論基礎(chǔ),為數(shù)字信號(hào)處理的應(yīng)用而專門設(shè)計(jì)的可編程處理器,即數(shù)字信號(hào)處理器也應(yīng)運(yùn)而生。</p><p>  在當(dāng)今信息時(shí)代數(shù)字信號(hào)處理已成為一門極其重要的學(xué)科。數(shù)字信號(hào)處理在通信、語音、圖像等眾多相關(guān)領(lǐng)域得到了廣泛的應(yīng)用。數(shù)字信號(hào)處理(DSP)包括兩重含義:數(shù)字信號(hào)處理技術(shù)(Digital

3、 Signal Processing)和數(shù)字信號(hào)處理器(Digital Signal Processor)。數(shù)字信號(hào)處理(DSP)是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)值計(jì)算的方法、對(duì)信號(hào)進(jìn)行采集、濾波、增強(qiáng)、壓縮、估值和識(shí)別等加工處理,借以達(dá)到提取信息和便于應(yīng)用的目的,其應(yīng)用范圍涉及幾乎所有的工程技術(shù)領(lǐng)域。</p><p>  目前FIR濾波器的實(shí)現(xiàn)方法大致可分為三種:利用單片通用數(shù)字濾波器集成電路、DSP器件或者可

4、編程邏輯器件實(shí)現(xiàn)。其中以使用通用DSP芯片實(shí)現(xiàn)方式較為簡單,是一種實(shí)時(shí)、快速、特別適合于實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算的微處理器,借助于通用數(shù)字計(jì)算機(jī)按濾波器的設(shè)計(jì)算法編出程序進(jìn)行數(shù)字濾波計(jì)算。由于它具有豐富的硬件資源、改進(jìn)的哈佛結(jié)構(gòu)、高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng)而在通信、航空、航天、雷達(dá)、工業(yè)控制、網(wǎng)絡(luò)及家用電器等各個(gè)領(lǐng)域得到廣泛應(yīng)用</p><p><b>  二.設(shè)計(jì)目的</b><

5、/p><p>  1、掌握用窗函數(shù)法設(shè)計(jì)FIR濾波器的原理及方法,熟悉線性纖維FIR濾波器的</p><p>  幅頻特性和相頻特性及其圖像。</p><p>  掌握使用matlab編程的基本方法,學(xué)會(huì)利用fdatool 工具來快速設(shè)計(jì)滿足需要的濾波器。</p><p>  掌握TMS320F2812 DSP處理器開發(fā)的程序框架結(jié)構(gòu),學(xué)習(xí)驅(qū)動(dòng)T

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

7、  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、利用TMS320F2812的ADC片內(nèi)外設(shè)的外圍電路實(shí)時(shí)采集的混頻信號(hào)數(shù)據(jù),使用1個(gè)51階的

8、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.1.1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論</p><

9、;p>  濾波器就是在時(shí)間域或頻域內(nèi),對(duì)已知激勵(lì)產(chǎn)生規(guī)定響應(yīng)的網(wǎng)絡(luò),使其能夠從信號(hào)中提取有用的信號(hào),抑制并衰減不需要的信號(hào)。濾波器的設(shè)計(jì)實(shí)質(zhì)上就是對(duì)提出的要求給出相應(yīng)的性能指標(biāo),再通過計(jì)算,使物理可實(shí)現(xiàn)的實(shí)際濾波器頻率響應(yīng)特性逼近給出的頻率響應(yīng)特性。FIR 數(shù)字濾波器系統(tǒng)的傳遞函數(shù)為:</p><p><b> ?。?)</b></p><p>  由此得到系統(tǒng)

10、的差分方程:</p><p><b>  (2)</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 設(shè)計(jì)FIR濾波器,根據(jù)給定的性能指標(biāo)設(shè)計(jì)一個(gè)H(z),使其逼近這一指

11、標(biāo),進(jìn)而計(jì)算并確定濾波器的系數(shù)b(n),再將所設(shè)計(jì)濾波器的幅頻響應(yīng)、相頻響應(yīng)曲線作為輸出,與設(shè)計(jì)要求進(jìn)行比較,對(duì)設(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>  首先在命令窗口鍵入FDAtool命令,啟動(dòng)濾波器設(shè)計(jì)分析器,調(diào)出FDAtool界

12、面,如下圖所示。</p><p><b>  FDATool界面</b></p><p>  在Filter Type選項(xiàng)中選Lowpass,在Design Method中選擇FIR濾波器,接著在FIR中選擇Window (窗函數(shù)) 法。</p><p>  然后在Filter Order 中選擇Specify Order (為指定階數(shù)),輸入

13、數(shù)值為“51”;在Opitions框中選中“Scale Passband”;在窗類型(Window:)下拉框選擇“Blackman”。</p><p>  在Frenquency Specification選項(xiàng)中,將fs(為采樣頻率)、fc (為通帶截止頻率)中分別鍵入250000 Hz和20000Hz。</p><p>  點(diǎn)擊“Design Filter”按鈕,完成濾波器的設(shè)計(jì)。<

14、;/p><p>  通過菜單選項(xiàng)Analysis 來分析濾波器的幅頻響應(yīng)和相頻響應(yīng)特性。點(diǎn)擊Analysis 中的Magnitude Response和Phase Response 對(duì)幅頻和相頻響應(yīng)進(jìn)行分析。如下圖所示</p><p>  在FDATool 中,選擇Targets -> Generate C Header...,單擊Generate按鈕,選擇路徑,即可輸出前一步設(shè)計(jì)出的

15、FIR濾波器的系數(shù)表。(默認(rèn)的系數(shù)表文件為fdacoefs.h。如下圖所示。</p><p>  在Matlab中打開得到的fdacoefs.h的文件,如下圖所示</p><p>  從Matlab中打開的fdacoefs.h文件</p><p>  4.1.3提取濾波器參數(shù)</p><p>  取系數(shù)表中的數(shù)據(jù)小數(shù)點(diǎn)后3位有效值,得到如下內(nèi)

16、容:</p><p>  Const float B[52]={</p><p>  0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,</p><p>  0.001,0.003,0.004,0.004,0.003,0,-0.006,-0.013, -0.019,-0.021,-0.017,-0.005,0.018,0

17、.048,0.083,0.116,</p><p>  0.143,0.158,0.158,0.143,0.116,0.083,0.048,0.018,-0.005, -0.017,-0.021,-0.019,-0.013,-0.006,0,0.003,0.004,0.004,</p><p>  0.003,0.001,0.000,0.000,0.000,0.000,0.000,0.00

18、0,0.000,0.000</p><p><b>  }</b></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><b> ?。?/p>

19、1)實(shí)驗(yàn)準(zhǔn)備</b></p><p>  設(shè)置軟件仿真模式,啟動(dòng)CCS。</p><p><b> ?。ǎ玻┙⒐こ?lt;/b></p><p>  建立一個(gè)文件夾,存放在D:\FIR,將D:\課程設(shè)計(jì)\FIR濾波器\Fir源程序文件夾下的工程全部復(fù)制到D:\FIR,在CCS中打開D:\FIR\fir\fir.pjt工程,打開的CCS集

20、成開發(fā)環(huán)境如下圖所示。</p><p>  4.2.3觀察濾波前后的信號(hào)的時(shí)域波形及FFT Magnitude波形</p><p> ?。?)編譯工程文件生成fir.out文件,并通過File->Load Program…裝載該文件。</p><p>  (2)設(shè)置波形時(shí)域觀察窗口。</p><p>  選擇菜單View→Graph→T

21、ime/Frequency… ,分別進(jìn)行如下圖所示進(jìn)行設(shè)置以便觀察輸入/輸出時(shí)域波形。 </p><p>  輸入數(shù)據(jù)時(shí)域波形觀察 輸出數(shù)據(jù)時(shí)域波形觀察</p><p>  選擇菜單View→Graph→Time/Frequency… ,分別進(jìn)行如下圖所示進(jìn)行設(shè)置以便觀察輸入/輸出頻域波形。</p><p>  輸入數(shù)據(jù)頻域波形觀察

22、 輸出數(shù)據(jù)頻域波形觀察</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>  左上角:輸入數(shù)據(jù)時(shí)域圖(Start Address : input) </p><

23、p>  右上角:輸入數(shù)據(jù)頻譜(Display Type : FFT Magnitude) </p><p>  左下角:輸出數(shù)據(jù)時(shí)域圖(Start Address : output) </p><p>  右下角:輸出數(shù)據(jù)頻譜(Display Type : FFT Magnitude)</p><p>  4.2.4 程序清單</p><p

24、><b>  fir.c 程序</b></p><p>  //#include "DSP281x_Device.h" // DSP281x Headerfile Include File</p><p>  //#include "DSP281x_Examples.h" // DSP281x Examples

25、 Include File</p><p>  //#include "f2812a.h"</p><p>  #include"math.h"</p><p>  #define FIRNUMBER 52</p><p>  //#define SIGNAL1F 1000</p><

26、;p>  //#define SIGNAL2F 4500</p><p>  //#define SAMPLEF 10000</p><p>  #define PI 3.1415926</p><p>  float InputWave();</p><p>  float FIR();</p><p>  

27、float fHn[FIRNUMBER]={ </p><p>  0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,</p><p>  0.001,0.003,0.004,0.004,0.003,0,-0.006,-0.013, -0.019,-0.021,-0.017,-0.005,0.018,0.048,0.083,0.116,<

28、/p><p>  0.143,0.158,0.158,0.143,0.116,0.083,0.048,0.018,-0.005, -0.017,-0.021,-0.019,-0.013,-0.006,0,0.003,0.004,0.004,</p><p>  0.003,0.001,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000</p&g

29、t;<p><b>  };</b></p><p>  float fXn[FIRNUMBER]={ 0.0 };</p><p>  float fInput,fOutput;</p><p>  float fSignal1,fSignal2;</p><p>  float fStepSignal1

30、,fStepSignal2;</p><p>  float f2PI;</p><p><b>  int i;</b></p><p>  float fIn[256],fOut[256];</p><p>  int nIn,nOut;</p><p>  main(void)</p&

31、gt;<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;</p><p>  fStepSignal1=2*P

32、I/30;</p><p>  fStepSignal2=2*PI*1.4;</p><p>  while ( 1 )</p><p><b>  {</b></p><p>  fInput=InputWave();</p><p>  fIn[nIn]=fInput;</p>

33、<p>  nIn++; nIn%=256;</p><p>  fOutput=FIR();</p><p>  fOut[nOut]=fOutput;</p><p><b>  nOut++;</b></p><p>  if ( nOut>=256 )</p><p>&l

34、t;b>  {</b></p><p>  nOut=0;/* 請(qǐng)?jiān)诖司渖显O(shè)置軟件斷點(diǎn) */</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>

35、;  float InputWave()</p><p><b>  {</b></p><p>  for ( i=FIRNUMBER-1;i>0;i-- )</p><p>  fXn[i]=fXn[i-1];</p><p>  fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;&

36、lt;/p><p>  fSignal1+=fStepSignal1; </p><p>  if ( fSignal1>=f2PI )fSignal1-=f2PI;</p><p>  fSignal2+=fStepSignal2;</p><p>  if ( fSignal2>=f2PI )fSignal2-=f2PI;&l

37、t;/p><p>  return(fXn[0]);</p><p><b>  }</b></p><p>  float FIR()</p><p><b>  {</b></p><p>  float fSum;</p><p><b>

38、  fSum=0;</b></p><p>  for ( i=0;i<FIRNUMBER;i++ )</p><p><b>  {</b></p><p>  fSum+=(fXn[i]*fHn[i]);</p><p><b>  }</b></p><p

39、>  return(fSum);</p><p><b>  }</b></p><p>  fir.cmd 程序</p><p>  -l rts2800_ml.lib</p><p>  -stack 400h</p><p><b>  -heap 100</b>

40、;</p><p><b>  MEMORY</b></p><p><b>  {</b></p><p>  PAGE 0 : PROG(R) : origin = 0x80000, length = 0x10000</p><p>  PAGE 0 : BOOT(R) : or

41、igin = 0x3FF000, length = 0xFC0 </p><p>  PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2</p><p>  /*PAGE 0 : VECTORS(R) : origin = 0x3FFFC2, length = 0x3E*/</p><p>  PAGE

42、 1 : M0RAM(RW) : origin = 0x000000, length = 0x400</p><p>  PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400</p><p>  PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000</p>

43、;<p>  PAGE 1 : H0RAM(RW) : origin = 0x3F8000, length = 0x2000</p><p><b>  }</b></p><p><b>  SECTIONS</b></p><p><b>  {</b></p>&

44、lt;p>  /* 22-bit program sections */</p><p>  .reset : > RESET, PAGE = 0</p><p>  /*vectors : > VECTORS, PAGE = 0*/</p><p>  .pinit : > PROG, PAGE = 0</p>

45、<p>  .cinit : > PROG, PAGE = 0</p><p>  .text : > PROG, PAGE = 0</p><p>  /* 16-Bit data sections */</p><p>  .const : > L0L1RAM, PAGE = 1</p>&

46、lt;p>  .bss : > L0L1RAM, PAGE = 1</p><p>  .stack : > M1RAM, PAGE = 1</p><p>  .sysmem : > M0RAM, PAGE = 1</p><p>  /* 32-bit data sections */</p><p>

47、;  .ebss : > H0RAM, PAGE = 1</p><p>  .econst : > H0RAM, PAGE = 1</p><p>  .esysmem : > H0RAM, PAGE = 1</p><p>  4.3 對(duì)實(shí)時(shí)采樣信號(hào)進(jìn)行濾波的FIR濾波器的實(shí)現(xiàn)</p><p>  4.3.1 程

48、序清單</p><p>  #include "DSP281x_Device.h" // DSP281x Headerfile Include File</p><p>  #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p>  #inc

49、lude <math.h></p><p>  #define pi 3.1415927</p><p>  int px[256];</p><p>  int py[256];</p><p>  double npass,h[51], x, y, xmid[51];</p><p><b>

50、  int m=50;</b></p><p>  int n=256;</p><p>  // Prototype statements for functions found within this file.</p><p>  interrupt void adc_isr(void);</p><p>  // Glob

51、al variables used in this example:</p><p>  Uint16 LoopCount;</p><p>  Uint16 ConversionCount;</p><p>  void firdes(int m, double npass)</p><p><b>  {</b>&l

52、t;/p><p><b>  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><

53、p><b>  }</b></p><p>  if (t=m/2) h[t]=npass;</p><p><b>  }</b></p><p>  void main(void) </p><p><b>  {</b></p><p>  

54、int xm,ym;</p><p>  double fs,fstop,r,rm;</p><p>  int i,j,p,k;</p><p>  // PLL, WatchDog, enable Peripheral Clocks</p><p>  // This example function is found in the DS

55、P281x_SysCtrl.c file.</p><p>  InitSysCtrl();</p><p>  // For this example, set HSPCLK to SYSCLKOUT / 6 (25Mhz assuming 150Mhz SYSCLKOUT)</p><p><b>  EALLOW;</b></p&g

56、t;<p>  SysCtrlRegs.HISPCP.all = 0x3; // HSPCLK = SYSCLKOUT/6</p><p><b>  EDIS;</b></p><p>  // Disable CPU interrupts </p><p><b>  DINT;</b></p&g

57、t;<p>  // Initialize the PIE control registers to their default state.</p><p>  InitPieCtrl();</p><p>  // Disable CPU interrupts and clear all CPU interrupt flags:</p><p> 

58、 IER = 0x0000;</p><p>  IFR = 0x0000;</p><p>  // Initialize the PIE vector table with pointers to the shell Interrupt </p><p>  // Service Routines (ISR). </p><p>  I

59、nitPieVectTable();</p><p>  // Interrupts that are used in this example are re-mapped to</p><p>  // ISR functions found within this file. </p><p>  EALLOW; // This is needed

60、to write to EALLOW protected register</p><p>  PieVectTable.ADCINT = &adc_isr;</p><p>  EDIS; // This is needed to disable write to EALLOW protected registers</p><p>  InitAd

61、c(); // For this example, init the ADC</p><p>  // Enable ADCINT in PIE</p><p>  PieCtrlRegs.PIEIER1.bit.INTx6 = 1;</p><p>  IER |= M_INT1; // Enable CPU Interrupt 1</p><

62、;p>  EINT; // Enable Global interrupt INTM</p><p>  ERTM; // Enable Global realtime interrupt DBGM</p><p>  LoopCount = 0;</p><p>  ConversionCount = 0;</p&g

63、t;<p>  // Configure ADC</p><p>  AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; </p><p>  AdcRegs.ADCMAXCONV.all = 0x0000; // Setup 2 conv's on SEQ1</p><p>  AdcRegs.ADCCHSELSE

64、Q1.bit.CONV00 = 0x4; // Setup ADCINA0 as 1st SEQ1 conv.</p><p>  AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; // Enable EVASOC to start SEQ1</p><p>  AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable S

65、EQ1 interrupt (every EOS)</p><p>  // Configure EVA</p><p>  // Assumes EVA Clock is already enabled in InitSysCtrl();</p><p>  EvaRegs.T1CMPR = 0x0380; // Setup T1 co

66、mpare value</p><p>  EvaRegs.T1PR = 0x07FF; // Setup period register</p><p>  EvaRegs.GPTCONA.bit.T1TOADC = 1; // Enable EVASOC in EVA</p><p>  EvaRegs.T1CON.a

67、ll = 0x1042; // Enable timer 1 compare (upcount mode)</p><p>  // Wait for ADC interrupt</p><p>  k=0; </p><p>  fs = 250000;</p><p>  fstop = 20000;<

68、;/p><p>  npass = fstop/fs;</p><p>  for (i=0; i<=m; i++)</p><p><b>  {</b></p><p>  xmid[i]=0;</p><p><b>  }</b></p><p&

69、gt;<b>  for(;;)</b></p><p><b>  {</b></p><p>  firdes(m, npass);</p><p>  for (i=0; i<=n-1; i++)</p><p><b>  {</b></p>&

70、lt;p>  xm = px[i];</p><p>  x = xm/1023.0; </p><p>  for (p=0; p<=m; p++)</p><p><b>  {</b></p><p>  xmid[m-p] = xmid[m-p-1];</p><p&

71、gt;<b>  }</b></p><p>  xmid[0] = x;</p><p><b>  r = 0;</b></p><p><b>  rm= 0; </b></p><p>  for (j=0; j<=m; j++)</p><p

72、><b>  {</b></p><p>  r = xmid[j] * h[j];</p><p>  rm = rm + r;</p><p><b>  }</b></p><p><b>  y = rm;</b></p><p>  

73、ym = (int)(1023.0 * y);</p><p>  py[i] = ym; </p><p><b>  }</b></p><p>  k++; //加斷點(diǎn),觀察波形</p><p><b>  }</b></p><p><

74、b>  }</b></p><p>  interrupt void adc_isr(void)</p><p><b>  { </b></p><p>  px[ConversionCount] = AdcRegs.ADCRESULT0 >>4;</p><p>  if(Conver

75、sionCount == 256) </p><p><b>  {</b></p><p>  ConversionCount = 0;</p><p><b>  }</b></p><p>  else ConversionCount++;</p><p>  // R

76、einitialize for next ADC sequence</p><p>  AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1</p><p>  AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // ClearINT SEQ1 bit</p><p>  PieCtrlReg

77、s.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE</p><p><b>  return;</b></p><p><b>  }</b></p><p>  4.3.2 測(cè)試效果</p><p>  如上圖所示,可以發(fā)

78、現(xiàn)使用DSP芯片實(shí)現(xiàn)的的FIR濾波器已經(jīng)成功的將設(shè)定的混合頻率信號(hào)中的高頻部分濾除。</p><p><b>  五.總結(jié)</b></p><p>  DSP技術(shù)一般指將DSP 處理器用于完成數(shù)字信號(hào)處理的方法與技術(shù)。目前的DSP芯片以其強(qiáng)大的數(shù)據(jù)處理功能在通信和其他信號(hào)處理領(lǐng)域得到廣泛注意并已成為開發(fā)應(yīng)用的熱點(diǎn)技術(shù)。許多領(lǐng)域?qū)τ跀?shù)字信號(hào)處理器的應(yīng)用都是圍繞美國TI公

79、司所開發(fā)的DSP處理器進(jìn)行的。DSP芯片是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器。主要應(yīng)用是實(shí)時(shí)快速的實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法,如卷積及各種變換等。這次我們所做的利用DSP芯片來實(shí)現(xiàn)數(shù)字濾波器就是一項(xiàng)很重要的應(yīng)用,這一次的課程設(shè)計(jì)主要討論基于TI公司TMS320F2812 DSP芯片的濾波器系統(tǒng)軟件實(shí)現(xiàn)方法,用Blackman窗函數(shù)設(shè)計(jì)實(shí)現(xiàn)FIR濾波器,利用MATLAB中的FDAtool濾波器設(shè)計(jì)分析器設(shè)計(jì)符合要求的FIR濾波器

80、并生成fdacoefs.h文件提取相關(guān)參數(shù)。并在以TI TMS320F2812為微處理器的EXPIV型實(shí)驗(yàn)箱上實(shí)現(xiàn),實(shí)驗(yàn)仿真結(jié)果、實(shí)時(shí)數(shù)據(jù)采集及ADC轉(zhuǎn)換濾波濾波均表明濾波后能夠得到比較光滑時(shí)域/頻域波形,濾波結(jié)果效果良好達(dá)到了預(yù)期的性能指標(biāo)要求。</p><p>  通過這次課程設(shè)計(jì),我對(duì)通信系統(tǒng)的仿真有了很大的了解,掌握的設(shè)計(jì)的方法和思路,提高了對(duì)系統(tǒng)的分析能力和解決能力。在這次課程設(shè)計(jì)匯總,我也遇到了許多的

81、困難,如參數(shù)的設(shè)置,如何將不同的功能框圖整合一起以實(shí)現(xiàn)更強(qiáng)大的功能等等。</p><p>  經(jīng)過一周的設(shè)計(jì)制作,在本組成員不斷的努力下,如期的完成了課程設(shè)計(jì)制作,其功能基本上可以滿足處理的需要。 由于時(shí)間原因,該課程設(shè)計(jì)還有許多不盡不是令人很滿意的地方,需要將來做進(jìn)一步的改善。</p><p><b>  六.參考文獻(xiàn)</b></p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論