第一篇:DSP-任意信號(hào)發(fā)生器
任意信號(hào)發(fā)生器
實(shí)驗(yàn)報(bào)告
姓
名: 學(xué)院(系): 專(zhuān)
業(yè): 組
員: 指導(dǎo)老師:
學(xué) 號(hào):
電子工程與光電技術(shù)學(xué)院
通信工程
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉 DSP 硬件開(kāi)發(fā)平臺(tái); 2.熟悉 DSP 集成開(kāi)發(fā)環(huán)境(CCS); 3.掌握 TMS320F2812 的存儲(chǔ)器配置表; 4.學(xué)習(xí)TMS320F2812 的編程開(kāi)發(fā); 5.熟悉代碼調(diào)試的基本方法。
二、實(shí)驗(yàn)儀器
計(jì)算機(jī)、C2000 DSP 教學(xué)實(shí)驗(yàn)箱、XDS510 USB 仿真器、示波器
三、實(shí)驗(yàn)內(nèi)容
建立工程,編寫(xiě)DSP 的主程序,并對(duì)工程進(jìn)行編譯、鏈接,利用現(xiàn)有 DSP平臺(tái)實(shí)現(xiàn)任意波的產(chǎn)生,通過(guò)示波器觀(guān)察結(jié)果。對(duì)于實(shí)驗(yàn)所要求的內(nèi)容,完成情況如下:
(1)、獨(dú)立完成項(xiàng)目編譯、鏈接、調(diào)試的全過(guò)程;
(2)、利用數(shù)碼顯示管,在DSP初始化子模塊后添加語(yǔ)句或者編寫(xiě)子程序,使之能夠顯示實(shí)驗(yàn)日期2014.11.15。答:如圖所示:
(3)、記錄實(shí)驗(yàn)中個(gè)子程序包括主程序的入口實(shí)際地址,與 memory 比較,指出分別位于什么類(lèi)型的存儲(chǔ)器中。
答:入口地址為:0x00000000;位于片上M0.M1 SARAM。(4)、指出波形數(shù)據(jù)保存的空間地址,并以圖形方式顯示線(xiàn)性調(diào)頻信號(hào)的波形,并保存,附在實(shí)驗(yàn)報(bào)告中。答:空間地址為:0x01000000 線(xiàn)性調(diào)頻信號(hào)的波形如圖所示:
四、實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決方案
1、改變信號(hào)頻率的方式并編程實(shí)現(xiàn),在示波器上驗(yàn)證:
首先需要改變?cè)瓉?lái)的程序,初始程序?yàn)閏os余弦函數(shù),我們把它改成了sin正弦函數(shù);另外信號(hào)頻率需要不斷變化,因此在源程序基礎(chǔ)上增加了一個(gè)變量m.具體程序如下所示: 初始程序:
修改后程序:
改變信號(hào)頻率后,示波器上驗(yàn)證的圖形如下: A、m=2時(shí),T=5.3ms;
B、m=3時(shí),T=3.6ms;
C、m=4時(shí),T=2.65ms;
D、m=8時(shí),T=1.32ms;
2、在實(shí)驗(yàn)過(guò)程中,由于實(shí)驗(yàn)進(jìn)行的比較順利,因此我們還利用數(shù)碼顯示管顯示了其他內(nèi)容,例如下面圖形所示,寓意為“304C一生一世”(304C為宿舍號(hào)):
五、實(shí)驗(yàn)感想
在進(jìn)行本實(shí)驗(yàn)時(shí),由于我們之前對(duì)CCS這個(gè)集成開(kāi)發(fā)環(huán)境有了一定的熟悉,因此做起來(lái)少了生疏感。主要出現(xiàn)的問(wèn)題在于編程方面,在編寫(xiě)正余弦函數(shù)表達(dá)式上我們是通過(guò)了學(xué)習(xí)他人的方式完成的。
該實(shí)驗(yàn)讓我學(xué)會(huì)了利用DSP的運(yùn)算能力計(jì)算出波形的數(shù)值信息,在現(xiàn)有平臺(tái)上實(shí)現(xiàn)任意波形的生成,還讓我學(xué)會(huì)了通過(guò)改變程序來(lái)控制數(shù)碼顯示管的輸出。總之,通過(guò)實(shí)驗(yàn),我發(fā)現(xiàn)了許多以前不知道的DSP的用處,感謝實(shí)驗(yàn)帶給我新的知識(shí)和領(lǐng)悟。
第二篇:DSP音頻信號(hào)發(fā)生器
大學(xué)課程設(shè)計(jì)報(bào)告
音頻信號(hào)發(fā)生器
設(shè) 計(jì) 人: 專(zhuān)
業(yè): 班
級(jí): 學(xué)
號(hào): 指導(dǎo)教師:
二零一四年
付路 電子信息工程 電子111501 201115020104 寧愛(ài)平
目錄
一. 引言-------------第2頁(yè) 二.系統(tǒng)結(jié)構(gòu)及原理----第2頁(yè) 三. 硬件設(shè)計(jì)---------第3頁(yè)
3.1 MMC/SD卡接口電路-----------------------------第3頁(yè) 3.2 上位機(jī)和單片機(jī)通信---------------------------第4頁(yè) 3.3 信號(hào)調(diào)理電路--第5頁(yè) 四. 軟件設(shè)計(jì)---------第7頁(yè)
4.1 系統(tǒng)初始化---第7頁(yè) 4.2 MMC/SD卡初始化------------------------------第7頁(yè) 4.3 MMC/SD卡單塊寫(xiě)數(shù)據(jù)--------------------------第8頁(yè) 五. 結(jié)束語(yǔ)----------第11頁(yè)
一. 引言
目前,單片機(jī)系統(tǒng)以?xún)r(jià)格低廉、開(kāi)發(fā)環(huán)境完備、開(kāi)發(fā)工具齊全、應(yīng)用資料眾多、功能強(qiáng)大且程序易于移植等優(yōu)點(diǎn)而得到廣泛應(yīng)用。同時(shí),隨著信息化進(jìn)程、計(jì)算機(jī)科學(xué)與技術(shù)以及信號(hào)處理理論與方法的迅速發(fā)展,需要的數(shù)據(jù)量越來(lái)越大,對(duì)數(shù)據(jù)存儲(chǔ)也提出了更高要求。MMC/SD卡以其價(jià)格、體積、讀取速度等特點(diǎn)成為現(xiàn)今大多數(shù)便攜式嵌入式設(shè)備的首選。
二.系統(tǒng)結(jié)構(gòu)及原理
音頻信號(hào)發(fā)生器的系統(tǒng)結(jié)構(gòu)如圖1所示,它主要由8051F330單片機(jī)、MMC/SD卡存儲(chǔ)器、RS232串行通信接口、上位機(jī)、液晶顯示、鍵盤(pán)以及信號(hào)調(diào)理電路等部分組成。將寫(xiě)入MMC/SD卡中的音頻數(shù)據(jù)存儲(chǔ)在上位機(jī),單片機(jī)通過(guò)RS232串行通信接口寫(xiě)入MMC/SD卡,以中斷方式讀取鍵盤(pán)接口命令,并根據(jù)命令控制選擇相應(yīng)的音頻信號(hào)數(shù)據(jù),再由信號(hào)調(diào)理電路輸出不同頻率和強(qiáng)度的音頻信號(hào),系統(tǒng)通過(guò)液晶顯示模塊顯示信號(hào)頻率、信號(hào)強(qiáng)度及信號(hào)類(lèi)型。該系統(tǒng)突出的特點(diǎn)是上位機(jī)采用Lab Windows/CVI軟件,通過(guò)RS232串行通信接口與單片機(jī)通訊;以文本格式存儲(chǔ)在上位機(jī)的音頻信息則通過(guò)RS232串行通信接口下載到MMC/SD卡。系統(tǒng)控制核心選用美國(guó)Cygnal公司的8051F330單片機(jī),C8051F330微控制器采用獨(dú)特的CIP-8051架構(gòu),對(duì)指令運(yùn)行實(shí)行流水作業(yè),大大提高了指令的運(yùn)行速度;采用多功能存儲(chǔ)卡-MMC/SD卡作為存儲(chǔ)介質(zhì)。MMC/SD卡內(nèi)置控制電路,可應(yīng)用于手機(jī)、數(shù)碼相機(jī)、MP3等多種數(shù)字設(shè)備,反復(fù)記錄30萬(wàn)次,具有較高的性?xún)r(jià)比;液晶顯示屏采用OCM12864點(diǎn)陣液晶顯示模塊,由單片機(jī)時(shí)序控制,具有8位數(shù)據(jù)線(xiàn)、6條控制線(xiàn)和電源線(xiàn)。
三. 硬件設(shè)計(jì)
3.1 MMC/SD卡接口電路
MMC/SD卡在音頻信號(hào)發(fā)生器系統(tǒng)中是以數(shù)字量形式存儲(chǔ)音頻信息。MMC/SD卡有兩種工作模式,即MMC/SD模式和SPI模式。從實(shí)際應(yīng)用角度出發(fā),SPI模式設(shè)計(jì)簡(jiǎn)單,操作方便,但數(shù)據(jù)傳輸速率不如MMC/SD模式,本系統(tǒng)采用SPI模式。MMC/SD卡工作在SPI模式下,其各個(gè)引腳功能的定義,如表1所示。CS是MMC/SD卡的片選線(xiàn),在SPI模式下,CS必須保持低電平有效;DI不但傳輸數(shù)據(jù),還發(fā)送命令,傳輸方向是由單片機(jī)到MMC/SD卡;同樣DO除了發(fā)送數(shù)據(jù)外還傳送應(yīng)答信號(hào),傳輸方向是由MMC/SD卡到;SCLK是操作MMC/SD卡的時(shí)鐘線(xiàn)。將C8051F330的相應(yīng)交叉開(kāi)關(guān)配置為SPI模式,與MMC/SD卡對(duì)應(yīng)的引腳連接。針對(duì)SPI總線(xiàn)線(xiàn)路上增加了上拉電阻。MMC/SD卡與單片機(jī)接口電路。如圖2所示。
單片機(jī)
3.2 上位機(jī)和單片機(jī)通信
上位機(jī)采用Lab Windows/CVI軟件通過(guò)串口向單片機(jī)發(fā)送音頻信息。單片機(jī)將接收到的信息數(shù)據(jù)寫(xiě)入MMC/SD卡。Lab Windows/CVI軟件的音頻信息是由WinHex軟件將原始文件轉(zhuǎn)換成16進(jìn)制的數(shù)字量,該軟件可對(duì)多種語(yǔ)音信號(hào)進(jìn)行轉(zhuǎn)換。上位機(jī)與單片機(jī)的通信是通過(guò)RS232串口通訊器件完成的。當(dāng)上位機(jī)與音頻信號(hào)發(fā)生器相距較遠(yuǎn).不能直接用RS232器件將其連接時(shí),可將RS232轉(zhuǎn)換為CAN,通過(guò)CAN總線(xiàn)實(shí)現(xiàn)串口設(shè)備的網(wǎng)絡(luò)互聯(lián)。RS232標(biāo)準(zhǔn)電平采用負(fù)邏輯,規(guī)定+3 V~+15 V的任意電平為邏輯“0”電平,-3 V~-15 V的任意電平為邏輯“1”電平。而CAN信號(hào)則使用差分電壓傳輸,2條信號(hào)線(xiàn)稱(chēng)為“CAN_H”和“CAN_L”,靜態(tài)時(shí)均為2.5 V,此時(shí)狀態(tài)表示為邏輯“1”,也可稱(chēng)為“隱性”;CAN_H比CAN_L高時(shí)表示邏輯“0”,稱(chēng)為“顯性”。顯性時(shí),通常為:CAN_H=3.5 V,CAN_L=1.5 V。
RS232串口的幀格式:1位起始位,8位數(shù)據(jù)位,1位可編程的第9位(此位為發(fā)送和接收的地址/數(shù)據(jù)位),1位停止位。而CAN的數(shù)據(jù)幀格式:幀信息+ID+數(shù)據(jù)(分為標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種格式)。
3.3 信號(hào)調(diào)理電路
存儲(chǔ)在MMC/SD卡中的數(shù)據(jù)是音頻信號(hào)發(fā)生器的源代碼。單片機(jī)將這些數(shù)據(jù)從MMC/SD卡中讀出,經(jīng)過(guò)單片機(jī)內(nèi)部數(shù)模轉(zhuǎn)換,以模擬量的形式從P01輸出。該模擬信號(hào)經(jīng)信號(hào)調(diào)理電路可外接耳機(jī)或音響播放十幾種音律。信號(hào)調(diào)理電路如圖3所示。由P01輸出的信號(hào)經(jīng)LM324放大后,由多個(gè)LM324并聯(lián)實(shí)現(xiàn)信號(hào)跟隨和功率驅(qū)動(dòng)。圖中只畫(huà)出了2個(gè)跟隨器,實(shí)際應(yīng)用中根據(jù)需要可以并聯(lián)10多個(gè)信號(hào)跟隨器。
四. 軟件設(shè)計(jì)
4.1 系統(tǒng)初始化
系統(tǒng)初始化可完成C8051F330的I/O口、晶體振蕩器、SPI總線(xiàn)和C8051F330片上串口的初始化設(shè)置。用C語(yǔ)言編寫(xiě)的程序代碼如上:
4.2 MMC/SD卡初始化
MMC/SD卡上電后默認(rèn)為MMC/SD模式,要使MMC/SD卡工作在SPI模式下,在MMC/SD卡初始化時(shí),當(dāng)片選線(xiàn)(CS)被拉低時(shí)發(fā)送復(fù)位命令CMD0,如收到應(yīng)答信號(hào)01H,表示已將卡置為閑置狀態(tài);如收到應(yīng)答信號(hào)不是01H,則表示出錯(cuò)。然后向MMC/SD卡發(fā)送命令CMD1,收到正確的應(yīng)答信號(hào)00H之后,才會(huì)使MMC/SD卡進(jìn)入SPI模式。MMC/SD卡初始化流程如圖4所示。
MMC/SD卡協(xié)議是一種問(wèn)答式協(xié)議。首先單片機(jī)發(fā)送CMD。接著由MMC/SD卡發(fā)送回應(yīng)RES。MMC/SD卡的命令長(zhǎng)度都是6字節(jié),命令總是以左邊的起始位開(kāi)始,右邊的結(jié)束位結(jié)束。其具體的命令格式如表2所示,MMC/SD卡的應(yīng)答格式分為4種,分別是R1、R1b、R2和R3應(yīng)答。
4.3 MMC/SD卡單塊寫(xiě)數(shù)據(jù)
MMC/SD卡單塊寫(xiě)數(shù)據(jù)主要實(shí)現(xiàn)C8051F330對(duì)MMC/SD卡的單塊寫(xiě)操作。MMC/SD卡塊的默認(rèn)大小為512字節(jié)。當(dāng)MMC/SD卡接收到單塊寫(xiě)命令CMD24后,MMC/SD卡向單片機(jī)發(fā)送應(yīng)答命令,并且等著單片機(jī)發(fā)送數(shù)據(jù)塊。當(dāng)應(yīng)答命令R1為0時(shí),說(shuō)明可以發(fā)送512個(gè)字節(jié)數(shù)據(jù)。MMC/SD卡對(duì)接收到的數(shù)據(jù)塊都通過(guò)一個(gè)l字節(jié)長(zhǎng)的命令確認(rèn),當(dāng)其低5位二進(jìn)制數(shù)據(jù)為00101時(shí),數(shù)據(jù)塊才確認(rèn)數(shù)據(jù)塊寫(xiě)入MMC/SD卡。在數(shù)據(jù)塊發(fā)送中,共發(fā)送515個(gè)字節(jié)數(shù)據(jù),其中,第一個(gè)字節(jié)為0xFE,隨后是512字節(jié)的用戶(hù)數(shù)據(jù)塊,最后是2個(gè)字節(jié)的CRC。單塊數(shù)據(jù)寫(xiě)入MMC/SD卡的流程圖如圖5所示。
采用C語(yǔ)言編寫(xiě)的程序代碼如下:
#include “scancode.h” #define TIM *(int *)0x24 #define PRD *(int *)0x25 #define TCR #define IMR #define IFR #define PMST *(int *)0x26 *(int *)0x0 *(int *)0x1 *(int *)0x1d
#define SPSA0 *(unsigned int *)0x38 #define SPSD0 *(unsigned int *)0x39 #define SPSA1 *(unsigned int *)0x48 #define SPSD1 *(unsigned int *)0x49 #define nMusicNumber 40
#define REGISTERCLKMD(*(unsigned int *)0x58)#define WAITSTATUS(*(unsigned int *)0x28)
ioport unsigned char port8000;ioport unsigned char port8001;ioport unsigned char port8002;ioport unsigned char port8007;#define CTRGR port8000 #define CTRKEY port8001 #define CTRCLKEY port8002 #define CTRLR port8007
void Delay(unsigned int nTime);void interrupt time(void);// 音符數(shù)據(jù)
unsigned int music[nMusicNumber][2]= { {182,480},{151,480},{135,480},{121,480},{135,480},{151,480},{182,480},{0,480}, {182,480},{151,480},{135,480},{121,480},{135,480},{151,480},{182,480},{0,480}, {182,240},{151,240},{135,240},{121,240},{135,240},{151,240},{182,240},{0,240}, {182,240},{151,240},{135,240},{121,240},{135,240},{151,240},{182,240},{0,240}, {182,1920},{151,1920},{135,1920},{121,1920},{135,1920},{151,1920},{182,1920},{0,1920} };unsigned int uWork;main(){
unsigned int uWork1;int j,nCount,nCount1,nScanCode;nCount=nCount1=0;REGISTERCLKMD=0;CTRGR=0;CTRGR=0x80;
CTRGR=8;CTRLR=0;
// 關(guān)閉東西方向的交通燈
CTRLR=0x40;// 關(guān)閉南北方向的交通燈 uWork1=CTRCLKEY;
// 清除鍵盤(pán)緩沖區(qū)
for(j=0;j PMST = uWork1&0xff;IMR = 0x8;TCR = 0x412;TIM = 0;PRD = music[nCount][0];TCR = 0x422;IFR = 0x100;asm(“ rsbx j=0;while(j<1){ nCount1=0;nScanCode=CTRKEY;// 讀掃描碼 nScanCode&=0x0ff;// 低8位 uWork1=CTRCLKEY; // 清除鍵盤(pán)緩沖區(qū) INTM”); // 頻率設(shè)置 if(nScanCode!=0) { } nCount1++;Delay(music[nCount][1]/3*12);// 音長(zhǎng) nCount++;if(nCount>=nMusicNumber){ } if(music[nCount][0]==0)TCR=0x412; // 靜音 nCount=0;j++;if(nScanCode==SCANCODE_Enter) break;else { PRD = music[nCount][0];// 切換音符 TCR = 0x422;} } } void Delay(unsigned int nDelay){ } void interrupt time(void){ SPSA0=1; // set McBSP0's SPCR2 int i,j,k=0;for(i=0;i } uWork&=0xfffe;// set XRST=0 SPSD0=uWork;SPSA0=0x0e;// set McBSP0's PCR uWork=SPSD0;uWork|=0x2000;// set XIOEN=1, Enable IO,DX for output uWork^=0x20;SPSD0=uWork; // DX=^DX 五. 結(jié)束語(yǔ) 根據(jù)MMC/SD卡的SPI協(xié)議,采用單片機(jī)實(shí)現(xiàn)與MMC/SD卡的接口,解決了嵌入式系統(tǒng)大容量數(shù)據(jù)存儲(chǔ)問(wèn)題,利用上位機(jī)可以方便的讀取寫(xiě)入數(shù)據(jù)。本系統(tǒng)的存儲(chǔ)速度可達(dá)20 Mb/s,完全滿(mǎn)足信號(hào)發(fā)生器所需的下載速度和音頻播放速度。所編寫(xiě)的MMC/SD卡驅(qū)動(dòng)程序已經(jīng)應(yīng)用到嵌入式信號(hào)發(fā)生器系統(tǒng)中,實(shí)現(xiàn)了數(shù)據(jù)的安全、穩(wěn)定的存儲(chǔ)。相對(duì)于MMC/SD卡無(wú)論是讀寫(xiě)速度還是存儲(chǔ)容量都得到了極大提高。在SPI模式下,SD卡與MMC卡相兼容,即就是說(shuō)SD卡程序也適用于MMC卡。 函數(shù)信號(hào)發(fā)生器和任意波形發(fā)生器對(duì)比 1、函數(shù)信號(hào)發(fā)生器 函數(shù)發(fā)生器是使用最廣的通用信號(hào)源信號(hào)發(fā)生器,提供正弦波、鋸齒波、方波、脈沖波等波形,有的還同時(shí)具有調(diào)制和掃描功能。 函數(shù)波形發(fā)生器在設(shè)計(jì)上分為模擬式和數(shù)字合成式。眾所周知,數(shù)字合成式函數(shù)信號(hào)源(DDS)無(wú)論就頻率、幅度乃至信號(hào)的信噪比(S/N)均優(yōu)于模擬式,其鎖相環(huán)(PLL)的設(shè)計(jì)讓輸出信號(hào)不僅是頻率精準(zhǔn),而且相位抖動(dòng)(phaseJitter)及頻率漂移均能達(dá)到相當(dāng)穩(wěn)定的狀態(tài),但數(shù)字式信號(hào)源中,數(shù)字電路與模擬電路之間的干擾始終難以有效克服,也造成在小信號(hào)的輸出上不如模擬式的函數(shù)信號(hào)發(fā)生器,如今市場(chǎng)上的大部分函數(shù)信號(hào)發(fā)生器均為DDS信號(hào)源。 2、任意波形發(fā)生器 任意波形發(fā)生器,是一種特殊的信號(hào)源,不僅具有一般信號(hào)源波形生成能力,而且可以仿真實(shí)際電路測(cè)試中需要的任意波形。在我們實(shí)際的電路的運(yùn)行中,由于各種干擾和響應(yīng)的存在,實(shí)際電路往往存在各種缺陷信號(hào)和瞬變信號(hào),如果在設(shè)計(jì)之初沒(méi)有考慮這些情況,有的將會(huì)產(chǎn)生災(zāi)難性后果。任意波發(fā)生器可以幫您完成實(shí)驗(yàn),仿真實(shí)際電路,對(duì)您的設(shè)計(jì)進(jìn)行全面的測(cè)試。 由于任意波形發(fā)生往往依賴(lài)計(jì)算機(jī)通訊輸出波形數(shù)據(jù)。在計(jì)算機(jī)傳輸中,通過(guò)專(zhuān)用的波形編輯軟件生成波形,有利于擴(kuò)充儀器的能力,更進(jìn)一步仿真實(shí)驗(yàn)。另外,內(nèi)置一定數(shù)量的非易失性存儲(chǔ)器,隨機(jī)存取編輯波形,有利于參考對(duì)比,或通過(guò)隨機(jī)接口通訊傳輸?shù)接?jì)算機(jī)作更進(jìn)一步分析與處理。有些任意波形發(fā)生器有波形下載功能,在作一些麻煩費(fèi)用高或風(fēng)險(xiǎn)性大的實(shí)驗(yàn)時(shí),通過(guò)數(shù)字示波器等儀器把波形實(shí)時(shí)記錄下來(lái),然后通過(guò)計(jì)算機(jī)接口傳輸?shù)叫盘?hào)源,直接下載到設(shè)計(jì)電路,更進(jìn)一步實(shí)驗(yàn)驗(yàn)證。 泰克推出的AFG3000系列三合一信號(hào)源,可以完成以上提到的功能,并且在波形輸出的精度、穩(wěn)定性等方面都有較大提高,是走在行業(yè)前列的新一代任意波發(fā)生器。 信號(hào)源的主要技術(shù)指標(biāo) 傳統(tǒng)函數(shù)發(fā)生器的主要指標(biāo)和新近研發(fā)的任意波形發(fā)生器的主要指標(biāo)有一些不同,我們這里分開(kāi)介紹。 (一)普通函數(shù)發(fā)生器的主要指標(biāo): 帶寬(輸出頻率范圍) 儀器的帶寬是指模擬帶寬,與采樣速率等無(wú)關(guān),信號(hào)源的帶寬是指信號(hào)的輸出頻率的范圍,并且一般來(lái)講信號(hào)源輸出的正弦波和方波的頻率范圍不一致,例如,某函數(shù)發(fā)生器產(chǎn)生正弦波的頻率范圍是1mHz~240MHz,而輸出方波的頻率范圍是1mHz~120MHz。 頻率(定時(shí))分辨率 頻率分辨率,即最小可調(diào)頻率分辨率,也就是創(chuàng)建波形時(shí)可以使用的最小時(shí)間增量。 頻率準(zhǔn)確度 信號(hào)源顯示的頻率值與真值之間的偏差,通常用相對(duì)誤差表示,低檔信號(hào)源的頻率準(zhǔn)確度只有1%,而采用內(nèi)部高穩(wěn)定晶體振蕩器的頻率準(zhǔn)確度可以達(dá)到108~1010。例如,某信號(hào)源的頻率準(zhǔn)確度為1ppm。 頻率穩(wěn)定度 頻率穩(wěn)定度是指外界環(huán)境不變的情況下,在規(guī)定時(shí)間內(nèi),信號(hào)發(fā)生器輸出頻率相對(duì)于設(shè)置讀數(shù)的偏差值的大小。頻率穩(wěn)定度一般分為長(zhǎng)期頻率穩(wěn)定度(長(zhǎng)穩(wěn))和短期頻率穩(wěn)定度(短穩(wěn))。其中,短期頻率穩(wěn)定度是指經(jīng)過(guò)預(yù)熱后,15分鐘內(nèi),信號(hào)頻率所發(fā)生的最大變化;長(zhǎng)期頻率穩(wěn)定度是指信號(hào)源經(jīng)過(guò)預(yù)熱時(shí)間后,信號(hào)頻率在任意三小時(shí)內(nèi)所發(fā)生的最大變化。 輸出阻抗 信號(hào)源的輸出阻抗是指從輸出端看去,信號(hào)源的等效阻抗。例如,低頻信號(hào)發(fā)生器的輸出阻抗通常為600Ω,高頻信號(hào)發(fā)生器通常只有50Ω,電視信號(hào)發(fā)生器通常為75Ω。 輸出電平范圍 輸出幅度一般由電壓或者分貝表示,指輸出信號(hào)幅度的有效范圍。另外,信號(hào)發(fā)生器的輸出幅度讀數(shù)定義為輸出阻抗匹配的條件下,所以必須注意輸出阻抗匹配的問(wèn)題。 (二)任意波發(fā)生器的主要指標(biāo): 取樣(或采樣)速率 取樣速率通常用每秒兆樣點(diǎn)或者千兆樣點(diǎn)表示,表明了儀器可以運(yùn)行的最大時(shí)鐘或取樣速率。取樣速率影響著主要輸出信號(hào)的頻率和保真度。奈奎斯特取樣定理規(guī)定,取樣頻率或時(shí)鐘速率必須至少是生成的信號(hào)中最高頻譜成分的兩倍,以保證精確的復(fù)現(xiàn)。 存儲(chǔ)深度(記錄長(zhǎng)度) 存儲(chǔ)深度是指用來(lái)記錄波形的數(shù)據(jù)點(diǎn)數(shù),它決定著波形數(shù)據(jù)的最大樣點(diǎn)數(shù)量(相當(dāng)于時(shí)間)。每個(gè)波形樣點(diǎn)占用一個(gè)存儲(chǔ)器位置,每個(gè)位置等于當(dāng)前時(shí)鐘頻率下取樣間隔時(shí)間。任意波形發(fā)生器的帶寬是由任意波發(fā)生器的取樣速率和存儲(chǔ)深度決定的。 垂直(幅度)分辨率 信號(hào)源的垂直分辨率是指信號(hào)源中可以編程的最小電壓增量,也就是儀器數(shù)模轉(zhuǎn)換器的二進(jìn)制字寬度,單位為位,它規(guī)定了波形的幅度精度。在混和信號(hào)源中,垂直分辨率與儀器DAC的二進(jìn)制字長(zhǎng)度有關(guān),位越多,分辨率就越高。 信號(hào)源的主要功能 一臺(tái)功能較強(qiáng)的信號(hào)源,還有信號(hào)調(diào)制、頻率掃描、TTL同步輸出、參考時(shí)鐘輸出、Burst及頻率計(jì)等功能: 信號(hào)調(diào)制功能:信號(hào)調(diào)制是指被調(diào)制信號(hào)中,幅度、相位或頻率變化把低頻信息嵌入到高頻的載波信號(hào)中,得到的信號(hào)可以傳送從語(yǔ)音、到數(shù)據(jù)、到視頻的任何信號(hào)。信號(hào)調(diào)制可分為模擬調(diào)制和數(shù)字調(diào)制兩種,其中模擬調(diào)制,如幅度調(diào)制(AM)和頻率調(diào)制(FM)最常用于廣播通信中,而數(shù)字調(diào)制基于兩種狀態(tài),允許信號(hào)表示二進(jìn)制數(shù)據(jù)。 頻率掃描功能:測(cè)量電子設(shè)備的頻率特點(diǎn)要求“掃描”正弦波,其會(huì)在一段時(shí)間內(nèi)改變頻率。一般分成線(xiàn)性(Lin)掃頻及對(duì)數(shù)(Log)掃頻;高級(jí)信號(hào)發(fā)生器支持掃頻功能,而且可以選擇開(kāi)始頻率、保持頻率、停止頻率和相關(guān)時(shí)間,有些信號(hào)發(fā)生器還提供與掃頻同步的觸發(fā)信號(hào)。 TTL同步輸出功能:一般信號(hào)源輸出的TTL同步信號(hào)是方波經(jīng)三極管電路轉(zhuǎn)成的,電平為0(Low)、3.6~5V(High)。主要用來(lái)同步其他信號(hào)源,或其他類(lèi)型的儀器,以保證觸發(fā)同步。 參考時(shí)鐘輸出功能:TTL同步輸出只能保證觸發(fā)同步,要想使信號(hào)源完全同步就要讓時(shí)鐘同步,參考時(shí)鐘輸出就是為了讓兩臺(tái)信號(hào)源的時(shí)鐘同步而設(shè)計(jì)的,一般參考時(shí)鐘輸出頻率較穩(wěn)定的方波信號(hào)。 Burst功能:類(lèi)似OneShot功能,輸入一個(gè)TTL信號(hào),則可讓信號(hào)源產(chǎn)生一個(gè)周期的信號(hào)輸出,設(shè)計(jì)方式是在沒(méi)有信號(hào)輸入時(shí),輸出接地即可。 頻率計(jì):除市場(chǎng)上簡(jiǎn)易的刻度盤(pán)顯示之外,無(wú)論是LED數(shù)碼管或LCD液晶顯示頻率,其與頻率計(jì)電路是重疊的。 來(lái)源:http://004km.cn/shownews.asp?id=468 模擬課程設(shè)計(jì)題 信號(hào)發(fā)生器設(shè)計(jì) 設(shè)計(jì)一個(gè)能夠輸出正弦波、三角波和矩形波的信號(hào)源電路,電路形式自行選擇。輸出信號(hào)的頻率可通過(guò)開(kāi)關(guān)進(jìn)行設(shè)定,具體要求如下: (1)輸出信號(hào)的頻率范圍為100~800Hz,步進(jìn)為100Hz。(60分) (2)要求輸出信號(hào)無(wú)明顯失真,特別是正弦波信號(hào)。(30分) 評(píng)分標(biāo)準(zhǔn): (1)范圍滿(mǎn)足設(shè)計(jì)要求得滿(mǎn)分,否則酌情扣分。 (2)輸出信號(hào)無(wú)明顯失真可滿(mǎn)分,有明顯失真酌情扣分。 發(fā)揮部分(附加10分): 進(jìn)一步擴(kuò)大輸出信號(hào)范圍和減小步進(jìn)頻率。 基于DSP的正弦信號(hào)發(fā)生器的設(shè)計(jì) 1、緒論 1.1 課題背景 數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來(lái),隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。數(shù)字信號(hào)處理是一種通過(guò)使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來(lái)處理現(xiàn)實(shí)信號(hào)的方法,這些信號(hào)由數(shù)字序列表示。在過(guò)去的二十多年時(shí)間里,信號(hào)處理已經(jīng)在通信等領(lǐng)域得到了極為廣泛的應(yīng)用。 長(zhǎng)期以來(lái),信號(hào)處理技術(shù)—直用于轉(zhuǎn)換或產(chǎn)生模擬或數(shù)字信號(hào)。其中應(yīng)用的最頻繁的領(lǐng)域就是信號(hào)的濾波。此外,從數(shù)字通信、語(yǔ)音、音頻和生物醫(yī)學(xué)信號(hào)處理到檢測(cè)儀器儀表和機(jī)器人技術(shù)等許多領(lǐng)域中,都廣泛地應(yīng)用了數(shù)字信號(hào)處理技術(shù)。數(shù)字信號(hào)處理己經(jīng)發(fā)展成為一項(xiàng)成熟的技術(shù),并且在許多應(yīng)用領(lǐng)域逐步代替了傳統(tǒng)的模擬信號(hào)處理系統(tǒng)。而本文中基于DSP技術(shù)設(shè)計(jì)的正弦波信號(hào)發(fā)生器已被廣泛地應(yīng)用于通信、儀器儀表和工業(yè)控制等領(lǐng)域的信號(hào)處理系統(tǒng)中。1.2 課題內(nèi)容 利用基于CCS開(kāi)發(fā)環(huán)境中的C54x匯編語(yǔ)言來(lái)實(shí)現(xiàn)正弦信號(hào)發(fā)生裝置。 2、設(shè)計(jì)原理 一般情況,產(chǎn)生正弦波的方法有兩種:查表法和泰勒級(jí)數(shù)展開(kāi)法。查表法是使用比較普遍的方法,優(yōu)點(diǎn)是處理速度快,調(diào)頻調(diào)相容易,精度高,但需要的存儲(chǔ)器容量很大。泰勒級(jí)數(shù)展開(kāi)法需要的存儲(chǔ)單元少,具有穩(wěn)定性好,算法簡(jiǎn)單,易于編程等優(yōu)點(diǎn),而且展開(kāi)的級(jí)數(shù)越多,失真度就越小。 本文采用了泰勒級(jí)數(shù)展開(kāi)法。一個(gè)角度為θ的正弦和余弦函數(shù),可以展開(kāi)成泰勒級(jí)數(shù),取其前5項(xiàng)進(jìn)行近似得: x3x5x7x9sin(x)?x????3!5!7!9!x2x2x2x2 ?x(1?(1?(1?(1?))))2?34?56?78?9x2x4x6x8cos(x)?1????2!4!6!8!x2x2x2x2 ?1?(1?(1?(1?)))23?45?67?8式中:x為θ的弧度值,x?2?f/fs(fs是采樣頻率;f是所要發(fā)生的信號(hào)頻率) 3、設(shè)計(jì)方案 本設(shè)計(jì)采用TMS320C54X系列的DSP作為正弦信號(hào)發(fā)生器的核心控制芯片。 通過(guò)計(jì)算一個(gè)角度的正弦值和余弦值程序可實(shí)現(xiàn)正弦波,其步驟如下: 開(kāi) 始初始化設(shè)置調(diào)用sin和cos程序計(jì)算0~45°的值Sin2α=2sinα*cosα求0~90°的sin值(間隔為1°)1.利用sinx和cosx子程序,計(jì)算0—45°(間 隔為0.5°)的正弦和余弦值 2.利用sin(2x)=2sin(x)cos(x)公式,計(jì)算0—90°的正弦值(間隔為1°)3.通過(guò)復(fù)制,獲得0—359°的正弦值 4.將0—359°的正弦值重復(fù)從PA口輸出,遍可得到正弦波 整個(gè)系統(tǒng)相應(yīng)的軟件流程圖如右圖所示。 圖1 程序流程圖 結(jié) 束正弦波重復(fù)向PA口輸出重復(fù)得到0~359°正弦值 4、程序設(shè)計(jì) 4.1 產(chǎn)生正弦波程序清單sin.asm.title “sin.asm” //為匯編文件取名為“sin.asm”.mmregs //定義存儲(chǔ)器映像寄存器.def _c_int00.ref sinx,d_xs,d_sinx,cosx,d_xc,d_cosx //定義標(biāo)號(hào) sin_x:.usect “sin_x”,360 //為“sin_x”保留360個(gè)存儲(chǔ)空間 STACK:.usect “STACK”,10 //為堆棧保留10個(gè)存儲(chǔ)空間 k_theta.set 286 //theta=pi/360(0.5deg)PA0.set 0 _c_int00.text //定義文本程序代碼段 STM #STACK+10,SP //設(shè)置堆棧指針 STM k_theta,AR0 //AR0-->K_theta(increment)STM 0,AR1 //(AR1)=X(rad)STM #sin_x,AR6 //AR6→sin(x)STM #90,BRC //form sin0(deg.)—sin90(deg)RPTB loop1-1 //重復(fù)執(zhí)行塊語(yǔ)句(下條語(yǔ)句開(kāi)始至 loop1-1)91次 LDM AR1,A LD #d_xs,DP STL A,@d_xs //(A)低16位→d_xs STL A,@d_xc //(A)CALL sinx // CALL cosx // LD #d_sinx,DP //DP LD @d_sinx,16,A //A=sin(x)MPYA @d_cosx //B= sin(x)*cos(x)STH B,1,*AR6+ //AR6 MAR *AR1+0 //loop1: STM #sin_x+89,AR7 //sin91(deg.)STM #88,BRC RPTB loop2-1 // LD *AR7-,A //((AR7))STL A,*AR6+ //(A)loop2: STM #179,BRC //sin180(deg.)(BRC)=179, STM #sin_x,AR7 //AR7 RPTB loop3-1 LD *AR7+,A //((AR7))NEG A // STL A,*AR6+ //Aloop3: STM #sin_x,AR6 //AR6 STM #1,AR0 //AR STM #360,bk //BKloop4: PORTW *AR6+0%,PA0 //PA0=*AR6+0%, B loop4 sinx:.def d_xs,d_sinx //.data //低16位→d_xc 調(diào)用sinx程序 調(diào)用cosx程序 ←d_sinx →2*sin(x)*cos(x)修改輔助寄存器AR1 —sin179(deg.)重復(fù)執(zhí)行下條指令至loop2-1處90次 →A,然后AR7減去1 低16位→AR6 —sin359(deg.)重復(fù)執(zhí)行180次 指向sin_x首地址 →A,然后AR7加1 累加器變負(fù) 低16位→AR6 指向sin_x ←01 ←360 向PA0輸出數(shù)據(jù) 定義標(biāo)號(hào)d_xs,d_sinx 定義數(shù)據(jù)代碼段 table_s.word 01c7h //c1=1/(8*9).word 030bh //c1=1/(6*7).word 0666h //c1=1/(4*5).word 1556h //c1=1/(2*3)d_coef_s.usect “coef_s”,4 //為“coef_s”保留4個(gè)存儲(chǔ)空間 d_xs.usect “sin_vars”,1 //為d_xs中sin_vars保留1個(gè)存 儲(chǔ)空間 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 //AR5 RPT #3 // MVPD #table_s,*AR5+ //table_s STM #d_coef_s,AR3 //AR3 STM #d_xs,AR2 //AR2 STM #c_l_s,AR4 //AR4 ST #7FFFh,c_l_s //7FFFh SQUR *AR2+,A //AR2 ST A,*AR2 // ||LD *AR4,B // MASR *AR2+,*AR3+,B,A // MPYA A // STH A,*AR2 // MASR *AR2-,*AR3+,B,A // MPYA *AR2+ //AR2 ST B,*AR2 // ||LD *AR4,B //為d_squr_xs中sin_vars保留1個(gè) 存儲(chǔ)空間 為d_temp_s中sin_vars保留1個(gè) 存儲(chǔ)空間 為d_sinx中sin_vars保留1個(gè)存儲(chǔ) 空間 為d_xs中sin_vars保留1個(gè)存儲(chǔ) 空間 定義代碼開(kāi)始段 設(shè)置FRCT=1以解決冗余符號(hào)位 指向d_coef_s首地址 重復(fù)下條指令4次 中的數(shù)復(fù)制到AR5指向 的單元 指向d_coef_s首地址 指向d_xs首地址 指向c_l_s首地址 →c_l_s 指向累加器A中的數(shù)值求其平方(A)左移16位→AR2(AR4)左移16位→B 從累加器A中減去(AR2)*(AR3)操作數(shù)與累加器A中高位相乘(A)高16位→AR2 從累加器A中減去(AR2)*(AR3)指向的數(shù)與累加器A的高16位相乘(B)左移16位→AR2(AR4)左移16位→B MASR *AR2-,*AR3+,B,A //從累加器A中減去(AR2)*(AR3)MPYA *AR2+ //與累加器A中高16位相乘 ST B,*AR2 //(B)左移16位→AR2 ||LD *AR4,B //(AR4)左移16位→B MASR *AR2-,*AR3+,B,A //從累加器A中減去(AR2)*(AR3)MPYA d_xs //d_xs指向的操作數(shù)與累加器A中高16位相乘 STH B,d_sinx //(B)高16位→d_sinx RET //cosx:.def d_xc,d_cosx //d_coef_c.usect “coef_c”,4 //.data //table_c.word 0249h //c1=1/(7*8).word 0444h //c1=1/(6*5).word 0aabh //c1=1/(3*4).word 4000h //c1=1/2 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 //FRCT=1 STM #d_coef_c,AR5 //AR5 RPT #3 // MVPD #table_c,*AR5+ // STM #d_coef_c,AR3 //AR3 STM #d_xc,AR2 //AR2 STM #c_l_c,AR4 //AR4 ST #7FFFh,c_l_c //7FFFh SQUR *AR2+,A //返回 定義標(biāo)號(hào)d_xc,d_cosx 為coef_c保留4個(gè)存儲(chǔ)空間 定義數(shù)據(jù)代碼段 為d_xc中cos_vars保存1個(gè)存儲(chǔ)單元 為d_squr_xc中cos_vars保存1個(gè) 存儲(chǔ)單元 為d_temp_c中cos_vars保存1個(gè)存儲(chǔ) 單元 為d_cosx中cos_vars保存1個(gè)存儲(chǔ)單 元 為c_l_c中cos_vars保存1個(gè)存儲(chǔ)單 元 定義文本代碼段 以清除冗余符號(hào)位 指向d_coef_c首地址 重復(fù)下條指令4次 把table_c中的數(shù)復(fù)制到中AR5 指向d_coef_c首地址 指向d_xc首地址 指向c_l_c首地址 →c_l_c 求x的平方存放在累加器A中 ST A,*AR2 //(A)左移16位→AR2 ||LD *AR4,B //(AR4)左移16位→B MASR *AR2+,*AR3+,B,A //A=1-x^2/56,T=x^2 MPYA A //A=T*A=x^2(1-x^2/56)STH A,*AR2 //(d_temp)= x^2(1-x^2/56)MASR *AR2-,*AR3+,B,A //A=1-x^2/30(1-x^2/56)T= x^2(1-x^2/56)MPYA *AR2+ //B=x^2(1-x^2/30(1-x^2/56))ST B,*AR2 //(d_temp)= x^2(1-x^2/30(1-x^2/56))||LD *AR4,B //B=1 MASR *AR2-,*AR3+,B,A //A= 1-x^2/12(1-x^2/30(1-x^2/56))SFTA A,-1,A NEG A MPYA *AR2+ //B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))MAR *AR2+ RETD ADD *AR4,16,B //B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))STH B,*AR2 //cos(theta)RET.end 4.2 正弦波程序鏈接命令文件sin.cmd.cmd文件描述輸入文件和輸出文件,說(shuō)明系統(tǒng)中有哪些可用存儲(chǔ)器、程序段、堆棧及復(fù)位向量和中斷向量等安排在什么地方。其中MEMORY段就是用來(lái)規(guī)定目標(biāo)存儲(chǔ)器的模型,通過(guò)這條指令,可以定義系統(tǒng)中所包含的各種形式的存儲(chǔ)器,以及它們占據(jù)的地址范圍;SECTIONS段說(shuō)明如何將輸入段組合成輸出段以及在可執(zhí)行文件中定義輸出段、規(guī)定輸出段在存儲(chǔ)器中的位置等。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 //文本代碼段其實(shí)地址為0E000h,長(zhǎng)度為 1000h.data :>EPROM PAGE 0 //數(shù)據(jù)代碼段其實(shí)地址為0D000h STACK :>SPRAM PAGE 1 //堆棧起始地址為0060h,長(zhǎng)度為0020h sin_vars :>DARAM1 PAGE 1 //標(biāo)號(hào)為sin_vars段的起始地址為0080 長(zhǎng)度為0010h coef_s :>DARAM1 PAGE 1 //標(biāo)號(hào)為coef_s段的起始地址為0070h 長(zhǎng)度為0010h cos_vars :>DARAM2 PAGE 1 //標(biāo)號(hào)為cos_vars段的起始地址為0090h 長(zhǎng)度為0010h coef_c :>DARAM2 PAGE 1 //標(biāo)號(hào)為coef_c段的起始地址為0080h 長(zhǎng)度為0020h sin_x : align(512){} > DARAM3 PAGE 1.vectors :>VECS PAGE 0 } 5、仿真與調(diào)試 5.1 CCS工程項(xiàng)目的調(diào)試 利用 CCS 集成開(kāi)發(fā)環(huán)境,用戶(hù)可以在一個(gè)開(kāi)發(fā)環(huán)境下完成工程定義、程序 編輯、編譯鏈接、調(diào)試和數(shù)據(jù)分析等工作環(huán)節(jié)。⑴ 創(chuàng)建工程(project)文件 選擇 Project→New,在“Project”文本框中鍵入將要?jiǎng)?chuàng)建的工程項(xiàng)目名,本例工程項(xiàng)目名為“sin” ⑵ 向工程中添加文件 選擇 Project→Add Files to Project,將 sine.asm文件自動(dòng)添加到 Project→Source 中。用同樣的方法 將 sine.cmd 文件添加到對(duì)應(yīng)的目錄中。⑶ 構(gòu)建工程,工程所需文件編輯完成后,可以對(duì)該工程進(jìn)行編譯鏈接,產(chǎn)生可執(zhí)行文件,為調(diào)試做準(zhǔn)備。 選擇 Project→Build,系統(tǒng)提示沒(méi)有出錯(cuò)信息后,系統(tǒng)自動(dòng)生成一個(gè)可執(zhí)行文件,sine.out 文件。⑷ 載入可執(zhí)行文件 選擇 File→Load Program 載入編譯鏈接好的可執(zhí)行文件sine.out ⑸ 運(yùn)行程序 選擇 Debug→Run運(yùn)行,可以通過(guò)查看內(nèi)存表等方法,看到程序運(yùn)行的結(jié)果。5.2 仿真結(jié)果 選擇 View→Graph→Time/Frequence 得到的正弦波形如下圖所示: 輸出結(jié)果顯示,在CCS圖形觀(guān)察窗口得到了頻率穩(wěn)定,信號(hào)干擾小,波形失真度較小的正弦信號(hào)。 6、心得體會(huì) 通過(guò)這次的課程設(shè)計(jì)使我進(jìn)一步加深了對(duì)于DSP這門(mén)課程的學(xué)習(xí)以及對(duì)于平時(shí)所學(xué)內(nèi)容的實(shí)際應(yīng)用。在設(shè)計(jì)中發(fā)現(xiàn)問(wèn)題和同學(xué)互相討論研究,并在編程過(guò)程中進(jìn)一步提高自身的創(chuàng)作、創(chuàng)新水平,扎實(shí)基礎(chǔ),擴(kuò)展所學(xué)。在輸入程序時(shí)發(fā)現(xiàn)編程確實(shí)是要求很認(rèn)真細(xì)心的,如果稍有差錯(cuò)就會(huì)導(dǎo)致整個(gè)程序的錯(cuò)誤,也由此體現(xiàn)了DSP這門(mén)課程的嚴(yán)謹(jǐn)性。相信在以后的學(xué)習(xí)中一定會(huì)更好的應(yīng)用所學(xué)內(nèi)容的。第三篇:函數(shù)信號(hào)發(fā)生器和任意波形發(fā)生器對(duì)比
第四篇:信號(hào)發(fā)生器設(shè)計(jì)(推薦)
第五篇:正弦信號(hào)DSP