




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上摘要泰勒級數展開法作為一種數學方法,在科研和平時的數據處理方面應用的很廣泛。尤其是在通信、儀器儀表和工業控制等領域應用更為廣泛。在科技高速發展的今天,對函數的計算不僅要求有很高的精度,還對計算的時間又很高的要求,必須在很短的時間內完成數據的處理,否則根本不能完成大批量數據的實時性計算和處理。介于DSP芯片運算速度快的特點,用DSP芯片完成這些算法已越來越受到重視。產生正弦波,分別是查表法和泰勒級數展開法。查表法應用于精度要求不很高的場合,而泰勒級數展開法是一種比查表法更為有效的方法。它能精確的計算出一個角度的正弦和余弦值,且占用的儲存空間較小,體現了它的優越性。關鍵詞
2、: DSP 泰勒級數 正弦波專心-專注-專業目錄1、正余弦信號發生器的實現原理1.1、正弦波信號發生器泰勒級數展開法是根據泰勒展開式進行計算來實現正弦信號,它能精確地計算出一個角度的正弦和余弦值,且只需要較小的存儲空間。本次主要用泰勒級數展開法來實現正弦波信號。 正弦函數和余弦函數可以展開成泰勒級數,其表達式: 取泰勒級數的前5項,得近似計算式:遞推公式: sin(nx) = 2cos(x)sin(n-1)x-sin(n-2)x cos(nx) = 2cos(x)sin(n-1)x-cos(n-2)x 由遞推公式可以看出,在計算正弦和余弦值時,需要已知cos(x)、sin(n-1)x、sin(
3、n-2)x和cos(n-2)x。2、正弦波的實現2.1、計算一個角度的正弦值計算一個角度x的正弦值,可利用泰勒級數的展開式,采用子程序的調用方式來實現。在調用前先在數據存儲器d_xs單元中存放x的弧度值,計算結果存放在d_sinx單元中。程序中要用到一些存儲單元存放數據和變量,存儲單元的分配如下:d_xs:x; d_squr_xs: x2 d_temp_s:暫存; d_sinx:計算結果sinx c_1_s:7FFFh (數值1);d_coef_s :泰勒系數存儲單元分配圖:xd_xsd_squr_xsd_temp_sd_sinxc_1_sd_coef_stable_sc1=1/(8*9) x
4、2c2=1/(6*7)c3=1/(4*5)sinxc4=1/(2*3)(7FFFH)(c1=01c7H)(c2=030BH)(c3=0666H)(c4=1556H)數據存儲器 程序存儲器表1計算正弦值存儲單元分配程序清單sinx.asm: .title “sinx.asm” .mmregs .def start .ref sin_start,d_xs,d_sinx STACK: .usect “STACK”,10start: STM #STACK+10,SP LD #d_xs,DP ST #6487H,d_xs CALL sin_start end: B end sin_start: .def
5、 sin_start d_coef_s .usect “coef_s”,4 .data table_s: .word 01C7H ;c1=1/(8*9) .word 030BH ;c2=1/(6*7) .word 0666H ;c3=1/(4*5) .word 1556H ;c4=1/(2*3) d_xs .usect “sin_vars”,1 d_squr_xs .usect “sin_vars”,1 d_temp_s .usect “sin_vars”,1 d_sinx .usect “sin_vars”,1 c_1_s .usect “sin_vars”,1 .text SSBX FRC
6、T STM #d_coef_s,AR4 RPT #3 MVPD #table_s,*AR4+ STM #d_coef_s,AR2 STM #d_xs,AR3 STM #c_1_s,AR5 ST #7FFFH,c_1_s SQUR *AR3+,A ;求x的平方值 ST A,*AR3 ;x平方值存入(AR3) | LD *AR5,B;B=1 MASR *AR3+,*AR2+,B,A ;A=1-x2/72,T=x2 MPYA A;A=T*A STH A,*AR3 ;(d_temp_s)= x2(1-x2/72) MASR *AR3-,*AR2+,B,A ;A=1-x2/42(1-x2/72);T=x
7、2(1-x2/72) MPYA *AR3+ ;B= x2(1- x2/42(1- x2/72)) ST B,*AR3 ;(d_temp_s)= x2(1- x2/42(1- x2/72) | LD *AR5,B ;B=1 MASR *AR3-,*AR2,B,A ;A=1-x2/20(1-x2/42(1-x2/72) MPYA *AR3+ ;B=x2(1-x2/20(1-x2/42(1-x2/72) ST B,*AR3 ;(d_temp_s)= | LD *AR5,B ;B=1 MASR *AR3-,*AR2,B,A ;A=1-x2/6(1-x2/20(1-x2/42(1-x2/72) MPYA
8、 d_xs ;B=x(1-x2/6(1-x2/20(1-x2/42(1-x2/72) STH B,d_sinx ;sin(theta) RET .end2.2、計算一個角度的余弦值計算余弦值與計算正弦值相同。存儲單元分配圖:xd_xcd_squr_xcd_temp_cd_cosxc_1_cd_coef_ctable_sc1=1/(7*8) x2c2=1/(5*6)c3=1/(3*4)cosxc4=1/2(7FFFH)(c1=00249H)(c2=0444H)(c3=0AABH)(c4=4000H)數據存儲器 程序存儲器表2 計算余弦值存儲單元分配程序清單cosx.asm:.title “cos
9、x.asm”.mmregs.def _c_int00.ref cos_start,d_cosxSTACK: .usect “STACK”,10_c_int00: STM # STACK+10,sp LD #d_xc,DP ST #6487h,d_xc CALL cos_startend: B endcos_start: .def cos_startd_coeff .usect “coef_c”,4 .dataTable .word 0249h; c1=1/(7*8).Word 0444h; c2=1/(5*6).Word 0aahh; c3=1/(3*4).word 4000h; c4=1/2
10、d_x .usect “cos_vars”,1d_squr_x .usect “cos_vars”,1d_temp .usect “cos_vars”,1d_cosx .usect “cos_vars”,1c_1 .usect “cos_vars”,1 .text SSBX FRCT STM #d_coef_c,AR4 Rpt #3 MVPD #table_c,*AR4+ STM #d_coef_c,AR2 STM #d_xc,AR3 STM #c_1_c,AR5 ST #7FFFH,c_1_c SQUR *AR3+.A;求x的平方值 ST A,*AR3;x平方值存入(AR3) | LD *A
11、R5,B;B=1 MASR *AR3-,*AR2+,B,A;A=1-x2/56,T=x2 MPYA A;A=T*A STH A,*AR3;(d_temp_c)=x2(1-x2/56) MASR *AR-,*AR3+,B,A;A=1-x2/30(1-x2/56);T=x2(1-x2/56) MPYA *AR3+;B= x2(1- x2/30(1- x2/56)) ST B,*AR3 ;(d_temp_s)= x2(1- x2/30(1- x2/56) |LD *AR5,B;B=1 MASR *AR3-,*AR2,B,A;;A=1-x2/12(1-x2/30(1-x2/56) SFTA A,-1,
12、A;-1/2 NEG A MPYA *AR3+;B=-x2/2(1-x2/12(1-x2/30(1-x2/56) MAR *AR2+ RETD ADD *AR5,16,B;B=1-x2/2(1-x2/12(1-x2/30(1-x2/56) STH B,*AR3 RET .end3、 正弦波的實現利用計算一個角度的正弦值和余弦值程序公式可實現正弦波,步驟如下:第一步:利用sin_start 和cos_start子程序,計算0o45o(間隔為0.5o)的正弦和余弦值。第二步:利用sin(2x)=2sin(x)cos(x),計算0-90o的正弦值(間隔為1o).第三步:通過復制,獲得0-359o的正
13、弦值。第四步:將0-359o的正弦值重復從PA口輸出,便可得到正弦波。程序清單sin.asm:.title “sinx_asm”.mmregs.def start.ref d_xs,sinx,d_sinx,d_xc,cosx,d_coxsin_x:.usect“sin_x”,360STACK.usect“STACK”,10k_theta.286;theta=pi/360PA0.set0Start:.textSTM#STACK+10,SPSTM#0,AR0;AR0=x=0STMk_theta,AR1;設置增量STM#sin_x,AR7;AR7指向sin_xSTM#90,BRC;設置重復次數,計算
14、sin0-sin9RPTBloop-1LDMAR0,ALD#d_xs,DPSTLA,d_xsSTLA,d_xcCALLsin_startCALLcos_startLD#d_sinx,DPLDd_sinx,16,A;求得sinx加載累加器AMPYAd_cosx;計算sinx*cosx,結果存BSTHB,1,*AR7+;計算2*sinx*cosx,結果存AR7MAR*AR0+0Loop1:STM#sin_x+89,AR6;AR6指向sin_x+89STM #88,BRC;設置重復次數,計算sin91至sin197RPTBloop2-1LD*AR6-,ASTLA,*AR7+Loop: STM #17
15、9,BRC;設置重復次數,計算sin180至sin359STM#sin_x,AR6;AR6指向sin_xRPTBloop3-1LD*AR6+,ANEGASTLA,*AR7+Loop3_:STM#sin_x,AR7;AR7指向sin_xSTM #1,AR1STM#360,BK;設置緩沖區長度Loop4:PORTW*AR7+0%,PA0 ;輸出正弦值Bloop4;循環輸出,產生正弦波.end4、鏈接文件鏈接命令文件是將鏈接的信息放在一個文件中,這在多次使用同樣的鏈接信息時,可以方便地調用。在命令文件中可使用兩個十分有用的偽指令MEMORY和SECTIONS,用來指定實際應用中的存儲器結構和地址的映
16、射。在命令行中不能使用這兩個偽指令,命令文件為ASC文件,可包含一下內容:(1)輸入文件名,用來指定目標文件、存檔庫或其他命令文件。注意,當命令文件調用其他文件時,該調用語句必須是最后一句,連接器不能從被調用的命令文件中返回。(2)連接器選項,他們在命令文件中的使用方法于在命令行中相同。(3)MEMORY和SECTIONS鏈接偽指令,MEMORY用來指定目標存儲器結構,SECTIONS用來控制段的構成于地址分配程序中所用到的鏈接文件sinc.cmdvectors.objsinx.obj-o sin.out-msin.map-e startMEMORY PAGE 0: EPROM: org=0E
17、000h, len=1000h VECS: org=0FF80h, len=0080h PAGE 1: SPRAM: org=0060h, len=0020h DARAM1: org=0080h, len=0010h DARAM2: org=0090h, len=0010h DARAM3: org=0200h, len=0200hSECTIONS .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 STACK :>SPRAM PAGE 1 sin_vars :>DARAM1 PAGE 1 coef_s :>DARAM1 PAGE 1
18、 cos_vars :>DARAM2 PAGE 1 coef_c :>DARAM2 PAGE 1 sin_x : align(512) > DARAM3 PAGE 1 .vectors :>VECS PAGE 05、調試結果第一次疊代計算結果:A=004E4510A4 B=007FFF0000T=4EF3 AR2=0061AR3=1428 AR4=0094 SP=0089第二次疊代計算結果:A=007E B=004DCCCA72T=4EF3 AR2=0093AR3=0095 AR4=0094 SP=0089第三次疊代計算結果:A=007C1B0000 B=004C8C0F42T=4EF3 AR2=0094AR3=0095 AR4=0094 SP=0089 第四次疊代計算結果:A=00733D0000 B=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校派遣工管理制度
- 學校綠化員管理制度
- 學生星級化管理制度
- 學齡前培訓管理制度
- 安全注射室管理制度
- 安徽生育證管理制度
- 宏寶萊公司管理制度
- 實行項目庫管理制度
- 實驗室試樣管理制度
- 室內籃球場管理制度
- 學術出版中AIGC使用邊界指南2.0
- 《云南省開放口岸》課件
- 【湘藝版必修《音樂鑒賞》第四單元《中國民族民間音樂》單元教學設計】
- 三輪礦產資源規劃匯報
- DB22-T 2786-2017 玄武巖纖維瀝青混合料設計與施工技術規范
- 【MOOC】鐵路行車組織-北京交通大學 中國大學慕課MOOC答案
- 產品圖紙識別培訓
- 技術交底-軌道橋鋼軌安裝
- 2024年百科知識競賽題庫及答案(共三套)
- 2024年湖北省中考化學試題含答案
- 2024年四川省成都市錦江區小升初語文試卷
評論
0/150
提交評論