欧美另类日韩中文色综合,天堂va亚洲va欧美va国产,www.av在线播放,大香视频伊人精品75,奇米777888,欧美日本道免费二区三区,中文字幕亚洲综久久2021

基于dsp的正弦波信號發(fā)生器課程設(shè)計

時間:2023-05-01 07:26:37 資料 我要投稿
  • 相關(guān)推薦

基于dsp的正弦波信號發(fā)生器課程設(shè)計

目錄

第1章 緒論 ............................................. 1 1 DSP簡介 ............................................... 1 第2章 總體方案的分析和設(shè)計 ............................. 2 2.1 總體方案設(shè)計 ......................................... 2 2.2正弦波信號發(fā)生器 ...................................... 2 第3章 硬件設(shè)計 ......................................... 3 3.1硬件組成 ............................................. 3 3.2控制器部分 ........................................... 4 3.4人機接口部分 ......................................... 5 第4章 軟件設(shè)計 ......................................... 6 4.1流程圖 ............................................... 6 4.2 正弦信號發(fā)生器程序清單 .............................. 7 第5章 總結(jié) ............................................ 12 參考文獻 ............................................... 12

第1章 緒論

1 DSP簡介

數(shù)字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀60年代以來,隨著計算機和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應(yīng)運而生并得到迅速的發(fā)展。數(shù)字信號處理是一種通過使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來處理現(xiàn)實信號的方法,這些信號由數(shù)字序列表示。在過去的二十多年時間里,信號處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。

圖一是數(shù)字信號處理系統(tǒng)的簡化框圖。此系統(tǒng)先將模擬信號轉(zhuǎn)換為數(shù)字信號,經(jīng)數(shù)字信號處理后,再轉(zhuǎn)換成模擬信號輸出。其中抗混疊濾波器的作用是將輸入信號x(t)中高于折疊頻率的分量濾除,以防止信號頻譜的混疊。隨后,信號經(jīng)采樣和A/D轉(zhuǎn)換后,變成數(shù)字信號x(n)。數(shù)字信號處理器對x(n)進行處理,得到輸出數(shù)字信號y(n),經(jīng)D/A轉(zhuǎn)換器變成模擬信號。此信號經(jīng)低通濾波器,濾除不需要的高頻分量,最后輸出平滑的模擬信號y(t)。

圖1.1 數(shù)字信號處理系統(tǒng)簡化框圖

數(shù)字信號處理是以眾多學(xué)科為理論基礎(chǔ)的,它所涉及的范圍極其廣泛。例如,在數(shù)學(xué)領(lǐng)域,微積分、概率統(tǒng)計、隨機過程、數(shù)值分析等都是數(shù)字信號處理的基本工具,與網(wǎng)絡(luò)理論、信號與系統(tǒng)、控制論、通信理論、故障診斷等也密切相關(guān)。近來新興的一些學(xué)科,如人工智能、模式識別、神經(jīng)網(wǎng)絡(luò)等,都與數(shù)字信號處理密不可分?梢哉f,數(shù)字信號處理是把許多經(jīng)典的理論體系作為自己的理論基礎(chǔ),同時又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。

第2章 總體方案的分析和設(shè)計

2.1 總體方案設(shè)計

1.基于DSP的特點,本設(shè)計采用TMS320C54X系列的DSP作為正弦信號發(fā)生器的核心控制芯片。

2.用泰勒級數(shù)展開法實現(xiàn)正弦波信號。

3.設(shè)置波形時域觀察窗口,得到其濾波前后波形變化圖; 4.設(shè)置頻域觀察窗口,得到其濾波前后頻譜變化圖。

2.2正弦波信號發(fā)生器

正弦波信號發(fā)生器已被廣泛地應(yīng)用于通信、儀器儀表和工業(yè)控制等領(lǐng)域的信號處理系統(tǒng)中。

通常有兩種方法可以產(chǎn)生正弦波,分別為查表法和泰勒級數(shù)展開法。 查表法是通過查表的方式來實現(xiàn)正弦波,主要用于對精度要求不很高的場合。 泰勒級數(shù)展開法是根據(jù)泰勒展開式進行計算來實現(xiàn)正弦信號,它能精確地計算出一個角度的正弦和余弦值,且只需要較小的存儲空間。 本次主要用泰勒級數(shù)展開法來實現(xiàn)正弦波信號。

產(chǎn)生正弦波的算法正弦函數(shù)和余弦函數(shù)可以展開成泰勒級數(shù),其表達式:

x3x5x7x9

sin(x)?x??????

3!5!7!9!x2x4x6x8

cos(x)?1??????

2!4!6!8!

取泰勒級數(shù)的前5項,得近似計算式:

x3x5x7x9

sin(x)?x????

3!5!7!9!x2x2x2x2

?x(1?(1?(1?(1?))))

2?34?56?78?9

x2x4x6x8

cos(x)?1????

2!4!6!8!x2x2x2x2

?1?(1?(1?(1?)))

23?45?67?8sin(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(n-

2)x和cos(n-2)x。

第3章 硬件設(shè)計

3.1硬件組成

基于DSP的信號發(fā)生器的硬件結(jié)構(gòu)圖如圖3.1所示,它主要由DSP主控制器,輸出D/A通道和人機界面等幾個主要部分組成。

圖3.1 基于DSP的信號發(fā)生器系統(tǒng)框圖

3.2控制器部分

本系統(tǒng)采用TI公司的TMS320LF2407 DSP處理器,該器件具有外設(shè)集成度高,程序存儲器容量大,A/D轉(zhuǎn)換精度高,運算速度高,I/O口資源豐富等特點,芯片內(nèi)部集成有32KB的FLASH程序存儲器、2KB的數(shù)據(jù)/程序RAM,兩個事件管理器模塊(EVE和EVB)、16通道A/D轉(zhuǎn)換器、看門狗定時器模塊、16位的串行外設(shè)接口(SPI)模塊、40個可單獨編程或復(fù)用的通用輸入輸出引腳(GPIO)以及5個外部中斷和系統(tǒng)監(jiān)視模塊。

TMS320LF2407芯片中的事件管理模塊(EV)是一個非常重要的組成部分。SPWM波形的產(chǎn)生和輸出就是由這一部分完成的,它由兩個完全相同的模塊(EVA和EVB)組成,每個模塊都含有2個通用定時器、3個比較器、6至8個PWM發(fā)生器、3個捕獲單元和2個正交脈沖編碼電路(QEP)。由于TMS320LF2407有544字的雙口RAM(DARAM)和2K字的單口RAM(SARAM);而本系統(tǒng)的程序僅有幾KB,且所用RAM也不多,因此不用考慮存儲器的擴展問題,而對于TMS320LF2407的I/O擴展問題,由于TMS320LF2407器件有多達40個通用、雙向的數(shù)字I/O(GPIO)引腳,且其中大多數(shù)的基本功能和一般I/O復(fù)用的引腳,而實際上,本系統(tǒng)只需要17路I/O信號,這樣,就可以為系統(tǒng)剩余50%多的I/O資源,因此可以說,該方案既不算浪費系統(tǒng)資源,也為系統(tǒng)今后的升級留有余地。

3.3微輸出D/A通道部分

本系統(tǒng)的輸出通道部分主要負責實現(xiàn)波形的輸出,此通道的入口為TMS320LF2407的PWM8口,可輸出SPWM等幅脈沖波形,出口為系統(tǒng)的輸出端,這樣,經(jīng)過一系列的中間環(huán)節(jié),便可將PWM脈沖波轉(zhuǎn)化為交流正弦波形,從而實現(xiàn)正弦波的輸出,其原理框圖如圖3.2所示。

圖3.2 輸出通道的原理結(jié)構(gòu)

圖3.2中的緩沖電路的作用是對PWM口輸出的數(shù)字量進行緩沖,并將電壓拉高

到5V左右,以供后級模擬電路濾波使用。這一部分電路由兩個芯片組成。一片用三態(tài)緩沖器,由于PWM口的輸出為3.3V的TTL電平,這樣,在設(shè)計時就應(yīng)當選用輸入具有5V的TTL輸入,CMOS輸出電平的轉(zhuǎn)換芯片(如TI公司的74HCT04);另一片則可選用TOSHIBA公司出品的光電耦合器6N137;輸出端連接的5V精密穩(wěn)壓電源可選用BURR-BROWN公司生產(chǎn)的REF02型精密穩(wěn)壓電源,以輸出標準的5V電壓。

系統(tǒng)中的減法電路的主要作用是把0-10V直流脈動信號的轉(zhuǎn)換成-5~+5V的正弦交流信號,并使其電壓增益為1。設(shè)計使可利用差分式電路來實現(xiàn)其功能,為了簡化電路,可以選用較為常用的AD公司的AD524,并將AD524接成電壓跟隨器的形式,同時適當?shù)倪x取電阻以滿足要求,此外,為了使產(chǎn)生的正弦波信號具有2-5mA的驅(qū)動能力,可選用AD624來構(gòu)成末級的信號放大電路。AD624是高精度低噪聲儀用放大器,若外接一只增益電阻,即可得到1-1000之間的任意增益值,其誤差小于1%。由于AD624的建立時間只有15μs,所以它非常適宜在高速數(shù)據(jù)采集系統(tǒng)中使用。

3.4人機接口部分

3.4.1 驅(qū)動器設(shè)計

位驅(qū)動器電路由兩片集成電路組成,即由位驅(qū)動的CMOS芯片和將TTL電平轉(zhuǎn)換成CMOS電平的電平轉(zhuǎn)換芯片組成,電平轉(zhuǎn)換芯片可以和輸出通道的電平轉(zhuǎn)換芯片共用一片74HCT244(本部分使用4路,輸出通道使用3路),其主要作用是對DSP輸出的3.3V TTL電平與5V CMOS電平進行匹配,從而帶動具有CMOS電平的位驅(qū)動器,根據(jù)動態(tài)掃描顯示的要求,位驅(qū)動器需要選用每路輸出吸收電流都要大于200mA的芯片,因此,本設(shè)計選用了TI公司的74LS06來做LED的大電流驅(qū)動器件。

3.4.2 鍵盤設(shè)計

本系統(tǒng)選用四個獨立式按鍵,分別接入PF3-PF6口,并使用四個220Ω上拉電阻接VCC。所謂獨立式,就是將每一個獨立鍵按一對一地直接接到I/O輸入線上,而在讀鍵值時,直接讀I/O口,每一個鍵的狀態(tài)通過讀入鍵值的一位(二進制位)來反應(yīng),所以這種方式也稱為一維直讀方式,這種方式的查鍵軟件比較簡單,但占用I/O線較多,一般在鍵的數(shù)量較少時采用,不過,由于DSP芯片有足夠的I/O接口可供使用,因而可大大方便設(shè)計,設(shè)計時可以充分利用這一特點來連接硬件,至于按鍵的削抖動措施,則可在軟件中完成。

第4章 軟件設(shè)計

4.1流程圖

本系統(tǒng)軟件可以按照模塊化設(shè)計思想來編寫,包括主程序、常數(shù)計算程序、占空比計算程序和相應(yīng)的一些功能子程序,主程序用于調(diào)用各功能子程序、初始化變量、查詢鍵盤、判斷顯示數(shù)據(jù)是否需要刷新、同時判斷一個脈沖是否完成發(fā)送等工作,具體方案見圖4.1所示的流程圖。

圖4.1 主程序流程圖

在程序中,應(yīng)在第N-1個脈沖周期里計算占空比,并在第N個脈沖周期里輸出波形,這就要求在設(shè)計時要在一個脈沖周期內(nèi)完成計算,如果選用20MHz的晶振,那么,在一倍頻下,執(zhí)行一條執(zhí)行只需50ns,若輸出400Hz的正弦波,即每一個周期(即2.5ms)要輸出200個脈沖,這樣,也就是說,一個脈沖需要12.5μs(相當于12500/50=250條指令)。而執(zhí)行一個占空比的計算程序只需要幾十條指令,這種算法從軟件開銷上考慮是可以實現(xiàn)的。

4.2 正弦信號發(fā)生器程序清單

;This function generates the sine wave of angle using the Taylor expansion

;sin(theta)=x(1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9)))) ;cos(theta)=1-x^2/2*3(1-x^2/4*5(1-x^2/6*7(1-x^2/8*9))) ;sin(2*theta)=2*sin(theta)*cos(theta) .title "sin.asm" .mmregs

.def _c_int00

.ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx sin_x: .usect "sin_x",360 STACK: .usect "STACK",10 k_theta .set 286 PA0 .set 0 _c_int00

.text

STM #STACK+10,SP STM k_theta,AR0 STM 0,AR1 STM #sin_x,AR6 STM #90,BRC RPTB loop1-1 LDM AR1,A

series

LD #d_xs,DP STL A,@d_xs STL A,@d_xc CALL sinx CALL cosx LD #d_sinx,DP LD @d_sinx,16,A loop1:

loop2: loop3: loop4: sinx:

MPYA STH MAR STM STM RPTB LD STL STM STM RPTB LD NEG STL STM STM STM PORTW B .def .data

@d_cosx B,1,*AR6+ *AR1+0 #sin_x+89,AR7 #88,BRC loop2-1 *AR7-,A A,*AR6+ #179,BRC #sin_x,AR7 loop3-1 *AR7+,A A A,*AR6+ #sin_x,AR6 #1,AR0 #360,bk *AR6+0%,PA0 loop4 d_xs,d_sinx

table_s .word 01c7h .word 030bh .word 0666h .word 1556h d_coef_s .usect "coef_s",4 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_l_s .usect "sin_vars",1 .text

SSBX FRCT STM #d_coef_s,AR5 RPT #3

MVPD #table_s,*AR5+ STM #d_coef_s,AR3 STM #d_xs,AR2 STM #c_l_s,AR4 ST #7FFFh,c_l_s SQUR *AR2+,A ST A,*AR2 ||LD *AR4,B

MASR *AR2+,*AR3+,B,A MPYA A STH A,*AR2

MASR *AR2-,*AR3+,B,A MPYA *AR2+ ST B,*AR2 ||LD *AR4,B

MASR *AR2-,*AR3+,B,A MPYA *AR2+

ST B,*AR2

||LD *AR4,B

MASR *AR2-,*AR3+,B,A

MPYA d_xs

STH B,d_sinx

RET

cosx:

.def d_xc,d_cosx

d_coef_c .usect "coef_c",4

.data

table_c .word 0249h

.word 0444h

.word 0aabh

.word 4000h

d_xc .usect "cos_vars",1

d_squr_xc .usect "cos_vars",1

d_temp_c .usect "cos_vars",1

d_cosx .usect "cos_vars",1

c_l_c .usect "cos_vars",1

.text

SSBX 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

ST A,*AR2

||LD *AR4,B

MASR *AR2+,*AR3+,B,A

MPYA A

STH A,*AR2

MASR *AR2-,*AR3+,B,A

MPYA *AR2+

ST B,*AR2

||LD *AR4,B

MASR *AR2-,*AR3+,B,A

SFTA A,-1,A

NEG A

MPYA *AR2+

MAR *AR2+

RETD

ADD *AR4,16,B

STH B,*AR2

RET

.end

MEMORY

{

PAGE 0:

EPROM: org=0E000h, 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=0200h

}

SECTIONS

{

.text :>EPROM PAGE 0

.data :>EPROM PAGE 0

STACK :>SPRAM PAGE 1

sin_vars :>DARAM1 PAGE 1

coef_s :>DARAM1 PAGE 1

cos_vars :>DARAM2 PAGE 1

coef_c :>DARAM2 PAGE 1

sin_x : align(512){ } > DARAM3 PAGE 1

.vectors :>VECS PAGE 0

}

.title "sin_v.asm"

.ref _c_int00

.sect ".vectors"

B _c_int00

.end

第5章 總結(jié)

本次課程設(shè)計中遇到一些課堂中從未有過的問題,通過網(wǎng)絡(luò)查找和同學(xué)交流,大大促進了設(shè)計進程。并在過程中進一步提高自身的創(chuàng)作、創(chuàng)新水平,扎實基礎(chǔ),擴展所學(xué)。并且此次課程設(shè)計,基于課程理論知識和網(wǎng)上資料,使我對數(shù)字信號處理課程有了更深一步的了解和掌握,對利用CCS軟件編程的數(shù)字信號處理方法有了進一步的了解。在理論課的基礎(chǔ)上進行實驗實習,是對本門課程的深入學(xué)習和掌握,在以后的工作學(xué)習中,數(shù)字信號的處理都是采用計算機仿真的方法進行測試,因此,掌握基于計算機的數(shù)字信號處理方法對以后的工作和學(xué)習有很大的幫助。這樣一個課程設(shè)計對我們的發(fā)展有著極大的幫助!

參考文獻

[1] 戴明幀.數(shù)字信號處理的硬件實現(xiàn)[M].北京:航空工業(yè)出版社,1988

[2] 張偉雄,陳亮,徐光輝.DSP集成開發(fā)與應(yīng)用實例[M]。北京:電子工業(yè)出版社

[3] 劉湘濤、江世民.單片機原理與應(yīng)用[M].電子工業(yè)出版社, 2006.

[4] 戴明楨,周建江.TMS320C54XDSP結(jié)構(gòu),原理及應(yīng)運[M]北京航空航天出版社

[5] 趙紅怡.DSP技術(shù)與應(yīng)用實例.西安:電子工業(yè)出版社,2009

【基于dsp的正弦波信號發(fā)生器課程設(shè)計】相關(guān)文章:

基于DSP和FPGA的筆劃字符發(fā)生器設(shè)計04-26

基于DSP的CCD天文圖像處理系統(tǒng)04-29

基于DSP測量組合導(dǎo)航系統(tǒng)設(shè)計05-02

基于DSP的微型飛行器磁羅盤04-30

模擬電感與集成化混沌信號發(fā)生器實現(xiàn)研究04-29

基于DSP的GPS/DR組合定位系統(tǒng)的設(shè)計04-29

基于多DSP的干涉超光譜復(fù)原系統(tǒng)設(shè)計04-28

基于RTW電控旋翼控制律的DSP實現(xiàn)04-26

基于路面激勵的汽車振動信號處理04-26

基于HLA雷達信號建模仿真04-26