版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.PAGE DSP課程設(shè)計實 驗 報 告信號發(fā)生器的設(shè)計 目 錄一、設(shè)計任務(wù) 2二、實驗?zāi)康?2三、設(shè)計內(nèi)容2四、實驗原理2五、程序設(shè)計7 1、流程圖2、程序源代碼六、CCS5000程序調(diào)試11 1、新建工程、編譯過程、工程架構(gòu)2、程序運(yùn)行結(jié)果(數(shù)據(jù)顯示(用watch window觀察變量的變化)、圖形顯示)七、實驗總結(jié)16八、參考資料17設(shè)計任務(wù)書信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波的電路被稱為函數(shù)信號發(fā)生器。函數(shù)信號發(fā)生器在電路實驗和設(shè)備檢測中具有十分廣泛的
2、用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號或脈沖信號運(yùn)載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的振蕩器。信號發(fā)生器已廣泛應(yīng)用于科學(xué)實驗、通訊和控制等應(yīng)用領(lǐng)域中。使用 DSP 和 D/A 轉(zhuǎn)換器可以產(chǎn)生連續(xù)的正弦波信號,同樣也能產(chǎn)生方波、鋸齒波、三角波等其它各種信號波形。本設(shè)計要求采用DSP及其D/A轉(zhuǎn)換器產(chǎn)生上述各種信號波形。實驗?zāi)康模?)了解產(chǎn)生信號的兩種方法;2)熟悉使用C語言編寫程序; 3)熟悉C語言對CCS的訪
3、問和影響; 4)熟練使用軟件CCS5000對程序的完整調(diào)試過程。 設(shè)計內(nèi)容使用DSP產(chǎn)生3004000HZ的正弦信號,要求使用計算法,并且頻率可變、幅度可變、直流分量可變。用軟件CCS5000編程實現(xiàn),并硬件(DSK板或示波器)連接進(jìn)行功能演示。發(fā)揮部分:使用DSP產(chǎn)生3004000HZ的方波和三角波。設(shè)計方案、算法及原理說明(1)產(chǎn)生連續(xù)的波形的方法主要有以下兩種方法:1、查表法:把事先將需要輸出的數(shù)據(jù)計算好,存儲在DSP中,然后依次輸出就可以了。查表法的優(yōu)點是速度快,可以產(chǎn)生頻率較高的波形,而且不占用DSP的計算時間;查表法的缺點是在于需要占用DSP的內(nèi)部的存儲空間,尤其對采樣頻率比較大的
4、輸出波形,這樣,需要占用的內(nèi)部的空間將更大,而DSP內(nèi)部的存儲空間畢竟有所限制。這使得查表法的應(yīng)用場合十分有限。2、計算法:采用計算的方法依次計算數(shù)據(jù)而后輸出,然后再計算而后輸出。計算法的優(yōu)缺點正好和查表法相反。即:其優(yōu)點是不占用DSP的存儲空間,其缺點是占用DSP的計算時間,使得執(zhí)行程序的開銷變大。本實驗將用第二種方法即計算法產(chǎn)生一個正弦波信號,從DA輸出。由正弦信號的遞推公式: 其中,f為正弦信號的頻率,設(shè)。由上式可見,若要使遞推公式能夠進(jìn)行,則要求求出函數(shù)的前兩個值,這里是和。結(jié)果為: (2)調(diào)頻調(diào)幅 若要修改正弦信號的頻率,幅值和直流分量,直接修改程序中宏定義的f,amp和q的值即可。
5、程序設(shè)計(1)程序設(shè)計:要根據(jù)正弦信號的遞推公式,給出初始的兩個值,以使得程序自己帶入公式循環(huán)計算下去,即可得到正弦波形。但是,該法求少數(shù)點還可以,若產(chǎn)生連續(xù)正弦波,則積累誤差將會很大,該法就不可取了,所以還要對所求得點數(shù)有限制,不太多就可以了。程序的算法依據(jù)的是正弦函數(shù)遞推公式,先指定最先的兩個數(shù),之后通過設(shè)定正弦函數(shù)數(shù)組,根據(jù)公式得到每個點的值;為了方便畫圖,進(jìn)行了線性變換,將正弦函數(shù)的數(shù)組值傳給dacdata;為了在DSK板和示波器上觀測該圖形,又把dacdata的變換數(shù)據(jù)從IOSR管腳輸出;為了解決快速CPU和慢速外設(shè)的矛盾,編寫延時子程序,供主函數(shù)調(diào)用。i在定義范圍內(nèi)?i在定義范圍內(nèi)
6、?初始化常量、宏定義(IOSR、公式中的_sinx)變量定義:_sinx、dacdata、i調(diào)用延時子程序:解決CPU和外設(shè)矛盾初始化i和公式中的_sinx0根據(jù)公式中的前兩項用遞推公式計算 i在定義范圍內(nèi)?按照遞推公式逐點計算算出的值賦給dacdataDacdata的值賦給IOSR重新初始化i對_sinx線性變化并賦值給dacdata是否是否 圖1 正弦波程序設(shè)計流程圖正弦波發(fā)生程序如下:ioport unsigned port0bfff; /定義管腳變量port0bfff為無符號型#include /導(dǎo)入庫函數(shù)#include #include #include #include #inc
7、lude #define f 400 /定義函數(shù)的頻率#define q 0 /定義函數(shù)的直流分量#define amp 2 /定義函數(shù)的幅度值#define pi 3.14159265 /給pi賦值#define IOSR port0bfff /宏定義:管腳port0bfff用IOSR表示,用于輸出波形#pragma DATA_SECTION(_sinx,data_buf1) double _sinx200; /定義正弦函數(shù)數(shù)組為 型的,共200個點#pragma DATA_SECTION(dacdata,data_buf2) int dacdata200; /定義輸出即畫點函數(shù)dacdat
8、a為整型 void delay(int); /調(diào)用延時函數(shù),解決快速CPU和慢速外設(shè)的矛盾void main(void) /進(jìn)入主函數(shù),無返回值 unsigned int i=0; /無符號整型變量i,是正弦函數(shù)數(shù)組的動態(tài)下標(biāo)double a;int cnt=2;brd_init(100);while(cnt-)brd_led_toggle(BRD_LED0);/切換LED指示燈0的顯示狀態(tài)delay(1000);brd_led_toggle(BRD_LED1);/切換LED指示燈1的顯示狀態(tài)delay(1000);brd_led_toggle(BRD_LED2);/切換LED指示燈2的顯示狀
9、態(tài)delay(1000);a=2*pi*f/16000; _sinx0=0; dacdata0=0; _sinx1=amp*sin(a); dacdata1=_sinx1*4096+q*4096; i=1; while(1) if(i+198) break; _sinxi=2*cos(a)*_sinxi-1-_sinxi-2; dacdatai=_sinxi*4096+q*4096; i=0; while(1) if(i198) i=0; IOSR=dacdatai+; /*delay*/void delay(int period) int i,j; for(i=0; iperiod; i+)
10、 for(j=0;jperiod;j+); 方波發(fā)生程序如下:在正弦波的基礎(chǔ)上,加入比較ioport unsigned port0bfff; #include #include #include #include #include #include #define f 400#define q 0.5#define amp 2#define pi 3.14159265#define IOSR port0bfff #pragma DATA_SECTION(_sinx,data_buf1) double _sinx200; #pragma DATA_SECTION(dacdata,data_buf
11、2) int dacdata200; void delay(void); void main(void) unsigned int i=0;double a; int dac200;a=2*pi*f/16000; _sinx0=0; dac0=0; _sinx1=amp*sin(a); dac1=_sinx1*4096+q*4096; i=1; while(1) if(i+198) break; _sinxi=2*cos(a)*_sinxi-1-_sinxi-2; daci=_sinxi*4096+q*4096; i=0; while(1) if(i198) break;if(daci198)
12、 i=0; IOSR=dacdatai+; 三角波發(fā)生程序如下:ioport unsigned port0bfff; #include #include #include #include #include #include #define f 1000#define q 0#define amp 2#define pi 3.14159265#define IOSR port0bfff #pragma DATA_SECTION(_sinx,data_buf1) double _sinx200; #pragma DATA_SECTION(dacdata,data_buf2) int dacdat
13、a300; void delay(int);void main(void) unsigned int i=0;double a; int dac300;a=2*pi*f/16000; _sinx0=0; dac0=0; _sinx1=amp*sin(a); dac1=_sinx1*4096+q*4096; i=1; while(1) if(i+298) break; _sinxi=2*cos(a)*_sinxi-1-_sinxi-2; daci=_sinxi*4096+q*4096; i=0; while(1) if(i299) break;if(daci0) daci=amp*4096;el
14、se daci=0;i+; i=0; dacdata0=0; while(1) if(i299) break; dacdatai+1=dacdatai+(daci/32);i+; i=0; while(1) if(i299) i=0; IOSR=dacdatai+; /*delay*/void delay(int period) int i,j; for(i=0; iperiod; i+) for(j=0;jallocation:定義該段的運(yùn)行空間及地址*/*以.cinit為例,.cinit PRAM PAGE 0的作用:把.cinit輸出段分配到PAGE 0中的*/* PARAM,存儲信息為
15、:origin = 1000h, length = efdh。下同,類似代碼注釋從略*/.text : PARAM PAGE 0 .cinit: PARAM PAGE 0 .data: DARAM PAGE 1 .bss: DARAM PAGE 1 .const: DARAM PAGE 1 結(jié)果分析正弦波:圖2正弦波編譯圖3 圖形顯示參數(shù)界面及其修改 圖4 輸出正弦波波形方波 圖5 方波編譯 圖6 圖形顯示參數(shù)修改 圖7 方波輸出波形三角波 圖8 三角波編譯 圖9圖形顯示參數(shù)修改 圖10 三角波輸出波形將信號從DSK板的DA口輸出接到示波器上,就可以觀察程序運(yùn)行輸出的波形了。改變數(shù)據(jù)的大小:從
16、硬件上說,就是改變信號的幅值,可以將數(shù)據(jù)乘以或除以相應(yīng)的因子就可以了。也可以在數(shù)據(jù)上加上或減去一個數(shù)值,結(jié)果可以使得波形在水平軸上移位,從硬件上說,就是加上或減去直流分量。 改變信號產(chǎn)生的頻率:只需要在送數(shù)據(jù)到DA時加上相應(yīng)的延時就可以了。理論上說,頻率可以無限制的低,最低為0HZ;然而頻率的上限會有一定的限制,這些限制包括DA的轉(zhuǎn)換時間的限制以及DSP發(fā)送數(shù)據(jù)的限制,DA的限制是不能改變的,除非更換DA,DSP發(fā)送數(shù)據(jù)的限制可以通過改變程序,優(yōu)化程序代碼來提高發(fā)送的速度。最快的頻率是采用純匯編編寫程序,以提高信號發(fā)生的頻率。 設(shè)計與調(diào)試體會本次實驗基于數(shù)字信號處理,使用DSK板來設(shè)計信號發(fā)生
17、器。最重要的部分就是編寫程序,使程序能實現(xiàn)我們預(yù)期的實驗結(jié)果,本次實驗使用C語言進(jìn)行編程,由于之前我們選修過C語言全校性任選課,對C語言的編程環(huán)境有所了解,對本次實驗過程有很大的幫助,編程結(jié)束要在CCS上實現(xiàn)。程序設(shè)計的過程中,要根據(jù)正弦信號的遞推公式,給出初始的兩個值,以使得程序自己帶入公式循環(huán)計算下去,即可得到正弦波形。但是,該法求少數(shù)點還可以,若產(chǎn)生連續(xù)正弦波,則積累誤差將會很大,該法就不可取了,所以還要對所求得點數(shù)有限制,不太多就可以了。一開始熟悉CCS的時候我們就遇到了困難,比如導(dǎo)入不全,還有文件夾的命名必須的英文的,否則就會產(chǎn)生無法導(dǎo)入的問題。進(jìn)行編譯運(yùn)行肯定存在一定的錯誤,根據(jù)錯
18、誤的提示,我們對程序進(jìn)行改進(jìn),有語法的錯誤,也有邏輯的錯誤,最終錯誤減少到1了,可是這個錯誤總是存在,最終發(fā)現(xiàn)是擴(kuò)展名為.h的頭文件沒有找到,這就是老師在講課時多次提到的應(yīng)該注意的問題,回想老師說的解決方法,經(jīng)過多次的摸索與嘗試,修改了Include Search Path才得以編譯成功。圖11 修改路徑最后觀察波形,進(jìn)行結(jié)果分析,通過幾次對程序的改進(jìn)和調(diào)試,我們得出了比較理想的波形。再有比較深的體會就是注意老師在講理論課是所說的注意事項,和介紹設(shè)計的方法,老師的話會讓我們少走很多彎路。比如我們做的是信號波形發(fā)生,有兩種方法,一是查表法,二是計算法,在講課的時候老師詳細(xì)的介紹了查表法和有關(guān)的技巧和設(shè)計過程中的一些捷徑,但是由于我們沒有認(rèn)真的聽老師的介紹,所以在設(shè)計的過程中,我們使用了計算法,完全不知道應(yīng)該要什么樣的思路,怎樣設(shè)計才能用最簡單的程序?qū)崿F(xiàn),所以設(shè)計過程中花了很多不必要的時間,雖然兩種方法的優(yōu)缺點主要跟速度的快慢和占用DSP的內(nèi)部存儲空間有關(guān)系,因為我們做的只是實驗,這些實際的問題我們沒有考慮,但是才是做實驗的最終目的,在實際應(yīng)用中發(fā)揮設(shè)計的優(yōu)缺點,去適應(yīng)相應(yīng)的環(huán)境。實驗中,我們也可以看出DSP芯片的易實現(xiàn)性,信號處理理論
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆新疆昌吉市第九中學(xué)高三下學(xué)期4月考(數(shù)學(xué)試題)試卷
- 2024年北??瓦\(yùn)資格證題庫
- 2024年自貢貨運(yùn)從業(yè)資格證考試題
- 3#樓施工組織設(shè)計
- 2024年陜西駕考客運(yùn)資格證考試
- 2024年泰安資格證客運(yùn)題庫
- 2024年蕪湖客運(yùn)從業(yè)資格證理論考試答案
- 江蘇省徐州一中、如皋中學(xué)、宿遷中學(xué)2025屆生物高二上期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2025屆山西省呂梁育星中學(xué)數(shù)學(xué)高二上期末統(tǒng)考模擬試題含解析
- 黑龍江省大慶市讓胡路區(qū)鐵人中學(xué)2025屆高二數(shù)學(xué)第一學(xué)期期末聯(lián)考模擬試題含解析
- 臨時付款協(xié)議書
- 2024北京海淀區(qū)初三(上)期末英語試卷和答案
- 九小場所消防培訓(xùn)課件
- 2024年電氣機(jī)械及器材項目營銷策劃方案
- 湘教版五年級科學(xué)上冊第四單元《物質(zhì)變化》教學(xué)設(shè)計
- 基于課程思政高中函數(shù)教學(xué)設(shè)計
- 2024年太重集團(tuán)招聘筆試參考題庫含答案解析
- 讀書分享會冰心《小桔燈》
- 2023年新版心肺復(fù)蘇指南
- 沉降觀測匯總表及曲線圖
- 企業(yè)領(lǐng)導(dǎo)帶、值班管理制度全文
評論
0/150
提交評論