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

下載本文檔

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

文檔簡介

1、<p><b>  XXXX</b></p><p><b>  DSP課程設(shè)計(jì)</b></p><p><b>  摘要:</b></p><p>  在上學(xué)期數(shù)字信號(hào)處理(DSP)學(xué)習(xí)的基礎(chǔ)上,本次課程設(shè)計(jì)的目的是,學(xué)會(huì)使用CCS(Code Composer Studio)或matlab

2、7.0集成開發(fā)環(huán)境軟件,在此集成開發(fā)環(huán)境下完成工程項(xiàng)目創(chuàng)建,程序編寫,編譯,鏈接,調(diào)試以及數(shù)據(jù)的分析。同時(shí)完成一個(gè)余弦波信號(hào)發(fā)生器的程序的編寫,并在集成開發(fā)環(huán)境下進(jìn)行模擬運(yùn)行,觀察結(jié)果。</p><p><b>  目錄</b></p><p>  第一章 概述……………………………………………………………04</p><p>  1.1設(shè)計(jì)目

3、的………………………………………………………04</p><p>  1.2設(shè)計(jì)內(nèi)容………………………………………………………04</p><p>  1.3設(shè)計(jì)原理………………………………………………………04</p><p>  第二章 總體方案設(shè)計(jì)…………………………………………………08</p><p>  2.1 總體實(shí)現(xiàn)方案………

4、…………………………………………08</p><p>  2.2 具體實(shí)現(xiàn)步驟…………………………………………………10</p><p>  第三章 源程序…………………………………………………………11</p><p>  第四章 設(shè)計(jì)仿真結(jié)果及分析…………………………………………15</p><p>  第五章 Matlab下產(chǎn)生該正弦

5、信號(hào)…………………………………16</p><p>  5.1 程序……………………………………………………………16</p><p>  5.2實(shí)驗(yàn)圖形………………………………………………………16</p><p>  第六章 設(shè)計(jì)總結(jié)………………………………………………………17</p><p><b>  第一章 概述<

6、/b></p><p><b>  1.1設(shè)計(jì)目的</b></p><p>  學(xué)會(huì)使用CCS(Code Composer Studio)集成開發(fā)環(huán)境軟件,在此集成開發(fā)環(huán)境下完成工程項(xiàng)目創(chuàng)建,程序編寫,編譯,鏈接,調(diào)試以及數(shù)據(jù)的分析。同時(shí)完成一個(gè)正弦波信號(hào)發(fā)生器的程序的編寫,并在集成開發(fā)環(huán)境下進(jìn)行模擬運(yùn)行,觀察結(jié)果。</p><p>&l

7、t;b>  1.2設(shè)計(jì)內(nèi)容</b></p><p>  編寫一個(gè)產(chǎn)生正弦波信號(hào)的程序,在CCS軟件下進(jìn)行模擬運(yùn)行,觀察輸出結(jié)果。</p><p><b>  1.3設(shè)計(jì)原理</b></p><p>  正弦波信號(hào)發(fā)生器已被廣泛地應(yīng)用于通信、儀器儀表和工業(yè)控制等領(lǐng)域的信號(hào)處理系統(tǒng)中。通常有兩種方法可以產(chǎn)生正弦波,分別為查表法和泰

8、勒級(jí)數(shù)展開法。查表法是通過查表的方式來實(shí)現(xiàn)正弦波,主要用于對(duì)精度要求不很高的場(chǎng)合。泰勒級(jí)數(shù)展開法是根據(jù)泰勒展開式進(jìn)行計(jì)算來實(shí)現(xiàn)正弦信號(hào),它能精確地計(jì)算出一個(gè)角度的正弦和余弦值,且只需要較小的存儲(chǔ)空間。本次課程設(shè)計(jì)只要使用泰勒級(jí)數(shù)展開法來實(shí)現(xiàn)正弦波信號(hào)。</p><p>  1. 產(chǎn)生正弦波的算法</p><p>  在高等數(shù)學(xué)中,正弦函數(shù)和余弦函數(shù)可以展開成泰勒級(jí)數(shù),其表達(dá)式為</p

9、><p>  若要計(jì)算一個(gè)角度x的正弦和余弦值,可取泰勒級(jí)數(shù)的前5項(xiàng)進(jìn)行近似計(jì)算。</p><p>  由上述兩個(gè)式子可以推導(dǎo)出遞推公式,即</p><p>  sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x]</p><p>  cos(nx)=2cos(x)sin[(n-1)x]-cos[(n-2)x]</p

10、><p>  由遞推公式可以看出,在計(jì)算正弦和余弦值時(shí),不僅需要已知cos(x),而且還需要sin[(n-1)x]、sin[(n-2)x]和cos[(n-2)x]。</p><p><b>  2. 正弦波的實(shí)現(xiàn)</b></p><p>  ⑴計(jì)算一個(gè)角度的正弦值</p><p>  利用泰勒級(jí)數(shù)的展開式,可計(jì)算一個(gè)角度x的

11、正弦值,并采用子程序的調(diào)用方式。在調(diào)用前先在數(shù)據(jù)存儲(chǔ)器d_xs單元中存放x的弧度值,計(jì)算結(jié)果存放在d_sinx單元中。</p><p>  實(shí)現(xiàn)計(jì)算一個(gè)角度的正弦值的程序片段如下:</p><p><b>  sinx:</b></p><p>  .def d_xs,d_sinx </p><p><b

12、>  .data</b></p><p>  table_s .word 01C7H ;C1=1/(8*9)</p><p>  .word 030BH ;C2=1/(6*7)</p><p>  .word 0666H ;C3=1/(4*5)</p><p&g

13、t;  .word 1556H ;C4=1/(2*3)</p><p>  d_coef_s .usect "coef_s",4</p><p>  d_xs .usect "sin_vars",1</p><p>  d_squr_xs .usect "sin_v

14、ars",1</p><p>  d_temp_s .usect "sin_vars",1</p><p>  d_sinx .usect "sin_vars",1</p><p>  d_l_s .usect "sin_vars",1</p>&

15、lt;p><b>  .text</b></p><p>  SSBX FRCT</p><p>  STM #d_coef_s,AR5 ;move coeffs table_s</p><p><b>  RPT #3</b></p><p>  MVP

16、D #table_s,*AR5+</p><p>  STM #d_coef_s,AR3</p><p>  STM #d_xs,AR2</p><p>  STM #d_l_s,AR4</p><p>  ST #7FFFH,d_l_s</p><p>  SQUR *AR2+,A

17、 ;A=x^2</p><p>  ST A,*AR2 ;(AR2)=x^2</p><p>  ||LD *AR4,B ;B=1</p><p>  MASR *AR2+,*AR3+,B,A ;A=1-x^2/72,T=x^2<

18、;/p><p>  MPYA A ;A=T*A=x^2(1-x^2/72)</p><p>  STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)</p><p>  MASR *AR2-,*AR3+,B,A </

19、p><p>  ;A=1-x^2/42(1-x^2/72);T=x^2(1-x^2/72)</p><p>  MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))</p><p>  ST B,*AR2 </p><p>  ;(d_temp)=x^2

20、(1-x^2/42(1-x^2/72))</p><p>  ||LD *AR4,B ;B=1</p><p>  MASR *AR2-,*AR3+,B,A </p><p>  ;A=1-x^2/20(1-x^2/42(1-x^2/72))</p><p>  MPYA *A

21、R2+ </p><p>  ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p>  ST B,*AR2 ;(d_temp)=B</p><p>  ||LD *AR4,B ;B=1</p><

22、;p>  MASR *AR2-,*AR3,B,A </p><p>  ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p>  MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))</p><p>  STH B,d_sinx

23、 ;sin(theta)</p><p><b>  RET</b></p><p>  ⑵計(jì)算一個(gè)角度的余弦值</p><p>  利用余弦函數(shù)展開的泰勒級(jí)數(shù)的前五項(xiàng)計(jì)算一個(gè)角度的余弦值,可采用子程序的調(diào)用方式來實(shí)現(xiàn)。調(diào)用前先將x弧度值放在數(shù)據(jù)存儲(chǔ)器d_xc單元中,計(jì)算結(jié)果存放在d_cosx單元中。</p&

24、gt;<p>  實(shí)現(xiàn)計(jì)算一個(gè)角度的余弦值的程序片段如下:</p><p>  cosx: </p><p>  .def d_xc,d_cosx</p><p>  d_coef_c .usect "coef_c",4</p><p><b>  .data</b>

25、;</p><p>  table_c .word 0249H ;C1=1/(7*8)</p><p>  .word 0444H ;C2=1/(5*6)</p><p>  .word 0AABH ;C3=1/(3*4)</p><p>  .word 4000H

26、 ;C4=1/2</p><p>  d_xc .usect "cos_vars",1</p><p>  d_squr_xc .usect "cos_vars",1</p><p>  d_temp_c .usect "cos_vars",1</p&g

27、t;<p>  d_cosx .usect "cos_vars",1</p><p>  c_l_c .usect "cos_vars",1</p><p><b>  .text</b></p><p>  SSBX FRCT</p><

28、p>  STM #d_coef_c,AR5 ;move coeffs table_c</p><p><b>  RPT #3</b></p><p>  MVPD #table_c,*AR5+</p><p>  STM #d_coef_c,AR3</p><p>  STM

29、#d_xc,AR2</p><p>  STM #c_l_c,AR4</p><p>  ST #7FFFH,c_l_c</p><p>  SQUR *AR2+,A ;A=x^2</p><p>  ST A,*AR2 ;(AR2)=x^2</

30、p><p>  ||LD *AR4,B ;B=1</p><p>  MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2</p><p>  MPYA A ;A=T*A=x^2(1-x^2/56)</p><p>  S

31、TH A,*AR2 ;(d_temp)=x^2(1-x^2/56)</p><p>  MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56)</p><p>  ;T=x^2(1-x^2/56)</p><p>  MPYA *AR2+ ;B=

32、x^2(1-x^2/30(1-x^2/56))</p><p>  ST B,*AR2 </p><p>  ;(d_temp)=x^2(1-x^2/30(1-x^2/56))</p><p>  ||LD *AR4,B ;B=1</p><p>  MASR *

33、AR2-,*AR3+,B,A </p><p>  ;A=1-x^2/12(1-x^2/30(1-x^2/56))</p><p>  SFTA A,-1,A ;-1/2</p><p><b>  NEG A</b></p><p>  MPYA *AR2+

34、 ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p><p>  MAR *AR2+</p><p><b>  RETD</b></p><p>  ADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p&

35、gt;<p>  STH B,*AR2 ;cos(theta)</p><p><b>  RET</b></p><p><b> ?、钦也ǖ膶?shí)現(xiàn)</b></p><p>  利用計(jì)算一個(gè)角度的正弦值和余弦值程序可實(shí)現(xiàn)正弦波。其實(shí)現(xiàn)步驟如下:</p>&l

36、t;p>  第一步:利用sin_start和cos_start子程序,計(jì)算(間隔為)的正弦和余弦值;</p><p>  第二步:利用sin(2x)=2sin(x)cos(x)公式,計(jì)算的正弦值(間隔為);</p><p>  第三步:通過復(fù)制,獲得的正弦值;</p><p>  第四步:將的正弦值重復(fù)從PA口輸出,便可得到正弦波。</p>&l

37、t;p>  產(chǎn)生正弦波的程序片段如下:</p><p><b>  .mmregs</b></p><p>  .def start</p><p>  .def d_xs,d_sinx,d_xc,d_cosx,sinx,cosx</p><p>  sin_x: .usect "s

38、in_x",360</p><p>  STACK: .usect "STACK",10H</p><p>  k_theta .set 286 ;theta=pi/360(0.5deg)</p><p><b>  start:</b></p><

39、p><b>  .text</b></p><p>  STM #STACK+10H,SP</p><p>  STM k_theta,AR0</p><p>  STM 0,AR1</p><p>  STM #sin_x,AR6</p><p>  STM #90,B

40、RC</p><p>  RPTB loop1-1</p><p>  LDM AR1,A</p><p>  LD #d_xs,DP</p><p>  STL A,@d_xs</p><p>  STL A,@d_xc</p><p>  CALL sinx

41、 ;d_sinx=sin(x)</p><p>  CALL cosx ;d_cosx=cos(x)</p><p>  LD #d_sinx,DP</p><p>  LD @d_sinx,16,A ;A=sin(x)</p><p>  MPYA @d_cosx

42、 ;B=sin(x)*cos(x)</p><p>  STH B,1,*AR6+ ;AR6----2*sin(x)</p><p>  MAR *AR1+0</p><p>  loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)</p><p>

43、  STM #88,BRC</p><p>  RPTB loop2-1</p><p>  LD *AR7-,A</p><p>  STL A,*AR6+</p><p>  loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)</p>&l

44、t;p>  STM #sin_x,AR7</p><p>  RPTB loop3-1</p><p>  LD *AR7+,A</p><p><b>  NEG A</b></p><p>  STL A,*AR6+</p><p>  loop3: STM

45、 #sin_x,AR6 ;generate sin wave</p><p>  STM #1,AR0</p><p>  STM #360,BK</p><p>  B loop3</p><p>  產(chǎn)生正弦波鏈接命令文件的程序片段如下:</p><p><b>  MEMOR

46、Y</b></p><p><b>  {</b></p><p><b>  PAGE 0:</b></p><p>  EPROM: org=0E000H, len=1000H</p><p>  VECS: org=0FF80H, len=0080H</p>

47、<p><b>  PAGE 1:</b></p><p>  SPRAM: org=0060H, len=0020H</p><p>  DARAM1: org=0080H, len=0010H</p><p>  DARAM2: org=0090H, len=0010H</p><p>  D

48、ARAM3: org=0200H, len=0200H</p><p><b>  }</b></p><p><b>  SECTIONS</b></p><p><b>  {</b></p><p>  .text :> EPROM PAGE

49、0</p><p>  .data :> EPROM PAGE 0</p><p>  STACK :> SPRAM PAGE 1</p><p>  sin_vars :> DARAM1 PAGE 1</p><p>  coef_s :> DARAM1

50、PAGE 1</p><p>  cos_vars :> DARAM2 PAGE 1</p><p>  coef_c :> DARAM2 PAGE 1</p><p>  sin_x : align(512) {} > DARAM3 PAGE 1</p><p>  .

51、vectors :> VECS PAGE 0</p><p><b>  }</b></p><p>  在實(shí)際應(yīng)用中,正弦波是通過D/A口輸出的。選擇每個(gè)正弦周期中的樣點(diǎn)數(shù)、改變每個(gè)樣點(diǎn)之間的延遲,就能夠產(chǎn)生不同頻率的波形,也可以利用軟件改變波形的幅度以及起始相位。</p><p>  第二章 總體方案設(shè)計(jì)</p&

52、gt;<p>  2.1. 總體實(shí)現(xiàn)方案</p><p>  我們知道一個(gè)角度為x的正弦和余弦函數(shù),都可以展開為泰勒級(jí)數(shù),且其前五項(xiàng)可以看為:</p><p>  本程序的編程思想是這樣的,正弦波的波形可以看為由無數(shù)點(diǎn)組成,這些點(diǎn)與軸的每一個(gè)角度值相對(duì)應(yīng),那么我們可以利用DSP處理器處理大量重復(fù)計(jì)算的優(yōu)勢(shì)來計(jì)算,軸每一點(diǎn)對(duì)應(yīng)的y軸的值(在x軸取360個(gè)點(diǎn)來進(jìn)行逼近),由于程序

53、的編制采用小數(shù)形式,其弧度大于1的正弦值得不到,這就對(duì)正弦波的產(chǎn)生造成了障礙??捎捎谡也ǖ奶厥獾膶?duì)稱形式給程序的編制找到了出口。的弧度為0.7854<1,即 之間的任意正弦、余弦值可以利用匯編程序得到N又可以利用公式:得到之間的正弦值。而之間的正弦曲線與之間的正弦曲線通過這條軸左右對(duì)稱,那么就可以得到的正弦值,而的正弦曲線的相反數(shù)通過這條軸與左右對(duì)稱。這樣的正弦值也得到了。一個(gè)周期內(nèi)完整的正弦波就得到了。正弦波產(chǎn)生的流程圖如下:

54、</p><p>  2.2. 具體實(shí)現(xiàn)步驟</p><p>  本課程設(shè)計(jì)需要使用C54X匯編語言產(chǎn)生正弦波,并通過 CCS的圖形顯示工具觀察波形。設(shè)計(jì)分以下幾步完成:</p><p>  啟動(dòng) CCS,操作如下:</p><p>  1.建立新的工程文件:點(diǎn)擊Project→New,保存文件名為sinx.pjt。</p>&

55、lt;p>  2.建立匯編源程序:點(diǎn)擊File→New→Source File菜單命令,打開一個(gè)空白文檔,將匯編源程序逐條輸入后,單擊Flie→Save菜單命令,文件類型保存為(*.asm),單擊“保存”按鈕,以上匯編程序被存盤。</p><p>  3.建立連接命令文件:點(diǎn)擊File→New→Source File菜單命令,打開一個(gè)空白文檔,將鏈接命令文件逐條輸入后,單擊Flie→Save菜單命令,文件類

56、型保存為(*.cmd),單擊“保存”按鈕,以上鏈接命令文件被存盤。</p><p>  4.選擇 Project 菜單中的Add File to Project 選項(xiàng),將匯編源程序sin.asm和鏈接定位sin.cmd文件依次添加到工程文件中。</p><p>  5.選擇 Project 菜單中的 Options 選項(xiàng),并選擇 build options 項(xiàng)來修改或添加編譯、連接中使用的

57、參數(shù)。選擇Linker 窗口,在“Output Filename”欄中寫入輸出 OUT 文件的名字,如 sin.out,還可以設(shè)置生成的 map文件名。 </p><p>  6.完成匯編,編譯和鏈接,正確產(chǎn)生.out文件:點(diǎn)擊Project菜單中的Rebuild all,請(qǐng)注意在監(jiān)視窗口顯示的匯編,編譯和鏈接的相關(guān)信息。如果沒有錯(cuò)誤,將產(chǎn)生sin.out文件;如果有錯(cuò),在監(jiān)視窗口以紅色字體顯示出錯(cuò)誤行,用鼠標(biāo)雙

58、擊該行,光標(biāo)跳將至源程序相應(yīng)的出錯(cuò)行。修改錯(cuò)誤后,重新匯編鏈接。</p><p>  7.在 Project 選項(xiàng)中打開sin.pjt 文件,使用 Build 選項(xiàng)完成編譯、連接。</p><p>  8.使用 File 菜單中的 Load Program 將 OUT 文件裝入。然后選擇 Debug→Run,程序執(zhí)行過程中可以使用 Debug →Halt 暫停程序的執(zhí)行。</p>

59、;<p>  9.選擇 View -> Graph -> Time/Frequency菜單打開一個(gè)圖形顯示窗口。將 “Start Address”項(xiàng)改為地址sin_x,將“Acquisition Buffer Size”項(xiàng)設(shè)置為360,將“Display Data Size”項(xiàng)設(shè)置為360,將“DSP Data Type”改為“16-bit signed integer” 。</p><p&

60、gt;  即將Graph Property Dialog對(duì)話框改為見下圖:</p><p>  這樣,將在圖形顯示窗口中顯示從sin_x(首地址)開始的360個(gè)點(diǎn)的 16 位有符號(hào)整數(shù)的圖形。</p><p><b>  第三章 源程序</b></p><p><b>  主要參數(shù)</b></p><p

61、>  1. sin(theta)=x(1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9))))</p><p>  2. cos(theta)=1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9)))</p><p>  3. sin(2*theta)=2*sin(theta)*cos(theta)</p>&l

62、t;p><b>  源程序</b></p><p>  1. 產(chǎn)生正弦波程序清單sin.asm:</p><p>  .title "sin.asm" ;為匯編文件取名為“sin.asm”</p><p>  .mmregs ;定義存儲(chǔ)器映像寄存器</p><p&g

63、t;  .def _c_int00</p><p>  .ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx;定義標(biāo)號(hào)</p><p>  sin_x: .usect "sin_x",360 ;為"sin_x"保留360個(gè)存儲(chǔ)空間</p><p>  STACK: .u

64、sect "STACK",10 ;為堆棧保留10個(gè)存儲(chǔ)空間</p><p>  k_theta .set 286 ;theta=pi/360(0.5deg)</p><p>  PA0 .set 0</p><p><b>  _c_int00 </b></p&

65、gt;<p>  .text ;定義文本程序代碼段</p><p>  STM #STACK+10,SP ;設(shè)置堆棧指針</p><p>  STM k_theta,AR0 ;AR0-->K_theta(increment)</p><p>  STM 0,AR1

66、 ;(AR1)=X(rad)</p><p>  STM #sin_x,AR6 ;AR6- - >sin(x)</p><p>  STM #90,BRC ;form sin0(deg.)—sin90(deg)</p><p>  ;重復(fù)執(zhí)行塊語句(下條語句開始至loop1-1 )91次</p>

67、<p>  RPTB loop1-1 </p><p>  LDM AR1,A</p><p>  LD #d_xs,DP ;DPd_xs</p><p>  STL A,@d_xs ;(A)低16位→d_xs</p><p>  STL A,

68、@d_xc ;(A)低16位→d_xc</p><p>  CALL sinx ;調(diào)用sinx程序</p><p>  CALL cosx ;調(diào)用conx程序</p><p>  LD #d_sinx,DP ;DP d_sinx</p><p>  LD

69、 @d_sinx,16,A ;A=sin(x)</p><p>  MPYA @d_cosx ;B= sin(x)*cos(x)</p><p>  STH B,1,*AR6+ ;AR6- - >2*sin(x)*cos(x)</p><p>  MAR *AR1+0 ;修改輔

70、助寄存器AR1</p><p>  loop1: STM #sin_x+89,AR7 ;sin91(deg.)- -sin179(deg.)</p><p>  STM #88,BRC ;重復(fù)執(zhí)行下條指令至loop2-1</p><p>  RPTB loop2-1 ;處90次</p>&

71、lt;p>  LD *AR7-,A ;((AR7)) →A,然后AR7減去1</p><p>  STL A,*AR6+ ;(A) 低16位→AR6</p><p>  loop2: STM #179,BRC ;sin180(deg.)- -sin359(deg.)</p><p>

72、 ?。?BRC)=179,重復(fù)執(zhí)行180次</p><p>  STM #sin_x,AR7 ;AR7指向sin_x首地址</p><p>  RPTB loop3-1 ;</p><p>  LD *AR7+,A ;((AR7)) →A,然后AR7加1</p><p>  N

73、EG A ;累加器變負(fù)</p><p>  STL A,*AR6+ ;A低16位→AR6</p><p>  loop3: STM #sin_x,AR6 ;generate sin wave AR6指向sin_x</p><p>  STM #1,AR0 ;

74、AR 01</p><p>  STM #360,BK ;BK360</p><p>  loop4: PORTW *AR6+0%,PA0 ;PA0=*AR6+0%,向PA0輸出數(shù)據(jù)</p><p>  B loop4 ;</p><p><b>  sinx

75、:</b></p><p>  .def d_xs,d_sinx ;定義標(biāo)號(hào)d_xs,d_sinx</p><p>  .data ;定義數(shù)據(jù)代碼段</p><p>  table_s .word 01c7h ;c1=1/(8*9)</p><p>  

76、.word 030bh ;c1=1/(6*7)</p><p>  .word 0666h ;c1=1/(4*5)</p><p>  .word 1556h ;c1=1/(2*3)</p><p>  d_coef_s .usect "coef_s",4 ;為

77、"coef_s"保留4個(gè)存儲(chǔ)空間</p><p>  d_xs .usect "sin_vars",1 ;為d_xs中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  d_squr_xs .usect "sin_vars",1 ;為d_squr_xs中sin_vars保留1個(gè)存儲(chǔ)空間<

78、;/p><p>  d_temp_s .usect "sin_vars",1 ;為d_temp_s中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  d_sinx .usect "sin_vars",1 ;為d_sinx中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  c_l_s

79、 .usect "sin_vars",1 ;為d_xs中sin_vars保留1個(gè)存儲(chǔ)空間</p><p>  .text ;定義代碼開始段</p><p>  SSBX FRCT ;設(shè)置FRCT=1以解決冗余符號(hào)位</p><p>  STM #d

80、_coef_s,AR5 ;AR5指向d_coef_s首地址</p><p>  RPT #3 ;重復(fù)下條指令4次</p><p>  MVPD #table_s,*AR5+ ;table_s中的數(shù)復(fù)制到AR5指向的單元</p><p>  STM #d_coef_s,AR3 ;AR3指向

81、d_coef_s首地址</p><p>  STM #d_xs,AR2 ;AR2指向d_xs首地址</p><p>  STM #c_l_s,AR4 ;AR4指向c_l_s首地址</p><p>  ST #7FFFh,c_l_s ;7FFFh →c_l_s</p><p&g

82、t;  SQUR *AR2+,A ;AR2指向累加器A中的數(shù)值求其平方</p><p>  ST A,*AR2 ;(A)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移16位→B</p><p>  MASR *AR2+,*AR3+,B,

83、A ;從累加器A中減去(AR2)*(AR3)</p><p>  MPYA A ;操作數(shù)與累加器A中高位相乘</p><p>  STH A,*AR2 ;(A)高16位→AR2</p><p>  MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)

84、</p><p>  MPYA *AR2+ ;AR2指向的數(shù)與累加器A的高16位相乘</p><p>  ST B,*AR2 ;(B)左移16位→AR2</p><p>  ||LD *AR4,B ;(AR4)左移16位→B</p><p>  MA

85、SR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)</p><p>  MPYA *AR2+ ;與累加器A中高16位相乘</p><p>  ST B,*AR2 ;(B)左移16位→AR2</p><p>  ||LD *AR4,B

86、;(AR4)左移16位→B MASR *AR2-,*AR3+,B,A ;從累加器A中減去(AR2)*(AR3)</p><p>  MPYA d_xs ;d_xs指向的操作數(shù)與累加器A中高16位相乘</p><p>  STH B,d_sinx ;(B)高16位→d_sinx</p>

87、<p>  RET ;返回</p><p><b>  cosx:</b></p><p>  .def d_xc,d_cosx ;定義標(biāo)號(hào)d_xc,d_cosx</p><p>  d_coef_c .usect "coef_c",4

88、 ;為coef_c保留4個(gè)存儲(chǔ)空間</p><p>  .data ;定義數(shù)據(jù)代碼段</p><p>  table_c .word 0249h ;c1=1/(7*8)</p><p>  .word 0444h ;c2=1/(6*5)</p&g

89、t;<p>  .word 0aabh ;c3=1/(3*4)</p><p>  .word 4000h ;c4=1/2</p><p>  d_xc .usect "cos_vars",1 ;為d_xc中cos_vars保存1個(gè)存儲(chǔ)單元</p><p

90、>  d_squr_xc .usect "cos_vars",1 ;為d_squr_xc中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  d_temp_c .usect "cos_vars",1 ;為d_temp_c中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  d_cosx .usect

91、"cos_vars",1 ;為d_cosx中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  c_l_c .usect "cos_vars",1 ;為c_l_c中cos_vars保存1個(gè)存儲(chǔ)單元</p><p>  .text ;定義文本代碼段</p><

92、;p>  SSBX FRCT ;FRCT=1以清除冗余符號(hào)位</p><p>  STM #d_coef_c,AR5 ;AR5指向d_coef_c首地址</p><p>  RPT #3 ;重復(fù)下條指令4次</p><p>  MVPD #table_c,*AR

93、5+ ;把table_c中的數(shù)復(fù)制到中AR5</p><p>  STM #d_coef_c,AR3 ;AR3指向d_coef_c首地址</p><p>  STM #d_xc,AR2 ;AR2 指向d_xc首地址</p><p>  STM #c_l_c,AR4 ;AR4指向c_l_c首地址

94、</p><p>  ST #7FFFh,c_l_c ;7FFFh→c_l_c</p><p>  SQUR *AR2+,A ;求X的平方存放在累加器A中</p><p>  ST A,*AR2 ;(A)左移16位→AR2</p><p>  ||LD

95、*AR4,B ;(AR4)左移16位→B</p><p>  MASR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2</p><p>  MPYA A ;A=T*A=x^2(1-x^2/56)</p><p>  STH A,*AR2 ;(

96、d_temp)= x^2(1-x^2/56)</p><p>  MASR *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56),</p><p>  T= x^2(1-x^2/56)</p><p>  MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))</p>

97、<p>  ST B,*AR2 ;(d_temp)= x^2(1-x^2/30(1-x^2/56))</p><p>  ||LD *AR4,B ;B=1</p><p>  MASR *AR2-,*AR3+,B,A ;A= 1-x^2/12(1-x^2/30(1-x^2/56))</p>

98、<p>  SFTA A,-1,A ;-1/2</p><p>  NEG A ;</p><p>  MPYA *AR2+ ;B=1-x^2/2(1-x^2/12(1-x^2/30</p><p> ?。?1-x^2/56)))</p>

99、<p>  MAR *AR2+ ;</p><p>  RETD ;</p><p>  ADD *AR4,16,B ;B=1-x^2/2(1-x^2/12(1-x^2/30</p><p> ?。?1-x^2/56)))</p><

100、p>  STH B,*AR2 ;cos(theta)</p><p>  RET ;</p><p>  .end ;</p><p>  2. *.cmd文件描述輸入文件和輸出文件,說明系統(tǒng)中有哪些可用存儲(chǔ)器、程序段、堆棧及復(fù)位向量和中斷

101、向量等安排在什么地方。其中MEMORY段就是用來規(guī)定目標(biāo)存儲(chǔ)器的模型,通過這條指令,可以定義系統(tǒng)中所包含的各種形式的存儲(chǔ)器,以及它們占據(jù)的地址范圍;SECTIONS段說明如何將輸入段組合成輸出段以及在可執(zhí)行文件中定義輸出段、規(guī)定輸出段在存儲(chǔ)器中的位置等。正弦波程序鏈接命令文件sin.cmd:</p><p><b>  MEMORY</b></p><p><b

102、>  {</b></p><p><b>  PAGE 0:</b></p><p>  EPROM: org = 0E000h, len = 1000h</p><p>  VECS: org = 0FF80h, len = 0080h</p><p>

103、;<b>  PAGE 1:</b></p><p>  SPRAM: org = 0060h, len = 0020h</p><p>  DARAM1: org = 0080h, len = 0010h</p><p>  DARAM2: org = 0090h, l

104、en = 0010h</p><p>  DARAM3: org = 0200h, len = 0200h</p><p><b>  }</b></p><p>  SECTIONS </p><p><b>  {</b></p><p>  .

105、text :>EPROM PAGE 0 </p><p> ??;文本代碼段其實(shí)地址為0E000h,長度為1000h</p><p>  .data :>EPROM PAGE 0 ;數(shù)據(jù)代碼段其實(shí)地址為0D000h</p><p>  STACK :>SPRAM PAGE 1 ;堆棧起始地址為0060h

106、,長度為0020h</p><p>  sin_vars :>DARAM1 PAGE 1 ;標(biāo)號(hào)為sin_vars段的起始地址為0080</p><p><b>  ;長度為0010h</b></p><p>  coef_s :>DARAM1 PAGE 1 ;標(biāo)號(hào)為coef_s段的起始地址為0070h</

107、p><p><b>  ;長度為0010h</b></p><p>  cos_vars :>DARAM2 PAGE 1 ;標(biāo)號(hào)為cos_vars段的起始地址為0090h</p><p><b>  ;長度為0010h</b></p><p>  coef_c :>DARAM2

108、 PAGE 1 ;標(biāo)號(hào)為coef_c段的起始地址為0080h</p><p><b> ??;長度為0020h</b></p><p>  sin_x : align(512) {} > DARAM3 PAGE 1</p><p>  .vectors :>VECS PAGE 0</p>&l

109、t;p><b>  }</b></p><p>  3. 復(fù)位向量文件sin_v.asm:</p><p>  .title "sin_v.asm"</p><p>  .ref _c_int00</p><p>  .sect ".vectors&

110、quot;</p><p>  B _c_int00</p><p><b>  .end</b></p><p>  第四章 設(shè)計(jì)仿真結(jié)果及分析</p><p>  在ccs集成環(huán)境中實(shí)現(xiàn)正弦波能夠起到防止干擾的作用,同時(shí)也大大地減小了波形的線性失真。同時(shí)我們也能從中看出ccs能夠精確地對(duì)各個(gè)角度進(jìn)

111、行計(jì)算得出相應(yīng)的正弦值,幅度和頻率易于調(diào)節(jié),波形也較為穩(wěn)定,抗干擾能力較強(qiáng)。</p><p>  最重要的是這種設(shè)計(jì)方案簡單可行,新穎實(shí)用,具有很高的實(shí)踐和推廣價(jià)值。</p><p><b>  分析:</b></p><p>  通過不斷的發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤和調(diào)試,最終得到了所希望的圖象,即正弦波信號(hào)。</p><p>

112、;  第五章 Matlab下產(chǎn)生該正弦信號(hào)</p><p><b>  5.1程序</b></p><p>  x=[1 0 0 1 0 1 1 0 1 1]; %二進(jìn)制數(shù)字序列</p><p>  grid=200;%每個(gè)碼元持續(xù)的時(shí)間</p><p>  t=0:1/grid:length(x);</p>

113、;<p>  w1=2*pi;w2=4*pi;A=1;</p><p>  c1t=A*cos(w1*t);c2t=A*cos(w2*t);</p><p>  plot(t,c2t,'r'),title('余弦載波波形')</p><p><b>  5.2實(shí)驗(yàn)圖形</b></p>

114、<p><b>  第六章 設(shè)計(jì)總結(jié)</b></p><p>  在本次課程設(shè)計(jì)過程中我遇到一些課堂中從未有過的問題,通過網(wǎng)絡(luò)查找和同學(xué)交流,大大促進(jìn)了實(shí)訓(xùn)進(jìn)程。并在過程中進(jìn)一步提高自身的創(chuàng)作、創(chuàng)新水平,扎實(shí)基礎(chǔ),擴(kuò)展所學(xué)。</p><p>  課設(shè)過程中經(jīng)常遇到問題,通過自己在網(wǎng)上查找資料和在老師的幫助下,一步一步地解決了問題,最終解決了問題得到了結(jié)果,使

115、我獨(dú)立解決問題的能力得到了很大的提高。并且此次課程設(shè)計(jì),基于課程理論知識(shí)和網(wǎng)上資料,使我對(duì)數(shù)字信號(hào)處理課程有了更深一步的了解和掌握,對(duì)利用CCS軟件編程的數(shù)字信號(hào)處理方法有了進(jìn)一步的了解。在理論課的基礎(chǔ)上進(jìn)行實(shí)驗(yàn)實(shí)習(xí),是對(duì)本門課程的深入學(xué)習(xí)和掌握,在以后的工作學(xué)習(xí)中,數(shù)字信號(hào)的處理都是采用計(jì)算機(jī)仿真的方很大的幫助。雖然《DSP原理及應(yīng)用》這門課程的課時(shí)很短,但是通過本次課程設(shè)計(jì)使我對(duì)這門課程有了更深的了解,同時(shí)也學(xué)會(huì)了C54x DSP芯

溫馨提示

  • 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)論