dsp計(jì)算任意cos角度設(shè)計(jì)論文_第1頁(yè)
已閱讀1頁(yè),還剩9頁(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>  目 錄</b></p><p>  一、設(shè)計(jì)任務(wù)及目的 ………………………………………………… 1</p><p>  1. 目的…………………………………………………………………..1</p><p>  2. 設(shè)計(jì)任務(wù)及要求………………………………………………………..1</p><p&g

2、t;  二、設(shè)計(jì)原理…………………………………………………………...1</p><p>  三、設(shè)計(jì)過(guò)程…………………………………………………………...3</p><p>  1. 硬件設(shè)計(jì)………………………………………………………………3</p><p>  2. 軟件設(shè)計(jì)………………………………………………………………3</p><p&g

3、t;  四、軟件編程…………………………………………………………...5</p><p>  1. 設(shè)計(jì)步驟………………………………………………………………5</p><p>  2. 程序清單………………………………………………………………5</p><p>  五、仿真結(jié)果及討論…………………………………………………..8</p><p>

4、;  六、結(jié)論………………………………………………………………..9</p><p>  七、參考文獻(xiàn)…………………………………………………………..9</p><p>  DSP計(jì)算任意COS角度</p><p>  摘 要:介紹了TMS320C5402實(shí)現(xiàn)正弦信號(hào)發(fā)生器的設(shè)計(jì)原理和實(shí)現(xiàn)方法。該信號(hào)發(fā)生器所產(chǎn)生的正弦波波形清晰、穩(wěn)定性好,調(diào)頻、調(diào)幅功能均由軟件

5、現(xiàn)。 關(guān)鍵詞:DSP;數(shù)模轉(zhuǎn)換;信號(hào)發(fā)生器</p><p>  一、 設(shè)計(jì)任務(wù)及目的:</p><p><b>  1.目的:</b></p><p> ?。?)學(xué)習(xí)一般算法在數(shù)字信號(hào)處理器上的實(shí)現(xiàn)</p><p> ?。?)加深對(duì)DSP的結(jié)構(gòu)原理的認(rèn)識(shí)和CCS5000平臺(tái)的掌握</p><p

6、> ?。?)通過(guò)動(dòng)手做軟件和硬件設(shè)計(jì),熟練掌握數(shù)字信號(hào)處理技術(shù),增加對(duì)基礎(chǔ)知識(shí)的消化和理解。</p><p>  2.設(shè)計(jì)任務(wù)及要求:</p><p> ?。?)完成余弦角度計(jì)算的編程</p><p>  (2)完成硬件設(shè)計(jì)與軟件設(shè)計(jì)</p><p> ?。?)畫(huà)出算法與流程圖</p><p>  (4)輸入不同

7、的角度值輸出結(jié)果</p><p> ?。?)完成課程設(shè)計(jì)報(bào)告</p><p><b>  二、設(shè)計(jì)原理:</b></p><p>  在通信、儀器和控制領(lǐng)域的信號(hào)處理系統(tǒng)中,經(jīng)常用到余弦信號(hào)發(fā)生器。通常有兩種方法可以產(chǎn)生余弦波。DSP常用三角函數(shù)(尤其是正余弦)在各種信號(hào)處理系統(tǒng)中有著廣泛的應(yīng)用,且一般有實(shí)時(shí)性要求,因此有必要考慮這些函數(shù)的快速

8、計(jì)算。常用三角函數(shù)的近似計(jì)算方法主要有迭代法、級(jí)數(shù)法、查表法以及CORDIC法。這些算法的提出和應(yīng)用有著悠久的歷史,但是近年來(lái)集成電路與計(jì)算機(jī)體系結(jié)構(gòu)的飛速發(fā)展,使得各種算法具有了與以往不同的特性與結(jié)論,需要依據(jù)體系結(jié)構(gòu)做適當(dāng)?shù)膬?yōu)化調(diào)整。</p><p><b>  圖1 硬件電路框圖</b></p><p>  圖2實(shí)際應(yīng)用系統(tǒng)框圖</p><p

9、>  圖3 加窗處理的軟件實(shí)現(xiàn)流程圖</p><p>  圖4 數(shù)據(jù)和系數(shù)的存儲(chǔ)器分配圖</p><p>  (1) 查表法。速度快,但在精度高的情況下要求的存儲(chǔ)器容量也要增大。此種方法應(yīng)用在對(duì)精度要求不高的場(chǎng)合。</p><p>  (2) 泰勒級(jí)數(shù)展開(kāi)法。這是一種比查表法更為有效的方法。與查表法相比,這種方法需要的存儲(chǔ)單元很少,而且精度高。 &#

10、160;  </p><p>  用泰勒級(jí)數(shù)展開(kāi)式計(jì)算一個(gè)角度的余弦值:</p><p>  cos(x)=1-x^2/2(1-x^2/(3*4)(1-x^2/(5*6)(1-x^2/(7*8)))</p><p>  余弦信號(hào)的遞推公式如下:</p><p>  cos(nx)=2cosxcos[(n-1)x]-cos[(n-2)

11、x]</p><p>  它分兩步產(chǎn)生余弦信號(hào)。第一步計(jì)算cos(nx)的值,第二步使用n控制乘法和減法運(yùn)算,產(chǎn)生信號(hào),延時(shí)的cos[(n-1)x]和cos[(n-2)x]必須預(yù)先計(jì)算好,并儲(chǔ)存在DSP存儲(chǔ)空間。本實(shí)例中首先輸入的值為Pi/4,并以此循環(huán)計(jì)算多個(gè)余弦值。</p><p><b>  三、設(shè)計(jì)過(guò)程:</b></p><p><

12、;b>  1.硬件設(shè)計(jì)</b></p><p>  這是一個(gè)以TMS320C5402為核心DSP系統(tǒng),硬件電路框圖如下:發(fā)生波形時(shí),DSP通過(guò)接口電路實(shí)現(xiàn)對(duì)波形參數(shù)的控制,產(chǎn)生高精度的正弦波,經(jīng)模數(shù)轉(zhuǎn)換后輸出。 </p><p> ?。?)1DSP </p><p>  DSP芯片采用的是TI公司性價(jià)比良好的TSM320C5402[1]。

13、它采用修正的增強(qiáng)型哈佛結(jié)構(gòu),程序和數(shù)據(jù)分開(kāi)存放,內(nèi)部具有8組高度并行總線,一組程序總線、3組數(shù)據(jù)總線和4組地址總線,從而保證完成并行指令操作。40位算術(shù)邏輯單元ALU以及17位×17位并行乘法器與40位專用加法器相連,可用于非流水線式單周期乘法/累加運(yùn)算。雙地址生成器,包括8個(gè)輔助寄存器和2個(gè)輔助寄存器算術(shù)運(yùn)算單元RARU,使得周期定點(diǎn)指令的執(zhí)行時(shí)間達(dá)到100MIPS。 片上集成有192K存儲(chǔ)空間:64K字程序空間、64

14、K數(shù)據(jù)空間、64K字I/O空間,它具有23條外部程序地址線,可尋址1M字的外部程序空間,因此增設(shè)了額外的存儲(chǔ)映射程序技術(shù)擴(kuò)展寄存器XPC,以及6條擴(kuò)展程序空間尋址指令,整個(gè)程序空間分成16頁(yè)。同時(shí)可尋址64K外部數(shù)據(jù)空間、64K外部I/O空間。RAM包括兩種類型,一是只可以一次尋址的SARAM,二是可以兩次尋址的DARAM。此外,還有數(shù)據(jù)存儲(chǔ)器0頁(yè)映射的25個(gè)特殊功能寄存器。 IEEE1149.1標(biāo)準(zhǔn)掃描邏輯電路(JTAG)用于

15、仿真和測(cè)試,它提供對(duì)所連設(shè)備邊界掃描。同時(shí),它也能用來(lái)測(cè)試引腳</p><p><b>  (2) D/A</b></p><p>  由于信號(hào)發(fā)生器的精度要求高,數(shù)模轉(zhuǎn)換部分采用了AD767。它是12位的并行數(shù)字接口苡片。該芯片在單片內(nèi)包括了輸入鎖存和高穩(wěn)定的電壓參考源。電壓參考源具有低噪聲、小溫度漂移、高穩(wěn)定度等優(yōu)點(diǎn),鎖存脈沖寬度位40ns;轉(zhuǎn)換器用12位精度高速

16、雙極性電流調(diào)整開(kāi)關(guān)和激光調(diào)整薄膜電阻網(wǎng)絡(luò)來(lái)提供高精度;整個(gè)工作溫度區(qū)域內(nèi)具有±1/2LSB最大線性誤差。</p><p><b>  2.軟件設(shè)計(jì)</b></p><p><b> ?。?) 基本算法</b></p><p>  產(chǎn)生余弦波的方法很多,這里采用的是泰勒級(jí)數(shù)法,與查表法和查表結(jié)合插值法相比,該法具有

17、節(jié)約存儲(chǔ)空間,精度高等優(yōu)點(diǎn),而且展開(kāi)的級(jí)數(shù)越多,失真度就越小。但因其運(yùn)算量較大,所以適用于對(duì)速度要濟(jì)南市不嚴(yán)格的場(chǎng)合。一個(gè)角度為θ的正弦和余弦函數(shù),都可以展開(kāi)成泰勒級(jí)數(shù),取其前五項(xiàng)進(jìn)行近似:</p><p>  式中:x為θ的弦度值,x=f×2π/fs(fs是采樣頻率,f是所要發(fā)生的信號(hào)頻率)。余弦波的波形可以看成是由無(wú)數(shù)個(gè)點(diǎn)組成,這些點(diǎn)與x軸的每個(gè)角度值相對(duì)應(yīng),利用DSP可大量重復(fù)計(jì)算的優(yōu)勢(shì)來(lái)計(jì)算

18、出x軸每一點(diǎn)對(duì)應(yīng)的y值,然后通過(guò)D/A轉(zhuǎn)換即可輸出連續(xù)的余弦模擬信號(hào)。調(diào)頻可以通過(guò)調(diào)節(jié)x值來(lái)進(jìn)行,調(diào)幅時(shí)可將輸出的離散波形值乘以相應(yīng)的縮放因子。</p><p><b> ?。?) 軟件流程圖</b></p><p>  整個(gè)系統(tǒng)軟件是由主程序和調(diào)頻、調(diào)幅的子程序組成。由于實(shí)驗(yàn)采用的是小數(shù)形式,所以得不到弧度大于1的正弦值。但由于正弦信號(hào)的特殊對(duì)稱形式,完全可以實(shí)

19、現(xiàn)正弦波的完整輸出。π/4的弧度為0.7854<1,即0~π/4之間的任意正弦、余弦值均可以得到,又可利用公式cos2α=2sinαcosα得到0~π/2之間的正弦值,而0~π/2的正弦曲線與π/2~π的正弦曲線關(guān)于x=π/2左右對(duì)稱,于是得到π/2~π的正弦值0~π的正弦曲線的相反數(shù)通過(guò)x=π又與π~2π的曲線左右對(duì)稱。這樣,一個(gè)周期內(nèi)完整正弦波就得到了。</p><p><b>  圖5主流

20、程圖</b></p><p>  圖6正弦余弦波程序流程圖</p><p><b>  四、軟件編程:</b></p><p><b>  1.設(shè)計(jì)步驟</b></p><p> ?。?) 按照實(shí)驗(yàn)的步驟建立相應(yīng)工程、原文件(ASM文件)、命令文件(CMD文件)</p>&

21、lt;p> ?。?) 在原文件中輸入兩個(gè)程序,注釋部分不用輸入,在命令文件中輸入命令</p><p>  文件的內(nèi)容,并把兩個(gè)文件加入到工程中</p><p> ?。?) 對(duì)工程進(jìn)行編譯,裝入輸出文件(OUT文件)</p><p> ?。?) 單步執(zhí)行,觀察寄存器和內(nèi)存的變化</p><p><b>  2. 程序清單:<

22、;/b></p><p>  程序原文件:     </p><p>  .title     "cosx.asm"</p><p><b>  .mmregs</b></p><p>  .de

23、f     Start,_c_int00</p><p>  .ref cos_start,d_x,d_cox</p><p>  STACK   .usect     "STACK",10</p><p>  .sect

24、 ".vectors"</p><p>  _c_int00 B start</p><p><b>  Start:</b></p><p>  STM     #STACK+10,SP</p><p>  LD  &#

25、160;   #d_x,DP</p><p>  ST #6487H,x       </p><p>  CALL cos_start</p><p>  end: B     

26、0; end</p><p>  cos_start:</p><p>  .def cos_start</p><p>  d_coeff .usect “coeff”,4</p><p><b>  .data</b></p><p>  table: .word 0249h

27、 ;c1=1/(7*8)</p><p>  .word 0444h ;c2=1/(5*6)</p><p>  .word 0aabh ;c3=1/(3*4)</p><p>  .word 4000h ;c4=1/2</p><p>  d_x .usect “cos_vars”,

28、1</p><p>  d_squr_x .usect “sin_vars”,1</p><p>  d_temp .usect “sin_vars”,1</p><p>  d_cosx .usect “sin_vars”,1</p><p>  c_1 .usect

29、 “sin_vars”,1</p><p><b>  .text</b></p><p>  SSBX    FRCT</p><p>  STM     #d_coeff,AR5      ;AR5指向系數(shù)表</p&

30、gt;<p>  RPT #3</p><p>  MVPD #table,*AR5+</p><p>  STM    #d_coeff,AR3          </p><p>  STM  

31、   #d_x,AR2</p><p>  STM     #c_1,AR4</p><p>  ST #7FFFh,c_1</p><p>  SQUR    *AR2+,A       

32、0; ;A=x^2</p><p>  ST      A,*AR2          ;(AR2)=x^2  </p><p>  ||LD    *AR4,B    &

33、#160;     ;B=7FFFH/10000H=0.999969482421875約等于1</p><p>  MASR   *AR2+,*AR3+,B,A ;A=1- x^2/56 ;T=x^2</p><p>  MPYA    A    

34、;           ;A=T*A=x^2(1-x^2/56)</p><p>  STH     A,*AR2          ;(d_temp)=x^2(1-x^2/56)<

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

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

37、#160;  *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><p>  SFTA A,-1,A ;-1/2</p><p><b>  NEG A</b></p&

38、gt;<p>  MPYA    *AR2+          ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p><p>  MAR *AR2+</p><p><b>  RETD</

39、b></p><p>  ADD *AR4,16,B ;B=(1-x^2/2(1-x^2/12)(1-x^2/30(1-x^2/56)))</p><p>  STH   B,*AR2 ;cos(theta)          ;</

40、p><p><b>  RET</b></p><p><b>  .end</b></p><p><b>  余弦波程序:</b></p><p><b>  .mmregs</b></p><p>  .def cos_ge

41、nerate,end_of_cose</p><p>  .def d_cos_delay1,d_cos_delay2,d_theta,d_cosx</p><p>  d_cos_delay1 .usect "cos_vars",1</p><p>  d_cos_delay2 .usect "cos_v

42、ars",1</p><p>  d_theta .usect "cos_vars",1</p><p>  d_cosx .usect "cos_vars",1 </p><p>  k_cos_delay_1 .set 06602h

43、 </p><p>  k_cos_delay_2 .set 064d8h </p><p>  k_cos_theta .set 07f83h </p><p>  k_2 .set 2h </p>

44、<p>  k_256 .set 256 </p><p>  COSDATA .usect "cos_data",256</p><p><b>  .text</b></p><p>  SSBX FRCT&l

45、t;/p><p>  ST COSDATA,AR5</p><p><b>  NOP</b></p><p>  STM #600H,SP</p><p>  LD #d_cos_delay1,DP</p><p><b>  NOP &l

46、t;/b></p><p>  STM #d_cos_delay1,AR3</p><p>  STM #d_theta,AR4</p><p>  RPTZ A, #3h</p><p>  STL A,*AR3+ </p><p&

47、gt;  STM #1,AR0</p><p>  STM #d_cosx,AR2</p><p>  STM #k_2,BK </p><p>  STM #k_256-1,BRC </p><p><b>  NOP </b></p><p&

48、gt;  STM #d_cos_delay1,AR3</p><p>  ST #k_cos_delay_1,*AR3+</p><p>  ST #k_cos_delay_2,*AR3</p><p>  STM #d_cos_delay1,AR3 </p><p>  S

49、T #k_cos_theta,d_cosx </p><p>  cos_generate:</p><p>  RPTB end_of_cose-1</p><p>  MPY *AR2,*AR3+0%,A </p><p>  SUB *AR3,15,A </p>

50、<p>  SFTA A,1,A</p><p>  STH A,*AR3 </p><p>  MVDD *AR3,*AR5+; MVDD *AR3,XSR0</p><p><b>  NOP</b></p><p>  e

51、nd_of_cose: B cos_generate ; 可以在此加入指令用于改變輸出信號(hào)</p><p>  cosend: .end</p><p>  程序所使用的配置文件如下。</p><p><b>  MEMORY</b></p><p><b>  {</b>&

52、lt;/p><p>  PAGE0: PARAM: org=0800h len=1780h</p><p>  PAGE1: DARAM: org=080h len=1780h</p><p><b>  }</b></p><p><b>  SECTIONS</b></p

53、><p><b>  {</b></p><p>  .text :> PARAM PAGE0</p><p>  .bss :> DARAM PAGE1</p><p>  .data :> DARAM PAGE1</p><p>

54、  .cos_vars :> DARAM PAGE1</p><p>  .coeff :> DARAM PAGE1</p><p>  .cos_data :> DARAM PAGE1</p><p><b>  }</b></p><p>  五、仿真結(jié)果及討論:<

55、;/p><p>  1.在程序cosx.asm中,給出x值為pi/3=8610H弧度,在執(zhí)行結(jié)果中cos(pi/3)=4FFFH(0.4999694約等于0.5)</p><p>  2.但由于沒(méi)有硬件設(shè)施的連接,所以無(wú)法看到變成實(shí)現(xiàn)的結(jié)果</p><p>  3.用DSP設(shè)計(jì)的正弦信號(hào)發(fā)生器電路簡(jiǎn)單,調(diào)節(jié)方便,誤差在萬(wàn)分之一以內(nèi),產(chǎn)生的波形失真度較小,而且還有進(jìn)一步拓

56、展功能,如產(chǎn)生三角波信號(hào)、方波信號(hào)、直流信號(hào)、調(diào)制信號(hào)等,從而使其能應(yīng)用到更加廣泛的領(lǐng)域中。</p><p>  4 .本實(shí)例產(chǎn)生一個(gè)余弦信號(hào),例子中在一個(gè)周期內(nèi)產(chǎn)生了180個(gè)數(shù)據(jù),也就是在0度到180度中每一度對(duì)應(yīng)一個(gè)數(shù)據(jù),如果進(jìn)一步提高信號(hào)的分辨率,可以改變程序,實(shí)現(xiàn)一個(gè)周期內(nèi)產(chǎn)生360個(gè)甚至更多的數(shù)據(jù)。匯編程序代碼提高了輸出信號(hào)的頻率。</p><p>  5.我們看到,在查找表采樣

57、點(diǎn)為16K的情況下,理論上的最大相對(duì)誤差為:2*2*2/16384=4.8828*10^(-4)我們運(yùn)算得到的最大相對(duì)誤差約為 5.2 * 10 ^ (-4),在精度不是要求十分高的情況下,已經(jīng)可以完全滿足我們的需要。 在經(jīng)過(guò)脈沖壓縮之后對(duì)比,經(jīng)過(guò)驗(yàn)證可以看出。兩者的結(jié)果的誤差已經(jīng)十分小,完全達(dá)到了可以忽略的地步。 </p><p><b>  圖7絕對(duì)誤差示意圖</b></

58、p><p><b>  六、結(jié)論:</b></p><p>  通過(guò)上面的分析,可以得出級(jí)數(shù)法不受存儲(chǔ)空間的限制,但是需要?dú)w一化后才能保證收斂,并且對(duì)不同的點(diǎn)收斂速度不均衡;迭代法最快,但是應(yīng)用范圍相對(duì)較窄;查表法雖然也可以快速實(shí)現(xiàn),但是受限于存儲(chǔ)設(shè)備的大小和速度??傊?,各種算法都有自己的優(yōu)缺點(diǎn),理想的方式是結(jié)合各種算法的優(yōu)點(diǎn)寫(xiě)出快速而節(jié)省空間的專用算法。具體采用哪種算法

59、或者哪種組合取決于精度與性能的權(quán)衡。</p><p>  結(jié)合各種算法的優(yōu)點(diǎn)在DSP實(shí)現(xiàn)的結(jié)果比一般的庫(kù)函數(shù)速度可以提高3-4倍,并且精度也滿足大多數(shù)應(yīng)用的需求。對(duì)于數(shù)據(jù)極有規(guī)律且對(duì)精度要求不高的應(yīng)用速度可以提高10倍以上,且不需要額外的空間。</p><p><b>  六、參考文獻(xiàn):</b></p><p>  [1]鄭紅,吳冠編著.TMS

60、320C54XDSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2002.</p><p> ?。?]陳杰美,古天祥編著.電子儀表[M].國(guó)防工業(yè)出版社,1986.</p><p> ?。?]汪安民編著.TMS320C54XXDSP實(shí)用技術(shù)[M].清華出版社.2002.</p><p> ?。?]TI. TMS320C54x DSP CPU and Peripher

溫馨提示

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