dsp-正弦波信號(hào)發(fā)生器課程設(shè)計(jì)._第1頁(yè)
dsp-正弦波信號(hào)發(fā)生器課程設(shè)計(jì)._第2頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、探探 2009 級(jí)學(xué)生 DSP 原理及應(yīng)用課程設(shè)計(jì)探探太原理工大學(xué)DSP 原理及應(yīng)用 課程設(shè)計(jì)報(bào)告書(shū) 課題名稱(chēng)正弦波信號(hào)發(fā)生器 姓名學(xué)號(hào)院、系、部專(zhuān)業(yè)正弦波信號(hào)發(fā)生器課程設(shè)計(jì)一、課程設(shè)計(jì)基礎(chǔ)數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng) DSP)是一門(mén)涉及許多學(xué)科而又廣泛 應(yīng)用于許多領(lǐng)域的新興學(xué)科。數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù) 字的形式對(duì)信號(hào)進(jìn)行分析、采集、合成、變換、濾波、估算、壓縮、識(shí)別等加工 處理,以便提取有用的信息并進(jìn)行有效的傳輸與應(yīng)用。數(shù)字信號(hào)處理是以眾多學(xué) 科為理論基礎(chǔ),它所涉及的范圍極其廣泛。如數(shù)學(xué)領(lǐng)域中的微積分、概率統(tǒng)計(jì)、隨 機(jī)過(guò)程、數(shù)字

2、分析等都是數(shù)字信號(hào)處理的基礎(chǔ)工具。它與網(wǎng)絡(luò)理論、信號(hào)與系 統(tǒng)、控制理論、通信理論、故障診斷等密切相關(guān)。一個(gè)典型的 DSP 系統(tǒng)應(yīng)包括抗混疊濾波器、數(shù)據(jù)采集A/D 轉(zhuǎn)換器、數(shù)字信號(hào)處理器 DSP、D/A 轉(zhuǎn)換器和低通濾波器等組成。披潘.5 頁(yè)町叢林號(hào)賀叭MAM濾渡*特?fù)Q黠 櫃浪籍DSP 信號(hào)處理過(guò)程:1將輸入信號(hào) x(t)進(jìn)行抗混疊濾波,濾掉高于折疊頻率的分量,以防止信號(hào)頻譜 的混疊;2經(jīng)采樣和 A/D 轉(zhuǎn)換器,將濾波后的信號(hào)轉(zhuǎn)換為數(shù)字信號(hào) x(n);數(shù)字信號(hào)處 理器對(duì)x(n)進(jìn)行處理,得數(shù)字信號(hào) y(n);經(jīng) D/A 轉(zhuǎn)換器,將 y(n)轉(zhuǎn)換成模擬信號(hào);經(jīng)低通濾波器,濾除高頻分量,得到平滑的模

3、擬信號(hào)y(t)。二、 課程設(shè)計(jì)目的1、 了解 DSP 對(duì)數(shù)據(jù)的處理能力2、 利用 DSP 實(shí)現(xiàn)正弦信號(hào)發(fā)生器三、 課程設(shè)計(jì)總體方案1. 總體方案設(shè)計(jì)1基于 DSP 的特點(diǎn),本設(shè)計(jì)采用 TMS320C54X 系列的 DSP 作為正弦信號(hào)發(fā)生器 的核心控制芯片。2用泰勒級(jí)數(shù)展開(kāi)法實(shí)現(xiàn)正弦波信號(hào)。3設(shè)置波形時(shí)域觀察窗口,得到其濾波前后波形變化圖;4設(shè)置頻域觀察窗口,得到其濾波前后頻譜變化圖。2. 正弦波信號(hào)發(fā)生器正弦波信號(hào)發(fā)生器已被廣泛地應(yīng)用于通信、儀器儀表和工業(yè)控制等領(lǐng)域的信號(hào)處理系統(tǒng)中。通常有兩種方法可以產(chǎn)生正弦波,分別為查表法和泰勒級(jí)數(shù)展開(kāi)法。查表法是通過(guò)查表的方式來(lái)實(shí)現(xiàn)正弦波,主要用于對(duì)精度

4、要求不很高的場(chǎng)合。泰勒級(jí)數(shù)展開(kāi)法是根據(jù)泰勒展開(kāi)式進(jìn)行計(jì)算來(lái)實(shí)現(xiàn)正弦信號(hào), 它能精確地計(jì)算出一一 個(gè)角度的正弦和余弦值,且只需要較小的存儲(chǔ)空間。本次主要用泰勒級(jí)數(shù)展開(kāi)法來(lái)實(shí)現(xiàn)正弦波信號(hào)。產(chǎn)生正弦波的算法正弦函數(shù)和余弦函數(shù)可以展開(kāi)成泰勒級(jí)數(shù),其表達(dá)式:sin(x)=x-x33!x2+x55!x4-x77!x6+x99!x8- cos(x)=1-2!+4!-6!+8!-取泰勒級(jí)數(shù)的前 5 項(xiàng),得近似計(jì)算式:sin(x)=x-x33!+xx255!-x77!+x2x99! =x(1-2 ? 3(1-4? 5(1-x26? 7(1-x28? 9)cos(x)=1- =1-xx22!2+x44!-xx26

5、6!+x88!x22(1-3? 4(1-5? 6(1-x27? 8)遞推公式:sin(nx) = 2cos(x)si n(n-1)x-si n(n-2)xcos( nx) = 2cos(x)si n(n-1)x-cos (n-2)x由遞推公式可以看出,在計(jì)算正弦和余弦值時(shí),需要已知 cos(x)、sin(n-1)x、sin(n- 2)x和 cos(n-2)x。四、 課程設(shè)計(jì)內(nèi)容1用泰勒級(jí)數(shù)展開(kāi)法計(jì)算 sin(x)的值;2.用泰勒級(jí)數(shù)展開(kāi)法計(jì)算 con(x)的值;3用泰勒級(jí)數(shù)展開(kāi)法產(chǎn)生正弦波。五、課程設(shè)計(jì)步驟1 用泰勒級(jí)數(shù)展開(kāi)法計(jì)算 sin(x)的值:1 在 CCS 中建立項(xiàng)目:sinx.pjt

6、,裝載程序并運(yùn)行;2. 在程序 sinx.asm 中,給出的 x 的值為 pi/4=6487 弧度。如果改變 x 在程序中的 值,便可以計(jì)算其他角度的正弦值。3. 執(zhí)行結(jié)果 sin(pi/4)=5A81H,存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器 d_sinx(2003H)單元中。用查看 寄存器的方法可以看到此結(jié)果。2 用泰勒級(jí)數(shù)展開(kāi)法計(jì)算 cos(x)的值:1. 在 CCS 中建立項(xiàng)目:cosx.pjt,裝載程序并運(yùn)行;2. 在程序 cosx.asm 中,給出的 x 的值為 pi/4=6487 弧度。如果改變 x 在程序中的 值,便可以計(jì)算其他角度的余弦值。3. 執(zhí)行結(jié)果 sin(pi/4)=5A82H,存儲(chǔ)在數(shù)據(jù)

7、存儲(chǔ)器 d_sinx(2003H)單元中。用查看 寄存器的方法可以看到此結(jié)果。3、用泰勒級(jí)數(shù)展開(kāi)法產(chǎn)生正弦波:1.在 CCS 中建立項(xiàng)目:sin.pjt,裝載程序;2.在程序的適當(dāng)處加上一個(gè)斷點(diǎn)。作用:這里定義了一個(gè)顯示緩沖區(qū)dis_buf,將要輸出到 D/A 的數(shù)據(jù)送到顯示緩沖區(qū)當(dāng)中去,以便在 CCS 圖形顯示的時(shí)候可 以從圖形顯示中得到數(shù)據(jù)。3.打開(kāi) CCS 的圖形顯示窗口, 修改如下參數(shù):Start Address=0 x1010 Page=DataAcquisition Buffer Size=1、Display Data Size=1000; DSP Data Type=16-bit

8、 sig ned integer 修改后的界面如下:Q Graph Property DialogA1 Display TypeSingle TimeA| Graph TitleGraphical DisplayStart AddrWEM0 x1010Pag?*Date.Acquisition. Buffer Size1Index liter em ent1Display Data Si ze1000DSF Data Type16-lit signed integerQ-value0Sampling Rate Q工IPlot Data FromLftft to RightLeftshi fte

9、d Bata D1i splayYesAutoscaleOnDC Valu*0Axes DisplayOnTim Display Unit7S| Cancel | Help4.點(diǎn)擊 CCS 的 Debug/Animate 運(yùn)行此程序,就可以在 CCS 的圖形觀察窗口看到 正弦波的顯示。注:Animate 運(yùn)行方式是在遇見(jiàn)斷點(diǎn)后繼續(xù)執(zhí)行的一種方式,在 顯示圖形是特別方便,顯示效果如下:參考程序:*用泰勒級(jí)數(shù)開(kāi)展開(kāi)式計(jì)算一個(gè)角度的正弦值* *si n(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9)*.mmregs.def startSTACK: .use

10、ctstart:STMLD #d_x,DP;x-d_x STACK,10 #STACK+10,SP ST #6487H,d_xCALL sin_startend: B endsin _start:.def sin _startd_coeff .usect coeff,4.datatable: .word 01C7H.word 030BH.word .word 0666H 1556H ;c1= 1/(8*9) ;c2=1/(6*7) ;c3=1/(4*5) ;c4=1/(2*3) d_x .usect sin _vars,1d_squr_x .usect s in _vars,1d_temp .

11、usect d_sinx .usect c_1 .usect .text SSBX STM RPT #3 MVPD #table,*AR5+.title sinx.asmSTM #d_coeff,AR3 STM #d_x,AR2 sin_vars,1 sin_vars,1 sin_vars,1 FRCT#d_coeff,AR5STM #c_1,AR4 ;A=xA2 ;(AR2)=xA2 ;B=1 ;A=1-xA2/72,T=xA2;A=T*A=xA2(1-xA2/72) ST#7FFFH,c_1 SQUR *AR2+,A ST A,*AR2 |LD *AR4,B MPYA A MASR*AR2

12、+,*AR3+,B,A STH A,*AR2 ;(d_temp)=xA2(1-xA2/72) MASR*AR2- ,*AR3+,B,A ;A=1-xA2/42(1-xA2/72),T=xA2(1-xA2/72) MPYA *AR2+ ST B,*AR2|LD *AR4,B ;B=xA2(1-xA2/42(1-xA2/72) ;(d_temp)=xA2(1-xA2/42(1-xA2/72) ;B=1MASR *AR2-,*AR3+,B,A 4=1幟八2/20(1幟八2/42(1幟八2/72) MPYA*AR2+ ;B=xA2(1- xA2/20(1-xA2/42(1-xA2/72) ST B,*

13、AR2 |LD*AR4,B ;(d_temp)=B ;B=1 MASR *AR2-,*AR3+,B,A 4=1幟八2/6(1幟八2/20(1幟八2/42(1幟八2/72) MPYA d_x ;B=x(1- %八2/6(1幟八2/20(1幟八2/42(1幟八2/72)STH B,d_sinx ;sin(theta) RET .end開(kāi)式計(jì)算一個(gè)角度的正弦值 * * cos(x)=1-x*x/2(1-x*x/3*4(1-x*x/5*6(x*x/7*8)*.title cosx.asm .mmregs.def startSTACK: .usect STACK,10start:STM #STACK+1

14、0,SPLD #d_x,DP ST #6487H,d_x ;x-d_xCALL cos_startend: B endcos_start:.def cos_startd_coeff .usect.datatable: .word.word .word coeff,4 0249H ;= 1/(7*8) ;c2=1/(5*6) ;c3=1/(3*4) 0444H 0AABH.word 4000H ;c4=1/(1*2)d_x .usect cos_vars,1d_squr_x .usect cos_vars,1d_temp .usect cos_vars,1d_cosx .usect cos_va

15、rs,1c_1 .usect cos_vars,1.textSSBX FRCTSTM RPT #3 MVPD #table,*AR5+ STM #d_coeff,AR3 STM #d_x,AR2 STM #c_1,AR4ST #7FFFH,c_1 SQUR *AR2+,A ST A,*AR2 ;A=xA2 ;(AR2)=xA2 ;A=1- xA2/56,T=xA2#d_coeff,AR5 |LD *AR4,B ;B=1 MASR *AR2+,*AR3+,B,A MPYAA ;A=T*A=xA2(1-xA2/56) STH A,*AR2 ;(d_temp)=xA2(1-xA2/56) MASR*

16、AR2- ,*AR3+,B,A ;A=1-xA2/30(1-xA2/56),T=xA2(1-xA2/56) MPYA *AR2+ STB,*AR2 ;B=xA2(1-xA2/30(1-xA2/56) ;(d_temp)=xA2(1-xA2/30(1-xA2/56) |LD*AR4,B ;B=1 MASR *AR2-,*AR3+,B,A 4=1 幟八 2(1 幟八 2/30(1 幟八 2/56) SFTA A,-1,A ;A 右移一位即 A 除以 2 NEG A 舊=幟八 2/2(1 幟八 2/12(1 幟八 2/30(1 幟八 2/56)MPYA *AR2+ MAR *AR2+ RETD AD

17、D *AR4,16,B STH B,*AR2 RET .end ;B=1-xA2/2(1- xA2/12(1-xA2/30(1-xA2/56) ;cos(theta)* *.mmregs .def start.usect s in _x,360 sin_x:STACK: .usect STACK,10H.bss dis_buff,1k_theta .set 286PA0 .set 0 x0002 .text#STACK+10H,SPk_theta,AR00,AR1#sin_x,AR6#90,BRCloop1-1 start:STM STM STM STMSTM RPTB LDM AR1,A L

18、D #d_xs,DP STL A,d_xs STL A,d_xc CALL sinxCALL cosx LD #d_si nx,DP LD d_si nx,16,A MPYA d_cosxSTH B,1,*AR6+MAR *AR1+0loopl: STM #sin_x+89,AR7STM RPTB #88,BRC loop2-1LD *AR7-,ASTL A,*AR6+Ioop2: STM #179,BRCSTM #sin_x,AR7RPTB Ioop3-1 LD *AR7+,ANEG ASTL A,*AR6+loop3: STM #sin_x,AR6STM STM #1,AR0 #360,B

19、Kloop4: PORTW *AR6+0%,PA0LD *AR6,AMVDK *AR6,dis_buff B loop4* *用泰勒級(jí)數(shù)開(kāi)式計(jì)算角度的正弦值 * *si n(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9)*.def d_xs,d_si nx .data .datatable_s.word .word .word .word 01C7H 030BH 0666H 1556H ;c1=1/(8*9) ;c2=1/(6*7) ;c3=1/(4*5) ;c4=1/(2*3) d_coef_s .usectd_xs .usect coef_s,4

20、 sin_vars,1 d_squr_xs .usect s in _vars,1 d_temp_s .usect sin _vars,1 d_sinx .usect.usect s in _vars,1 sin_vars,1 d_s.textSSBX STM FRCT #d_coef_s,AR5 RPT #3 MVPD #table_s,*AR5+ STM STM STMSQUR #d_coef_s,AR3 #d_xs,AR2 #d_s,AR4 *AR2+,A ;A=xA2 ST #7FFFH,d_l_s STA,*AR2 ;(AR2)=xA2 |LD *AR4,B ;B=1 MASR *A

21、R2+,*AR3+,B,A ;A=1- xA2/72,T=xA2MPYA A ;A=T*A=xA2(1-xA2/72) STH A,*AR2 ;(d_temp)=xA2(1-XA2/72) MASR *AR2-,*AR3+,B,A 4=1幟人2/42(1幟人2/72)丁=乂八2(1幟八2/72)MPYA *AR2+ ST B,*AR2 |LD *AR4,B舊=乂八2(1幟八2/42(1幟八2/72) ;(d_temp)=xA2(1- xA2/42(1-xA2/72) ;B=1 MASR *AR2-,*AR3+,B,A 4=1幟八2/20(1幟八2/42(1幟八2/72)MPYA *AR2+ ;

22、B=xA2(1-xA2/20(1-xA2/42(1-xA2/72) ST B,*AR2 |LDsinx:*AR4,B ;B=1 MASR *AR2-,*AR3+;A=1-xA2/42(1-xA2/72) MPYA d_xs ;B=x(1-xA2/6(1-xA2/20(1-xA2/42(1-xA2/72) STHB,d_sinx ;sin(theta)RET* *用泰勒級(jí)數(shù)開(kāi)展開(kāi)式算角度的余弦值 * *cos(x)=1-x*x/2(1-x*x/3*4(1-x*x/5*6(x*x/7*8) *.def d_xc,d_cosx d_coef_c .usect .data table_c:.word.

23、word .word .word coef_c,4 0249H 0444H4000H Q= 1/(7*8) ;c2=1/(5*6) ;c3=1/(3*4) ;c4=1/(1*2) 0AABH d_xc .usectcos_vars,1d_squr_xc .usect cos_vars,1 d_temp_c .usectd_cosxc_l_c.text SSBX cos_vars,1 cos_vars,1 cos_vars,1 .usect .usect FRCT STM#d_coef_c,AR5 RPT #3 MVPD #table_c,*AR5+ STM #d_coef_c,AR3 STM#d_xc,AR2 STM #c_l_c,AR4 ST #7FFFH,c_l_c SQUR *AR2+,A心八2 STA,*AR2 ;(AR2)=xA2 |LD *AR4,B ;B=1 MASR *AR2+,*AR3+,B,A ;A=1- xA2/56,T=xA2MPYA A STH A,*AR2 ;A=T*A=xA2(1-xA2/56) ;(d_temp)=xA2(1- XA2/56) MASR*AR2-,*AR3+,B,A 4=1幟人2/30(1幟人2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論