dsp課程設(shè)計(jì)--調(diào)制解調(diào)實(shí)驗(yàn)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  DSP課程設(shè)計(jì)</b></p><p>  實(shí) 驗(yàn) 報(bào) 告</p><p><b>  信號(hào)的調(diào)制與解調(diào)</b></p><p><b>  目 錄</b></p><p>  一、設(shè)計(jì)任務(wù)書…………………………………………………………1&

2、lt;/p><p>  二、設(shè)計(jì)內(nèi)容……………………………………………………………5</p><p>  三、設(shè)計(jì)方案、算法原理說(shuō)明…………………………………………10</p><p>  四、程序設(shè)計(jì)、調(diào)試與結(jié)果分析………………………………………15</p><p>  五、設(shè)計(jì)(安裝)與調(diào)試的體會(huì)………………………………………25</p

3、><p>  六、參考文獻(xiàn)……………………………………………………………26</p><p><b>  一、設(shè)計(jì)任務(wù)書</b></p><p>  信號(hào)的調(diào)制和解調(diào)廣泛應(yīng)用于通訊及信息處理領(lǐng)域。調(diào)制就是用低頻的調(diào)制信號(hào)去控制高頻載波的某一個(gè)參數(shù),使載波信號(hào)的參數(shù)按照調(diào)制信號(hào)的規(guī)律變化,可分為調(diào)幅、調(diào)頻和調(diào)相信號(hào)調(diào)制;信號(hào)的解調(diào)是調(diào)制的逆過(guò)程,是從

4、已調(diào)高頻信號(hào)中取出調(diào)制信號(hào),對(duì)應(yīng)的分為調(diào)幅、調(diào)頻和調(diào)相信號(hào)的解調(diào)。本設(shè)計(jì)要求采用DSP及其A/D、D/A轉(zhuǎn)換器實(shí)現(xiàn)信號(hào)的調(diào)制和解調(diào)功能。</p><p><b>  1.設(shè)計(jì)要求及目標(biāo)</b></p><p><b>  基本部分:</b></p><p>  使用DSP產(chǎn)生調(diào)幅波和調(diào)頻波。調(diào)制信號(hào)從MIC音頻輸入接口輸入

5、,頻率小于1000HZ;載頻由DSP程序內(nèi)部產(chǎn)生,頻率在4000—8000HZ之間,調(diào)幅信號(hào)的調(diào)制度為50%。</p><p><b>  發(fā)揮部分:</b></p><p>  使用DSP對(duì)所產(chǎn)生的調(diào)幅及調(diào)頻信號(hào)進(jìn)行解調(diào),并通過(guò)SPEAKER音頻輸</p><p>  接口輸出解調(diào)后的信號(hào)。</p><p><

6、b>  2.設(shè)計(jì)思路 </b></p><p>  模擬模擬幅度調(diào)制(AM)的實(shí)質(zhì)是頻譜搬移,其模型如下: </p><p>  輸出已調(diào)調(diào)幅信號(hào)的時(shí)域一般表示式為:</p><p>  如果載波的瞬時(shí)頻率偏移隨調(diào)制信號(hào)f(t)成線性變化,則為頻率調(diào)制。調(diào)頻信號(hào)表示式:</p><p>  其瞬時(shí)頻率為,其中ωc是未調(diào)載波的

7、標(biāo)稱角頻率,f (t)是調(diào)制信號(hào),系數(shù)KFM稱為頻偏常數(shù)。</p><p>  由數(shù)字振蕩器遞歸的差分方程:y[n]=A*y[n-1]-y[n-2]</p><p>  其中:A=2cos(x),x=ωFM/FS, FS為采樣頻率。</p><p>  就可以迭代計(jì)算出調(diào)頻信號(hào)的每一個(gè)輸出樣點(diǎn)的值,經(jīng)過(guò)D/A變換和濾波便可以得到模擬的調(diào)頻信號(hào)。</p>

8、<p>  3.要求完成的任務(wù)</p><p> ?。?)編寫C語(yǔ)言程序,并在CCS集成開發(fā)環(huán)境下調(diào)試通過(guò)。</p><p> ?。?)實(shí)現(xiàn)設(shè)計(jì)所要求的各項(xiàng)功能。</p><p>  (3)按要求撰寫設(shè)計(jì)報(bào)告。</p><p><b>  二、設(shè)計(jì)內(nèi)容</b></p><p><

9、;b>  1.基本部分:</b></p><p>  使用DSP產(chǎn)生調(diào)幅波(AM)和調(diào)頻波(FM)。調(diào)制信號(hào)m(t)從MIC音頻輸入接口(J5)輸入,頻率f小于1000HZ;載頻c(t)由DSP程序內(nèi)部產(chǎn)生,頻率在4000—8000HZ之間,調(diào)幅信號(hào)的調(diào)制度(modulation degree)為50%。</p><p><b>  2.發(fā)揮部分:</b&

10、gt;</p><p>  使用DSP對(duì)所產(chǎn)生的調(diào)幅(AM)及調(diào)頻(FM)信號(hào)進(jìn)行解調(diào),并通過(guò)SPEAKER音頻輸出(J6)接口輸出解調(diào)后的信號(hào)。</p><p>  三、設(shè)計(jì)方案、算法原理說(shuō)明</p><p><b>  1.整體構(gòu)思:</b></p><p>  由J5輸入fmax=1000Hz的音頻信號(hào),經(jīng)A/D

11、轉(zhuǎn)換后變?yōu)?5bit的二進(jìn)制數(shù)據(jù),再經(jīng)FIR濾波器濾出噪聲及高頻分量(避免因高頻分量的存在而影響系統(tǒng)的處理效果),后對(duì)經(jīng)FIR濾波器輸出的信號(hào)進(jìn)行調(diào)制,選用載波為Fc=6250Hz。信號(hào)流圖如圖5.1所示:</p><p><b>  2.具體實(shí)現(xiàn):</b></p><p>  ⑴ c(t)的產(chǎn)生:</p><p>  有兩種實(shí)現(xiàn)方法:查表法

12、和計(jì)算法。其中,查表法速度快,可以產(chǎn)生頻率較高的波形,并且不占用DSP的計(jì)算時(shí)間,但由于它占用DSP的內(nèi)部存儲(chǔ)空間,尤其對(duì)采樣頻率比較大的輸出波形,而DSP的內(nèi)部存儲(chǔ)空間畢竟是有限的,所以其應(yīng)用受到一定程度的限制;相反,計(jì)算法不占用DSP的內(nèi)部存儲(chǔ)空間,因而它多用于查表法不太適用的場(chǎng)合,但由于它要占用DSP的計(jì)算時(shí)間,因而使得執(zhí)行程序的時(shí)間開銷變大,不適用于高速處理場(chǎng)合。由于調(diào)制系統(tǒng)的載波頻率較高,所以本實(shí)驗(yàn)采用的實(shí)現(xiàn)方法是查表法。&l

13、t;/p><p>  ⑵ m(t)實(shí)時(shí)采集</p><p>  由于系統(tǒng)設(shè)計(jì)的是調(diào)制解調(diào),而非一般的信號(hào)處理程序,因此需要對(duì)信號(hào)進(jìn)行實(shí)時(shí)采集和處理??紤]到dsk板的硬件資源,最終決定采用先經(jīng)過(guò)A/D對(duì)模擬信號(hào)進(jìn)行離散量化,再經(jīng)mcbsp進(jìn)行信號(hào)處理的整體方案。而在數(shù)據(jù)經(jīng)mcbsp后,對(duì)其進(jìn)行相關(guān)的處理。考慮到dsk板上的codec(TLC320AD50C)內(nèi)含抗混疊濾波器和重構(gòu)濾波器,因此可以

14、省略輸入端低通濾波器和輸出端的濾波器。</p><p><b> ?、?AM調(diào)制的實(shí)現(xiàn)</b></p><p>  由AM調(diào)制的原理框圖可知,其基本的過(guò)程是先對(duì)輸入的信號(hào)加入一直流分量,其中所加直流分量要大于輸入信號(hào)以保證后續(xù)調(diào)制不會(huì)出現(xiàn)過(guò)調(diào)幅現(xiàn)象。而信號(hào)的調(diào)制則采用的是對(duì)抽樣后的信號(hào)直接與對(duì)應(yīng)的調(diào)制信號(hào)相乘。由于dsp產(chǎn)生周期信號(hào)的方法是通過(guò)查表產(chǎn)生的,所以本方案采

15、用的是將抽樣得到的離散信號(hào)直接與調(diào)制信號(hào)表里的對(duì)應(yīng)項(xiàng)相乘得到。再經(jīng)codec輸出。</p><p>  四、程序設(shè)計(jì)、調(diào)試與結(jié)果分析</p><p><b>  程序清單:</b></p><p><b>  調(diào)幅:</b></p><p><b>  程序1:</b><

16、/p><p><b>  /*頭文件定義*/</b></p><p>  #include <type.h></p><p>  #include <board.h></p><p>  #include <codec.h></p><p>  #include &

17、lt;mcbsp54.h></p><p>  #include <tms320.h></p><p>  #include <dsplib.h></p><p>  #include <math.h> </p><p&g

18、t;  /*延遲子程序定義*/</p><p>  void delay(s16 period);</p><p>  #pragma DATA_SECTION(delaybuff,"delay");</p><p>  short delaybuff[16]={0};</p><p>  short *delayptr

19、= &(delaybuff[0]); </p><p>  short inp_buffer[1];</p><p>  short out_buffer[1];</p><p>  short *inp_ptr=inp_buffer;</p><p>  short *out_ptr=out_buffer;</p>&

20、lt;p>  HANDLE hHandset;</p><p><b>  s16 data;</b></p><p>  s16 temp_buffer[256];</p><p>  /*利用查表法產(chǎn)生載波信號(hào)定義*/</p><p>  s16 SINE_TABLE[]=</p><p&g

21、t;<b>  {</b></p><p>  0x00324,0x00647 ,0x0096A,0x00C8B ,0x00FAB,0x012C7 ,0x015E1,0x018F8</p><p>  ,0x01C0B,0x01F19 ,0x02223,0x02527 ,0x02826,0x02B1E ,0x02E10,0x030FB</p&

22、gt;<p>  ,0x033DE,0x036B9 ,0x0398C,0x03C56 ,0x03F16,0x041CD ,0x0447A,0x0471C</p><p>  ,0x049B3,0x04C3F ,0x04EBF,0x05133 ,0x0539A,0x055F4 ,0x05842,0x05A81</p><p>  ,0x05CB3,0

23、x05ED6 ,0x060EB,0x062F1 ,0x064E7,0x066CE ,0x068A5,0x06A6C</p><p>  ,0x06C23,0x06DC9 ,0x06F5E,0x070E1 ,0x07254,0x073B5 ,0x07503,0x07640</p><p>  ,0x0776B,0x07883 ,0x07989,0x07A7C ,0x07B

24、5C,0x07C29 ,0x07CE2,0x07D89</p><p>  ,0x07E1C,0x07E9C ,0x07F08,0x07F61 ,0x07FA6,0x07FD7 ,0x07FF5,0x07FFE</p><p>  ,0x07FF5,0x07FD7 ,0x07FA6,0x07F61 ,0x07F08,0x07E9C ,0x07E1C,0x07D89</p

25、><p>  ,0x07CE2,0x07C29 ,0x07B5C,0x07A7C ,0x07989,0x07883 ,0x0776B,0x07640</p><p>  ,0x07503,0x073B5 ,0x07254,0x070E1 ,0x06F5E,0x06DC9 ,0x06C23,0x06A6C</p><p>  ,0x068A5,0x066CE

26、 ,0x064E7,0x062F1 ,0x060EB,0x05ED6 ,0x05CB3,0x05A81</p><p>  ,0x05842,0x055F5 ,0x0539A,0x05133 ,0x04EBF,0x04C3F ,0x049B3,0x0471C</p><p>  ,0x0447A,0x041CD ,0x03F16,0x03C56 ,0x0398C,0x036B

27、9 ,0x033DE,0x030FB</p><p>  ,0x02E10,0x02B1E ,0x02826,0x02527 ,0x02223,0x01F19 ,0x01C0B,0x018F8</p><p>  ,0x015E1,0x012C7 ,0x00FAB,0x00C8B ,0x0096A,0x00647 ,0x00324,0x00000</p><

28、;p>  ,0x0FCDC,0x0F9B9 ,0x0F696,0x0F375 ,0x0F056,0x0ED39 ,0x0EA1F,0x0E708</p><p>  ,0x0E3F5,0x0E0E7 ,0x0DDDD,0x0DAD9 ,0x0D7DA,0x0D4E2 ,0x0D1F0,0x0CF05</p><p>  ,0x0CC22,0x0C947 ,0x0C674

29、,0x0C3AA ,0x0C0EA,0x0BE33 ,0x0BB86,0x0B8E4</p><p>  ,0x0B64D,0x0B3C1 ,0x0B141,0x0AECD ,0x0AC66,0x0AA0C ,0x0A7BE,0x0A57F</p><p>  ,0x0A34D,0x0A12A ,0x09F15,0x09D0F ,0x09B19,0x09932 ,0x097

30、5B,0x09594</p><p>  ,0x093DD,0x09237 ,0x090A2,0x08F1F ,0x08DAC,0x08C4C ,0x08AFD,0x089C0</p><p>  ,0x08895,0x0877D ,0x08677,0x08584 ,0x084A4,0x083D8 ,0x0831E,0x08277</p><p>  ,

31、0x081E4,0x08164 ,0x080F8,0x0809F ,0x0805A,0x08029 ,0x0800B,0x08002</p><p>  ,0x0800B,0x08029 ,0x0805A,0x0809F ,0x080F8,0x08164 ,0x081E4,0x08277</p><p>  ,0x0831E,0x083D7 ,0x084A4,0x08584

32、 ,0x08677,0x0877D ,0x08895,0x089C0</p><p>  ,0x08AFD,0x08C4B ,0x08DAC,0x08F1F ,0x090A2,0x09237 ,0x093DD,0x09594</p><p>  ,0x0975B,0x09932 ,0x09B19,0x09D0F ,0x09F15,0x0A12A ,0x0A34D,0x0A57

33、F</p><p>  ,0x0A7BE,0x0AA0B ,0x0AC66,0x0AECD ,0x0B141,0x0B3C1 ,0x0B64D,0x0B8E4</p><p>  ,0x0BB86,0x0BE33 ,0x0C0EA,0x0C3AA ,0x0C674,0x0C947 ,0x0CC22,0x0CF05</p><p>  ,0x0D1F0,0

34、x0D4E1 ,0x0D7DA,0x0DAD9 ,0x0DDDD,0x0E0E7 ,0x0E3F5,0x0E708</p><p>  ,0x0EA1E,0x0ED38 ,0x0F055,0x0F375 ,0x0F696,0x0F9B9 ,0x0FCDC,0x00000</p><p><b>  }; </b></p><p>&

35、lt;b>  /*主程序*/</b></p><p>  void main()</p><p><b>  {</b></p><p>  s16 cnt=2;</p><p>  int i=0,j=0;</p><p>  s32 dat32;</p><

36、;p>  /*初始化5402DSK扳*/</p><p>  if (brd_init(100))</p><p><b>  return;</b></p><p>  /*閃燈程序定義*/</p><p>  while ( cnt-- )</p><p><b>  {<

37、;/b></p><p>  brd_led_toggle(BRD_LED0);</p><p>  /* brd_delay_msec(1000); */</p><p>  delay(1000);</p><p>  brd_led_toggle(BRD_LED1);</p><p>  /* brd_de

38、lay_msec(1000); */</p><p>  delay(1000);</p><p>  brd_led_toggle(BRD_LED2);</p><p>  /* brd_delay_msec(1000); */</p><p>  delay(1000);</p><p><b>  }&

39、lt;/b></p><p>  hHandset = codec_open(HANDSET_CODEC); /* 獲取Codec的句柄 */</p><p>  /* Set codec parameters */</p><p>  codec_dac_mode(hHandset, CODEC_DAC_15BIT);

40、 /* DAC in 15-bit mode */</p><p>  codec_adc_mode(hHandset, CODEC_ADC_15BIT); /* ADC in 15-bit mode */</p><p>  codec_ain_gain(hHandset, CODEC_AIN_6dB); /* 輸入信號(hào)增益為6dB */&

41、lt;/p><p>  codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); /* 輸出信號(hào)增益為-6 dB */</p><p>  codec_sample_rate(hHandset,SR_16000); /* 取樣頻率為16KHz*/</p><p>  /* Polling and

42、digital loopback */</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  /* Wait for sample from handset */</p><p>  while (!MCBSP_RRDY(HANDSET_

43、CODEC)) {};</p><p>  /*數(shù)據(jù)處理開始*/ </p><p>  data = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC); </p><p>  i=i+100;//產(chǎn)生一個(gè)頻率為6250HZ的載波</p><p>  i=i&0xff;//修正樣點(diǎn)指針

44、 </p><p>  temp_buffer[j]=data;</p><p><b>  j++;</b></p><p>  j=j&0xff; </p><p>  dat32 =(data+10)* SINE_TABLE[i];</p><p>  *(volatile

45、u32*)DXR1_ADDR(HANDSET_CODEC) = dat32;</p><p><b>  }</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  /*延遲子程序*/</b

46、></p><p>  void delay(s16 period)</p><p><b>  {</b></p><p><b>  int i, j;</b></p><p>  for(i=0; i<period; i++)</p><p><b&g

47、t;  {</b></p><p>  for(j=0; j<period>>1; j++);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  Cmd文件:</b></p>

48、<p><b>  MEMORY</b></p><p><b>  {</b></p><p>  PAGE 0: VECS: origin = 0080h, length = 0080h /* Internal Program RAM */</p><p>  PRAM: origin =

49、7600h, length = 8000h /* Internal Program RAM */</p><p>  PAGE 1: SCRATCH: origin = 0060h, length = 0020h /* Scratch Pad Data RAM */</p><p>  DMARAM: origin = 0C00h, length = 0300h /* DMA

50、buffer */</p><p>  DATA: origin = 1100h, length = 0080h /* Internal Data RAM */</p><p>  STACK: origin = 1180h, length = 0560h /* Stack Memory Space */</p><p>  INRAM:

51、 origin = 1900h, length = 0100h /* Internal Data RAM */</p><p>  HPRAM0: origin = 1A00h, length = 0002h /* HPI memory accessible by Host and DSP */</p><p>  HPRAM1: origin = 1A02h, l

52、ength = 0280h /* HPI memory accessible by Host and DSP */</p><p>  HPRAM2: origin = 1C82h, length = 0280h /* HPI memory accessible by Host and DSP */</p><p>  EXRAM: origin = 1F10h, lengt

53、h = 4000h /* External Data RAM */</p><p><b>  }</b></p><p>  /*****************************************************************************/</p><p>  /* DSP Memory A

54、llocation */</p><p>  /*****************************************************************************/</p><p><b>  SECTIONS</b><

55、/p><p><b>  {</b></p><p>  .cinit > PRAM PAGE 0</p><p>  .text > PRAM PAGE 0</p><p>  .vectors > VECS PAGE 0</p><p>  init_var

56、 > PRAM PAGE 0</p><p>  detect > PRAM PAGE 0</p><p>  vrcprg > PRAM PAGE 0</p><p>  matprg > PRAM PAGE 0</p><p>  .stack > STACK PAGE 1</

57、p><p>  .trap > SCRATCH PAGE 1</p><p>  .const > EXRAM PAGE 1</p><p>  .data > EXRAM PAGE 1</p><p>  .bss > EXRAM PAGE 1</p><p>  

58、.cio > EXRAM PAGE 1</p><p>  .switch > EXRAM PAGE 1</p><p>  coefficients > EXRAM PAGE 1,align 1024</p><p>  delay > EXRAM PAGE 1,align 1024</p><p>

59、  tables > EXRAM PAGE 1</p><p>  var > EXRAM PAGE 1</p><p>  svctab > EXRAM PAGE 1 /* SS_V LSP table */</p><p>  vctab > EXRAM PAGE 1 /*

60、V LSP table */</p><p>  uvctab > EXRAM PAGE 1 /* UV LSP table */</p><p>  cuvtab > EXRAM PAGE 1 /* Stochastic codebook */</p><p>  cdbktab > EXRAM P

61、AGE 1 /* various codebook tables*/</p><p>  logtab > EXRAM PAGE 1 /* table for log2 */</p><p>  powtab > EXRAM PAGE 1 /* table for pow2 */</p><p&

62、gt;  hamtab > EXRAM PAGE 1 /* table for hamming */</p><p>  lgwtab > EXRAM PAGE 1 /* table for lag window */</p><p>  acostab > EXRAM PAGE 1 /* table

63、for arccos */</p><p>  sqrtab > EXRAM PAGE 1 /* table for square root */</p><p>  acbtab > EXRAM PAGE 1 /* table for thresholds in acb */</p><p>  pm03

64、tab > EXRAM PAGE 1 /* table for x^(-0.3) computation */</p><p>  costab > EXRAM PAGE 1 /* table for cosine */</p><p>  V23 > INRAM PAGE 1</p><p&g

65、t;  FSK > INRAM PAGE 1</p><p>  hpibuff0 > HPRAM0 PAGE 1</p><p>  hpibuff1 > HPRAM1 PAGE 1</p><p>  hpibuff2 > HPRAM2 PAGE 1</p><p>  dma_buff >

66、; DMARAM PAGE 1</p><p><b>  }</b></p><p>  以上就是我們調(diào)幅波的產(chǎn)生程序,這個(gè)程序基本上是按照任務(wù)書的要求設(shè)計(jì)的,但因?yàn)樽詈笠惶鞗](méi)借到板子,所以只用仿真器產(chǎn)生了載波的波形如圖:</p><p>  因?yàn)榈谝粋€(gè)程序的音頻接收部分我們借鑒的是語(yǔ)音壓縮的程序,但我們發(fā)現(xiàn)在調(diào)制過(guò)程中我們?cè)摮绦驅(qū)φ{(diào)制信號(hào)的

67、接收很差,在多次調(diào)試失敗的情況下,我們只能通過(guò)DSK板同時(shí)產(chǎn)生調(diào)制信號(hào)和載波,效果很好,程序如下:</p><p>  /*利用查表法取得調(diào)制信號(hào),次程序只是利用查表法產(chǎn)生載波和輸入信號(hào),沒(méi)有里利用語(yǔ)音輸入作為輸入信號(hào)*/</p><p>  #include <type.h></p><p>  #include <board.h><

68、/p><p>  #include <codec.h></p><p>  #include <mcbsp54.h></p><p>  void delay(s16 period);</p><p>  HANDLE hHandset;</p><p><b>  s16 data;&l

69、t;/b></p><p><b>  u16 j=0;</b></p><p><b>  u16 n=0;</b></p><p><b>  u16 a=0;</b></p><p>  s32 out_buffer[256];</p><p&g

70、t;  s32 out_buffer1[256];</p><p>  s32 out_buffer2[256];//定義</p><p>  s16 SINE_TABLE[]=</p><p><b>  {</b></p><p>  0x00324,0x00647 ,0x0096A,0x00C8B ,0x00F

71、AB,0x012C7 ,0x015E1,0x018F8</p><p>  ,0x01C0B,0x01F19 ,0x02223,0x02527 ,0x02826,0x02B1E ,0x02E10,0x030FB</p><p>  ,0x033DE,0x036B9 ,0x0398C,0x03C56 ,0x03F16,0x041CD ,0x0447A,0x047

72、1C</p><p>  ,0x049B3,0x04C3F ,0x04EBF,0x05133 ,0x0539A,0x055F4 ,0x05842,0x05A81</p><p>  ,0x05CB3,0x05ED6 ,0x060EB,0x062F1 ,0x064E7,0x066CE ,0x068A5,0x06A6C</p><p>  ,0x

73、06C23,0x06DC9 ,0x06F5E,0x070E1 ,0x07254,0x073B5 ,0x07503,0x07640</p><p>  ,0x0776B,0x07883 ,0x07989,0x07A7C ,0x07B5C,0x07C29 ,0x07CE2,0x07D89</p><p>  ,0x07E1C,0x07E9C ,0x07F08,0x07F61 ,

74、0x07FA6,0x07FD7 ,0x07FF5,0x07FFE</p><p>  ,0x07FF5,0x07FD7 ,0x07FA6,0x07F61 ,0x07F08,0x07E9C ,0x07E1C,0x07D89</p><p>  ,0x07CE2,0x07C29 ,0x07B5C,0x07A7C ,0x07989,0x07883 ,0x0776B,0x07640&

75、lt;/p><p>  ,0x07503,0x073B5 ,0x07254,0x070E1 ,0x06F5E,0x06DC9 ,0x06C23,0x06A6C</p><p>  ,0x068A5,0x066CE ,0x064E7,0x062F1 ,0x060EB,0x05ED6 ,0x05CB3,0x05A81</p><p>  ,0x05842,0x0

76、55F5 ,0x0539A,0x05133 ,0x04EBF,0x04C3F ,0x049B3,0x0471C</p><p>  ,0x0447A,0x041CD ,0x03F16,0x03C56 ,0x0398C,0x036B9 ,0x033DE,0x030FB</p><p>  ,0x02E10,0x02B1E ,0x02826,0x02527 ,0x02223,0

77、x01F19 ,0x01C0B,0x018F8</p><p>  ,0x015E1,0x012C7 ,0x00FAB,0x00C8B ,0x0096A,0x00647 ,0x00324,0x00000</p><p>  ,0x0FCDC,0x0F9B9 ,0x0F696,0x0F375 ,0x0F056,0x0ED39 ,0x0EA1F,0x0E708</p>

78、<p>  ,0x0E3F5,0x0E0E7 ,0x0DDDD,0x0DAD9 ,0x0D7DA,0x0D4E2 ,0x0D1F0,0x0CF05</p><p>  ,0x0CC22,0x0C947 ,0x0C674,0x0C3AA ,0x0C0EA,0x0BE33 ,0x0BB86,0x0B8E4</p><p>  ,0x0B64D,0x0B3C1 ,0x

79、0B141,0x0AECD ,0x0AC66,0x0AA0C ,0x0A7BE,0x0A57F</p><p>  ,0x0A34D,0x0A12A ,0x09F15,0x09D0F ,0x09B19,0x09932 ,0x0975B,0x09594</p><p>  ,0x093DD,0x09237 ,0x090A2,0x08F1F ,0x08DAC,0x08C4C ,

80、0x08AFD,0x089C0</p><p>  ,0x08895,0x0877D ,0x08677,0x08584 ,0x084A4,0x083D8 ,0x0831E,0x08277</p><p>  ,0x081E4,0x08164 ,0x080F8,0x0809F ,0x0805A,0x08029 ,0x0800B,0x08002</p><p&g

81、t;  ,0x0800B,0x08029 ,0x0805A,0x0809F ,0x080F8,0x08164 ,0x081E4,0x08277</p><p>  ,0x0831E,0x083D7 ,0x084A4,0x08584 ,0x08677,0x0877D ,0x08895,0x089C0</p><p>  ,0x08AFD,0x08C4B ,0x08DAC,0x0

82、8F1F ,0x090A2,0x09237 ,0x093DD,0x09594</p><p>  ,0x0975B,0x09932 ,0x09B19,0x09D0F ,0x09F15,0x0A12A ,0x0A34D,0x0A57F</p><p>  ,0x0A7BE,0x0AA0B ,0x0AC66,0x0AECD ,0x0B141,0x0B3C1 ,0x0B64D,0

83、x0B8E4</p><p>  ,0x0BB86,0x0BE33 ,0x0C0EA,0x0C3AA ,0x0C674,0x0C947 ,0x0CC22,0x0CF05</p><p>  ,0x0D1F0,0x0D4E1 ,0x0D7DA,0x0DAD9 ,0x0DDDD,0x0E0E7 ,0x0E3F5,0x0E708</p><p>  ,0x0E

84、A1E,0x0ED38 ,0x0F055,0x0F375 ,0x0F696,0x0F9B9 ,0x0FCDC,0x00000</p><p><b>  }; </b></p><p><b>  /*主程序*/</b></p><p>  void main()</p><p><b&

85、gt;  {</b></p><p>  s16 amp=1;//定義幅度</p><p>  s16 cnt=2;</p><p><b>  u16 i=0;</b></p><p><b>  u16 m=0;</b></p><p>  if (brd

86、_init(100))</p><p><b>  return;</b></p><p>  /* 定義閃燈程序*/</p><p>  while ( cnt-- )</p><p><b>  {</b></p><p>  brd_led_toggle(BRD_LED

87、0);</p><p>  /* brd_delay_msec(1000); */</p><p>  delay(1000);</p><p>  brd_led_toggle(BRD_LED1);</p><p>  /* brd_delay_msec(1000); */</p><p>  delay(1000)

88、;</p><p>  brd_led_toggle(BRD_LED2);</p><p>  /* brd_delay_msec(1000); */</p><p>  delay(1000);</p><p><b>  }</b></p><p><b>  while (1)&l

89、t;/b></p><p><b>  {</b></p><p>  i=i+1;//62.5HZ</p><p>  // i=i+10;//625HZ</p><p>  // i=i+100;//6250HZ</p><p>  i&=0x00ff;

90、 // 修正樣點(diǎn)指針</p><p>  out_buffer1[j]=amp*SINE_TABLE[i];//利用查表法產(chǎn)生一個(gè)載波信號(hào),并存放在數(shù)組out_buffer1中</p><p>  //m=m+1;//62.5HZ</p><p>  m=m+10;//625HZ</p><p>  // m=m+100;

91、//6250HZ</p><p>  m&=0x00ff; // 修正樣點(diǎn)指針</p><p>  out_buffer2[j]=amp*SINE_TABLE[m];//利用查表法產(chǎn)生一個(gè)輸入信號(hào),并存放在數(shù)組out_buffer2中</p><p>  out_buffer[j]=(10+out_buffer1[j])*out_buff

92、er2[j];</p><p><b>  j++;</b></p><p>  j&=0x00ff; //mod 255</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* 定義延遲程

93、序*/ </p><p>  void delay(s16 period)</p><p><b>  {</b></p><p><b>  int i, j;</b></p><p>  for(i=0; i<period; i++)</p><p><

94、;b>  {</b></p><p>  for(j=0; j<period>>1; j++);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  Cmd:</b></p>

95、<p><b>  MEMORY</b></p><p><b>  {</b></p><p>  PAGE 0: VECS: origin = 0080h, length = 0080h /* Internal Program RAM */</p><p>  PRAM: origin

96、= 7600h, length = 8000h /* Internal Program RAM */</p><p>  PAGE 1: SCRATCH: origin = 0060h, length = 0020h /* Scratch Pad Data RAM */</p><p>  DMARAM: origin = 0C00h, length = 0300h /* DM

97、A buffer */</p><p>  DATA: origin = 1100h, length = 0080h /* Internal Data RAM */</p><p>  STACK: origin = 1180h, length = 0560h /* Stack Memory Space */</p><p>  INRA

98、M: origin = 1900h, length = 0100h /* Internal Data RAM */</p><p>  HPRAM0: origin = 1A00h, length = 0002h /* HPI memory accessible by Host and DSP */</p><p>  HPRAM1: origin = 1A02h,

99、 length = 0280h /* HPI memory accessible by Host and DSP */</p><p>  HPRAM2: origin = 1C82h, length = 0280h /* HPI memory accessible by Host and DSP */</p><p>  EXRAM: origin = 1F10h, len

100、gth = 4000h /* External Data RAM */</p><p><b>  }</b></p><p>  /*****************************************************************************/</p><p>  /* DSP Memory

101、 Allocation */</p><p>  /*****************************************************************************/</p><p><b>  SECTIONS</b>&l

102、t;/p><p><b>  {</b></p><p>  .cinit > PRAM PAGE 0</p><p>  .text > PRAM PAGE 0</p><p>  .vectors > VECS PAGE 0</p><p>  init_v

103、ar > PRAM PAGE 0</p><p>  detect > PRAM PAGE 0</p><p>  vrcprg > PRAM PAGE 0</p><p>  matprg > PRAM PAGE 0</p><p>  .stack > STACK PAGE 1<

104、;/p><p>  .trap > SCRATCH PAGE 1</p><p>  .const > EXRAM PAGE 1</p><p>  .data > EXRAM PAGE 1</p><p>  .bss > EXRAM PAGE 1</p><p>

105、  .cio > EXRAM PAGE 1</p><p>  .switch > EXRAM PAGE 1</p><p>  tables > EXRAM PAGE 1</p><p>  var > EXRAM PAGE 1</p><p>  svctab > EXR

106、AM PAGE 1 /* SS_V LSP table */</p><p>  vctab > EXRAM PAGE 1 /* V LSP table */</p><p>  uvctab > EXRAM PAGE 1 /* UV LSP table */</p><p>  cuvtab

107、 > EXRAM PAGE 1 /* Stochastic codebook */</p><p>  cdbktab > EXRAM PAGE 1 /* various codebook tables*/</p><p>  logtab > EXRAM PAGE 1 /* table for log2

108、*/</p><p>  powtab > EXRAM PAGE 1 /* table for pow2 */</p><p>  hamtab > EXRAM PAGE 1 /* table for hamming */</p><p>  lgwtab > EXRAM PAGE 1

109、 /* table for lag window */</p><p>  acostab > EXRAM PAGE 1 /* table for arccos */</p><p>  sqrtab > EXRAM PAGE 1 /* table for square root */</p><p>

110、;  acbtab > EXRAM PAGE 1 /* table for thresholds in acb */</p><p>  pm03tab > EXRAM PAGE 1 /* table for x^(-0.3) computation */</p><p>  costab > EXRAM PAGE 1

111、 /* table for cosine */</p><p>  V23 > INRAM PAGE 1</p><p>  FSK > INRAM PAGE 1</p><p>  hpibuff0 > HPRAM0 PAGE 1</p><p>  hpibuff1 >

112、HPRAM1 PAGE 1</p><p>  hpibuff2 > HPRAM2 PAGE 1</p><p>  dma_buff > DMARAM PAGE 1</p><p><b>  }</b></p><p>  信號(hào)調(diào)制后的波形如圖:</p><p>  最后我們又

113、嘗試了用計(jì)算法產(chǎn)生載波和調(diào)制信號(hào),程序如下:</p><p>  #include <stdio.h></p><p>  #include <math.h></p><p>  #define TURE 1</p><p>  int y[500],i;</p><p><b>  

114、float M;</b></p><p>  void main()</p><p><b>  {</b></p><p>  puts("amplitude modulation sinewave example started.\n");</p><p><b>  M=5

115、0;</b></p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p><p><b>  y[i]=0;</b></p><p><b>  }</b></p><p>  while(

116、TURE)</p><p><b>  {</b></p><p>  for(i=0;i<500;i++)</p><p><b>  {</b></p><p>  y[i]=(int)((1+M/100*sin(i*2*3.14159*20/4000))*sin(i*2*3.14159*

117、200/4000)*16384);</p><p><b>  }</b></p><p>  puts("program end");</p><p><b>  }</b></p><p><b>  }</b></p><p>

118、<b>  Cmd:</b></p><p><b>  MEMORY</b></p><p><b>  {</b></p><p>  PAGE 0: EPROG: origin=0x1400,len=0x7c00</p><p>  VECT: origin=0xf

119、f80,len=0x80</p><p>  PAGE 1: USERREGS: origin=0x60,len=0x1c</p><p>  IDATA: origin=0x80,len=0x3000</p><p><b>  }</b></p><p><b>  SECTIONS</b>

120、;</p><p><b>  {</b></p><p>  .vectors:> VECT PAGE 0</p><p>  .text: > EPROG PAGE 0</p><p>  .cinit: > EPROG PAGE 0</p><p>  .bss:

121、 > IDATA PAGE 1</p><p>  .const: > IDATA PAGE 1</p><p>  .switch: > IDATA PAGE 1</p><p>  .sysmem: > IDATA PAGE 1</p><p>  .stack: > IDATA PAGE 1<

122、/p><p><b>  }</b></p><p><b>  調(diào)制后波形如圖: </b></p><p>  五、設(shè)計(jì)(安裝)與調(diào)試的體會(huì)</p><p>  通過(guò)此次實(shí)驗(yàn)設(shè)計(jì),我們基本了解了DSP的內(nèi)部資源以及各部件的作用。通過(guò)應(yīng)用DSP算法實(shí)現(xiàn)通過(guò)FIR及IIR兩種不同的濾波器對(duì)信號(hào)進(jìn)行濾波的實(shí)

123、驗(yàn)過(guò)程,使我們熟悉了使用DSP工程的建設(shè)以及應(yīng)用于DSP系統(tǒng)的C語(yǔ)言的編寫,學(xué)會(huì)了通過(guò)MATLAB進(jìn)行濾波器設(shè)計(jì)并導(dǎo)出我們所需要的相關(guān)系數(shù)以及頭文件,并對(duì)CCS5000對(duì)程序的完整調(diào)試過(guò)程有了進(jìn)一步的理解。 在剛開始上這門實(shí)驗(yàn)課時(shí),理論部分感覺(jué)很像剛剛學(xué)過(guò)的的單片機(jī),在得知他是匯編語(yǔ)言與C語(yǔ)言聯(lián)合編程時(shí),就感覺(jué)c語(yǔ)言已很久不用,再看程序時(shí)那些c語(yǔ)言程序完全摸不到頭腦。后來(lái)經(jīng)過(guò)看課件和以前學(xué)過(guò)的C語(yǔ)言教材逐步對(duì)它有所了解。在ccs中有很

124、多現(xiàn)成的的函數(shù),我們需要的是合理實(shí)時(shí)調(diào)用它來(lái)解決問(wèn)題。這次實(shí)驗(yàn)應(yīng)該說(shuō)是我所經(jīng)歷的小學(xué)期課程中難度系數(shù)最高,實(shí)驗(yàn)過(guò)程最為復(fù)雜的一次,雖然沒(méi)有焊接電路那種細(xì)致并需要絕對(duì)的耐心的手工制作,但是實(shí)驗(yàn)里所需要的是對(duì)于幾種不同的語(yǔ)言的熟練運(yùn)用以及程序編輯時(shí)的縝密的邏輯能力以及分析能力。討論在這次實(shí)驗(yàn)中很有幫助,它可以糾正錯(cuò)誤的想法,啟發(fā)新的方法。而每次上機(jī)實(shí)驗(yàn)都會(huì)出現(xiàn)各種各樣的不同情況。有時(shí)進(jìn)入就會(huì)出錯(cuò),板子沒(méi)插好,但是再運(yùn)行時(shí)</p>

溫馨提示

  • 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ù)僅提供信息存儲(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)論