DSP的回波產(chǎn)生與抵消_第1頁(yè)
DSP的回波產(chǎn)生與抵消_第2頁(yè)
DSP的回波產(chǎn)生與抵消_第3頁(yè)
DSP的回波產(chǎn)生與抵消_第4頁(yè)
DSP的回波產(chǎn)生與抵消_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

DSP課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告DTMF信號(hào)的產(chǎn)生及檢測(cè)院(系):電子信息學(xué)院通信07級(jí)設(shè)計(jì)人員:賈勇學(xué)號(hào):07211168設(shè)計(jì)人員:李昂學(xué)號(hào):07211170成績(jī):工程設(shè)計(jì)50報(bào)告20答辯30總分評(píng)語(yǔ):指導(dǎo)教師簽字:日期:設(shè)計(jì)任務(wù)書(shū)雙音多頻DTMF(DualToneMultiFrequency)是在按鍵式電話機(jī)上得到廣泛應(yīng)用的音頻撥號(hào)信令,一個(gè)DTMF信號(hào)由兩個(gè)頻率的音頻信號(hào)疊加構(gòu)成。這兩個(gè)音頻信號(hào)的頻率分別來(lái)自兩組預(yù)定義的頻率組:行頻組和列頻組。每組分別包括4個(gè)頻率,分別抽出一個(gè)頻率進(jìn)行組合就可以組成16種DTMF編碼,分別記作0~9、*、#、A、B、C、D。如下圖1所示。圖1 DTMF信令的編碼要用DSP產(chǎn)生DTMF信號(hào),只要產(chǎn)生兩個(gè)正弦波疊加在一起即可;DTMF檢測(cè)時(shí)采用改進(jìn)的Goertzel算法,從頻域搜索兩個(gè)正弦波的存在。1.設(shè)計(jì)要求及目標(biāo)基本部分:(1)使用C語(yǔ)言編寫(xiě)DTMF信號(hào)的發(fā)生程序,要求循環(huán)產(chǎn)生0~9、*、#、A、B、C、D對(duì)應(yīng)的DTMF信號(hào),并且符合CCITT對(duì)DTMF信號(hào)規(guī)定的指標(biāo)。(2)使用C語(yǔ)言編寫(xiě)DTMF信號(hào)的檢測(cè)程序,檢測(cè)到的DTMF編碼在屏幕上顯示。發(fā)揮部分:利用DTMF信號(hào)完成數(shù)據(jù)通訊的功能,并試改進(jìn)DTMF信號(hào)的規(guī)定指標(biāo),使每秒內(nèi)傳送的DTMF編碼越多越好。設(shè)計(jì)思路DTMF發(fā)生器基于兩個(gè)二階數(shù)字正弦振蕩器,一個(gè)用于產(chǎn)生行頻,一個(gè)用于產(chǎn)生列頻。DSP只要裝載相應(yīng)的系數(shù)和初始條件,就可以只用兩個(gè)振蕩器產(chǎn)生所需的八種音頻信號(hào)。典型的DTMF信號(hào)頻率范圍是700~1700Hz,選取8000Hz作為采樣頻率,即可滿足奈奎斯特定理。DTMF數(shù)字振蕩器對(duì)的二階系統(tǒng)函數(shù)的差分方程為:

其中,,,為采樣頻率,為輸出正弦波的頻率,為輸出正弦波的幅度。該式初值為,。在輸入信號(hào)中檢測(cè)DTMF信號(hào),需要在輸入的數(shù)據(jù)信號(hào)流中連續(xù)地搜索DTMF信號(hào)頻譜的存在。整個(gè)檢測(cè)過(guò)程分兩步:首先采用Goertzel算法在輸入信號(hào)中提取頻譜信息;接著作檢測(cè)結(jié)果的有效性檢查。DTMF解碼時(shí)在輸入信號(hào)中搜索出有效的行頻和列頻。計(jì)算數(shù)字信號(hào)的頻譜可以采用DFT及其快速算法FFT,而在實(shí)現(xiàn)DTMF解碼時(shí),采用Goertzel算法要比FFT更快。通過(guò)FFT可以計(jì)算得到信號(hào)所有譜線,了解信號(hào)整個(gè)頻域信息,而對(duì)于DTMF信號(hào)只需關(guān)心其8個(gè)行頻/列頻及其二次諧波信息即可,二次諧波的信息用于將DTMF信號(hào)與聲音信號(hào)區(qū)別開(kāi)。此時(shí)Goertzel算法能更加快速的在輸入信號(hào)中提取頻譜信息。Goertzel算法實(shí)質(zhì)是一個(gè)兩極點(diǎn)的IIR濾波器。要求完成的任務(wù)(1)編寫(xiě)C語(yǔ)言程序,并在CCS集成開(kāi)發(fā)環(huán)境下調(diào)試通過(guò)。(2)實(shí)現(xiàn)設(shè)計(jì)所要求的各項(xiàng)功能。設(shè)計(jì)內(nèi)容(1)使用C語(yǔ)言編寫(xiě)DTMF信號(hào)的發(fā)生程序,要求循環(huán)產(chǎn)生0~9、*、#、A、B、C、D對(duì)應(yīng)的DTMF信號(hào),并且符合CCITT對(duì)DTMF信號(hào)規(guī)定的指標(biāo)。使用C語(yǔ)言編寫(xiě)DTMF信號(hào)的檢測(cè)程序,檢測(cè)到的DTMF編碼在屏幕上顯示。發(fā)揮部分:利用DTMF信號(hào)完成數(shù)據(jù)通訊的功能,并試改進(jìn)DTMF信號(hào)的規(guī)定指標(biāo),使每秒內(nèi)傳送的DTMF編碼越多越好。設(shè)計(jì)方案、算法原理說(shuō)明DTMF信號(hào)的產(chǎn)生:DTMF發(fā)生器基于兩個(gè)二階數(shù)字正弦振蕩器,一個(gè)用于產(chǎn)生行頻,一個(gè)用于產(chǎn)生列頻。DSP只要裝載相應(yīng)的系數(shù)和初始條件,就可以只用兩個(gè)振蕩器產(chǎn)生所需的八種音頻信號(hào)。典型的DTMF信號(hào)頻率范圍是700~1700Hz,選取8000Hz作為采樣頻率,即可滿足奈奎斯特定理(Nyquist定理:為了正確判定信號(hào)頻率,信號(hào)在一個(gè)周期內(nèi)至少被采樣兩次)。具體來(lái)說(shuō)DTMF編碼是將撥號(hào)盤(pán)上的數(shù)字0~9,字母A~D,*/E、#/F,共16個(gè)字符,用音頻范圍(小于3400Hz)的8個(gè)頻率表示出來(lái)。具體來(lái)說(shuō),將8個(gè)頻率分為高頻群和低頻群2組,分別作為列頻組和行頻組,總共可構(gòu)成4×4共16種不同組合,代表16個(gè)符號(hào)。具體表示方法如圖1所示。DTMF雙音頻可以由2個(gè)可編程的二階數(shù)字正弦振蕩器產(chǎn)生,如圖2所示,分別用于產(chǎn)生行音頻和列音頻。由于DTMF頻率范圍在697~1633Hz之間,根據(jù)Nyquist定理可知,用8kHz速率抽樣對(duì)DTMF信號(hào)沒(méi)有影響。及所以8000HZ這樣的頻率抽樣對(duì)DTMF信號(hào)沒(méi)有影響。(其中在100ms內(nèi)采樣800個(gè)點(diǎn),我們?cè)O(shè)置800個(gè)點(diǎn)的緩存,其中用400個(gè)存產(chǎn)生的DTMF信號(hào)值,即音頻信號(hào)必須持續(xù)50ms,另外400個(gè)存0值,即靜音信號(hào)。)DTMF信號(hào)的檢測(cè):DTMF信號(hào)的檢測(cè)要比產(chǎn)生復(fù)雜得多,一方面,解碼的算法相對(duì)復(fù)雜;另一方面,對(duì)解碼的實(shí)時(shí)性,即解碼速度要求較高。不同的軟硬件有不同的實(shí)現(xiàn)方法,而軟件解碼主要是指用一些通用的硬件模塊,以合適的算法對(duì)接收進(jìn)來(lái)的DTMF信號(hào)進(jìn)行解碼。解碼一般有2個(gè)過(guò)程:變換和確認(rèn),變換是指把輸入的時(shí)域信號(hào)變換成易處理的頻域信號(hào),得到有效頻率組成的數(shù)字;確認(rèn)是指對(duì)檢出的數(shù)字是否有效,即判斷是否符合各項(xiàng)參數(shù)規(guī)定和信號(hào)指標(biāo)的要求。在檢測(cè)端對(duì)DTMF信號(hào)解碼時(shí)從輸入信號(hào)中搜索出有效的行頻和列頻。進(jìn)行解碼可以采用2種算法:FFT和Goertzel算法。FFT可用來(lái)計(jì)算Ⅳ點(diǎn)頻率處的頻譜值,但他不能按逐個(gè)樣點(diǎn)的方式處理,不利于實(shí)時(shí)實(shí)現(xiàn),且為了保證頻率分辨率,F(xiàn)FT的點(diǎn)數(shù)需取得較大。當(dāng)計(jì)算的頻率點(diǎn)較少時(shí),Goertzel算法是計(jì)算DFT的有效算法,比FFT更快。在本實(shí)驗(yàn)系統(tǒng)中,只需關(guān)心其8個(gè)行頻/列頻及其二次諧波信息即可,因此,選用了Goertzel算法,利用二極點(diǎn)的IIR濾波器計(jì)算離散傅里葉變換值,能夠快速高效地提取輸入信號(hào)的頻譜信息。Goertzel算法實(shí)質(zhì)是一個(gè)兩極點(diǎn)的IIR濾波器。DTMF數(shù)字振蕩器對(duì)的二階系統(tǒng)函數(shù)的差分方程為:其中,,,為采樣頻率,為輸出正弦波的頻率,為輸出正弦波的幅度。該式初值為,。Goertzel算法原理框圖在實(shí)際的DTMF檢測(cè)中,只需DFT的幅度(本算法為平方幅度)信息就足夠了,因此在Goertzel濾波器中,當(dāng)N點(diǎn)(相當(dāng)于DFT數(shù)據(jù)塊的長(zhǎng)度)樣值輸入濾波器后,濾波器輸出偽DFT值vk(n),由vk(n)即可確定頻譜的平方幅度。(2)其中k的取值可由下表得到:1stHarmonics(N=205)fs=8ksps2ndHarmonics(N=201)fs=8kspskfrequency(k/N)fs/Hzcoefficientcos(2pik/N)kfrequency(k/N)fs/Hzcoefficientcos(2pik/N)186970.851623513930.45886207700.817933915520.34445228520.781154317110.22470249410.741424718710.101413112090.58157612428-0.329743413360.50442672667-0.500003814770.39505742945-0.676064216330.27972823264-0.83740一旦得到行/列頻率的頻譜平方幅度信息,就可以通過(guò)一系列的判決來(lái)確定音頻及數(shù)字結(jié)果的有效性。首先,檢測(cè)可能DTMF信號(hào)的強(qiáng)度是否足夠大。行頻率分量和列頻率分量的平方幅度和應(yīng)高于某一確定門(mén)限THR_SIG。注意與DTMF頻率相符的正弦波的能量集中在頻域內(nèi)一段很窄的范圍當(dāng)中,所以門(mén)限取值應(yīng)占動(dòng)態(tài)范圍的大部分。第二,如果DTMF信號(hào)存在,由于構(gòu)成DTMF信號(hào)的行頻都低于列頻,因此從小到大依次判斷各個(gè)頻率點(diǎn)的頻譜幅度,得到的第一個(gè)達(dá)到門(mén)限要求的的頻率點(diǎn)即為行頻,第二個(gè)即為列頻,綜合行頻和列頻即可得出檢測(cè)到的是哪個(gè)數(shù)據(jù)。程序設(shè)計(jì)、調(diào)試與結(jié)果分析我們?cè)O(shè)計(jì)的總體思路是將DTMF信號(hào)的產(chǎn)生與檢測(cè)分別建立工程,期望在兩個(gè)DSK板可以實(shí)現(xiàn)雙機(jī)通信。DTMF信號(hào)的發(fā)送程序:程序流程包含兩個(gè)任務(wù),即音頻任務(wù)和靜默任務(wù)。在一段時(shí)間間隔后兩個(gè)任務(wù)需要進(jìn)行互換。音頻任務(wù)的作用是產(chǎn)生雙音頻采樣值,靜默任務(wù)的作用是產(chǎn)生靜默采樣值。每個(gè)任務(wù)被分配一定的持續(xù)時(shí)間。發(fā)送源程序:#include<board.h>#include<codec.h>#include<mcbsp54.h>#include<math.h>#include<type.h>HANDLEhHandset;s16data;s16buffer[400];#definePI3.1415926floatfs=8000;s16tele_number[16]={'1','2','3','4','5','6','7','8','9','0','A','B','C','D','*','#'};floatdtmf_freq[16][2]={941,1336,//0697,1209,//1697,1336,//2697,1477,//3770,1209,//4770,1336,//5770,1477,//6852,1209,//7852,1336,//8852,1477,//9697,1633,//a770,1633,//b852,1633,//c941,1633,//d941,1209,//*941,1477//#};f32row_freq[16][2]={0};//各鍵值行頻系數(shù)和初始條件f32column_freq[16][2]={0};//各鍵值列頻系數(shù)和初始條件f32ax1,ay1;f32x_n,x_n_1,x_n_2;f32y_n,y_n_1,y_n_2;f32z_n;voiddelay(s16period);/*DTMF發(fā)送主程序*/voidmain(){s16cnt=2;f32f0;s16num;s16i=0,n=0;//,i1=0if(brd_init(100))//initialdskboardreturn;/*LEDflicktwice,boardworks*/while(cnt--){brd_led_toggle(BRD_LED0);delay(1000);brd_led_toggle(BRD_LED1);delay(1000);brd_led_toggle(BRD_LED2);delay(1000);}/*opencodec,gethandle*/hHandset=codec_open(HANDSET_CODEC);/*settingD/Acoverterinitialparameter*/codec_dac_mode(hHandset,CODEC_DAC_15BIT);//D/Aworksin15-bitmodecodec_aout_gain(hHandset,CODEC_AOUT_MINUS_6dB);//analogoutputgainis-6dBcodec_sample_rate(hHandset,SR_8000);//D/Aslew-rateis8KHz/*Calculatethevalueofeachline_freqofthefrequencycoefficientCOS(2*PI*F0/FS)andInitialconditionsSIN(2*PI*F0/FS)*/for(i=0;i<16;i++){f0=dtmf_freq[i][0];row_freq[i][0]=cos(2*PI*f0/fs);row_freq[i][1]=sin(2*PI*f0/fs);}/*Calculatethevalueofeachcolumn_freqofthefrequencycoefficientCOS(2*PI*F0/FS)andInitialconditionsSIN(2*PI*F0/FS)*/for(i=0;i<16;i++){f0=dtmf_freq[i][1];column_freq[i][0]=cos(2*PI*f0/fs);column_freq[i][1]=sin(2*PI*f0/fs);}/*Cycletosendkeyinformation*/while(1){for(i=0;i<16;i++){num=tele_number[i];//getthesendingkeynumber//num=1;//debug/**/switch(num){case'0':num=0;break;case'1':num=1;break;case'2':num=2;break;case'3':num=3;break;case'4':num=4;break;case'5':num=5;break;case'6':num=6;break;case'7':num=7;break;case'8':num=8;break;case'9':num=9;break;case'A':num=10;break;case'B':num=11;break;case'C':num=12;break;case'D':num=13;break;case'*':num=14;break;case'#':num=15;break;}num=2;//debug//delay(300);ax1=row_freq[num][0];x_n_2=row_freq[num][1];ay1=column_freq[num][0];y_n_2=column_freq[num][1];x_n_1=0;y_n_1=0;n=0;cnt=400;while(cnt--){x_n=2*ax1*x_n_1-x_n_2;y_n=2*ay1*y_n_1-y_n_2;z_n=x_n+y_n;x_n_2=x_n_1;x_n_1=x_n;y_n_2=y_n_1;y_n_1=y_n;data=16384.0*z_n;while(!MCBSP_XRDY(HANDSET_CODEC)){};*(volatileu16*)DXR1_ADDR(HANDSET_CODEC)=data;buffer[n]=data;n++;}/**/cnt=400;while(cnt--){/**/while(!MCBSP_XRDY(HANDSET_CODEC)){};*(volatileu16*)DXR1_ADDR(HANDSET_CODEC)=0;}//brd_led_toggle(BRD_LED0);//delay(500);}brd_led_toggle(BRD_LED1);delay(2000);}}voiddelay(s16period){inti,j;for(i=0;i<period;i++){for(j=0;j<period>>1;j++){};}}DTMF信號(hào)的接收程序:#include<stdio.h>#include<type.h>#include<board.h>#include<codec.h>#include<mcbsp54.h>#include<math.h>HANDLEhHandset;floatbuffer[125];floatpi=3.1415926;s16data;intk=0;floatw[8],a[8][3];floatamp[8];inti,j,x,y;intdtmf_flag=0;intdetect_result[256]={0};intI=0;voiddelay(intperiod);voiddtmf_detect(void);//mainvoidmain(){intcnt=2;w[0]=2*cos(2*pi*11/125);w[1]=2*cos(2*pi*12/125);w[2]=2*cos(2*pi*13/125);w[3]=2*cos(2*pi*15/125);w[4]=2*cos(2*pi*19/125);w[5]=2*cos(2*pi*21/125);w[6]=2*cos(2*pi*23/125);w[7]=2*cos(2*pi*26/125);for(i=0;i<8;i++){a[i][0]=0;a[i][1]=0;}if(brd_init(100)){return;}while(cnt--){brd_led_toggle(BRD_LED0);delay(1000);brd_led_toggle(BRD_LED1);delay(1000);brd_led_toggle(BRD_LED2);delay(1000);}hHandset=codec_open(HANDSET_CODEC);/*settingA/Dcoverterinitialparameter*/codec_adc_mode(hHandset,CODEC_ADC_15BIT);//A/Dworksin15-bitmodecodec_ain_gain(hHandset,CODEC_AIN_0dB);//analoginputgainis0dBcodec_sample_rate(hHandset,SR_8000);//A/Dslew-rateis8KHzwhile(1){while(!MCBSP_RRDY(HANDSET_CODEC)){};data=*(volatileu16*)DRR1_ADDR(HANDSET_CODEC);buffer[k]=data/16384.0;for(i=0;i<8;i++){a[i][2]=w[i]*a[i][1]-a[i][0]+buffer[k];a[i][0]=a[i][1];a[i][1]=a[i][2];}k++;if(k==125){k=0;dtmf_detect();for(i=0;i<8;i++){a[i][0]=0;a[i][1]=0;}}}}//Goertzelvoiddtmf_detect(void){for(i=0;i<8;i++){amp[i]=a[i][1]*a[i][1]+a[i][0]*a[i][0]-w[i]*a[i][1]*a[i][0];//printf("Theamplitude%dis%f.\r\n",i,amp[i]);//fordebug}j=0;for(i=0;i<8;i++){if(amp[i]>1500){j++;if(j==1)x=i;elseif(j==2)y=i;}}i=-1;if(dtmf_flag==0){if(j==2){if(x==0&&y==4)i='1';elseif(x==0&&y==5)i='2';elseif(x==0&&y==6)i='3';elseif(x==1&&y==4)i='4';elseif(x==1&&y==5)i='5';elseif(x==1&&y==6)i='6';elseif(x==2&&y==4)i='7';elseif(x==2&&y==5)i='8';elseif(x==2&&y==6)i='9';elseif(x==3&&y==5)i='0';elseif(x==3&&y==4)i='*';elseif(x==3&&y==6)i='#';elseif(x==0&&y==7)i='A';elseif(x==1&&y==7)i='B';elseif(x==2&&y==7)i='C';elseif(x==3&&y==7)i='D';if(i!=-1){detect_result[I]=i;I++;if(I==16){for(I=0;I<16;I++){printf("TheDTMFsignalis%c.\r\n",detect_result[I]);}}dtmf_flag++;}}}elseif(j==0)dtmf_flag=0;}voiddelay(s16period){inti,j;for(i=0;i<period;i++){for(j=0;j<period>>1;j++){};}}cmd5402程序(接口文件)/*###############################################################################$Id:$###################################################################################Copyright(c)1999DNAEnterprises,Inc.#################################################################################RevisionHistory####$Log:$##################################################################################################################################################################XFERMAKE.CMD####C54xLinkerCommandFilefor5402DSKMemoryTransferModule###############################################################################*//*****************************************************************************//*ObjectFiles*//*****************************************************************************//*****************************************************************************//*LinkerOptions*//*****************************************************************************//*****************************************************************************//*C5402DSKDSPMemoryMap*//**//*****************************************************************************/MEMORY{PAGE0:VECS:origin=0080h,length=0080h/*InternalProgramRAM*/PRAM:origin=7600h,length=8000h/*InternalProgramRAM*/PAGE1:SCRATCH:origin=0060h,length=0020h/*ScratchPadDataRAM*/DMARAM:origin=0C00h,length=0300h/*DMAbuffer*/DATA:origin=1100h,length=0080h/*InternalDataRAM*/STACK:origin=1180h,length=0560h/*StackMemorySpace*/INRAM:origin=1900h,length=0100h/*InternalDataRAM*/HPRAM0:origin=1A00h,length=0002h/*HPImemoryaccessiblebyHostandDSP*/HPRAM1:origin=1A02h,length=0280h/*HPImemoryaccessiblebyHostandDSP*/HPRAM2:origin=1C82h,length=0280h/*HPImemoryaccessiblebyHostandDSP*/EXRAM:origin=1F10h,length=4000h/*ExternalDataRAM*/}/*****************************************************************************//*DSPMemoryAllocation*//*****************************************************************************/SECTIONS{.cinit>PRAMPAGE0.text>PRAMPAGE0.vectors>VECSPAGE0init_var>PRAMPAGE0detect>PRAMPAGE0vrcprg >PRAMPAGE0matprg >PRAMPAGE0 .stack>STACKPAGE1.trap>SCRATCHPAGE1.const>EXRAMPAGE1.data>EXRAMPAGE1.bss>EXRAMPAGE1.cio>EXRAMPAGE1.switch>EXRAMPAGE1tables>EXRAMPAGE1var>EXRAMPAGE1svctab>EXRAMPAGE1/*SS_VLSPtable*/vctab>EXRAMPAGE1/*VLSPtable*/uvctab>EXRAMPAGE1/*UVLSPtable*/cuvtab>EXRAMPAGE1/*Stochasticcodebook*/cdbktab>EXRAMPAGE1/*variouscodebooktables*/logtab>EXRAMPAGE1/*tableforlog2*/powtab>EXRAMPAGE1/*tableforpow2*/hamtab>EXRAMPAGE1/*tableforhamming*/lgwtab>EXRAMPAGE1/*tableforlagwindow*/acostab>EXRAMPAGE1/*tableforarccos*/sqrtab>EXRAMPAGE1/*tableforsquareroot*/acbtab>EXRAMPAGE1/*tableforthresholdsinacb*/pm03tab>EXRAMPAGE1/*tableforx^(-0.3)computation*/costab>EXRAMPAGE1/*tableforcosine*/V23>INRAMPAGE1FSK>INRAMPAGE1hpibuff0>HPRAM0PAGE1hpibuff1>HPRAM1PAGE1hpibuff2>HPRAM2PAGE1dma_buff>DMARAMPAGE1}CCS5000上機(jī)調(diào)試過(guò)程及結(jié)果1軟件調(diào)試1、編譯過(guò)程、工程架構(gòu)、編譯環(huán)境設(shè)置(1)創(chuàng)建新的工程(2)向工程中添加文件從Project/AddFilestoProject,分別選擇send.c,5402.cmd(這個(gè)文件將片段映射到存儲(chǔ)器中),rts.lib(這個(gè)庫(kù)提供目標(biāo)DSP運(yùn)行時(shí)間支持(runtime-support))等文件,右擊send.pjt,選擇ScanAllDependencies..h文件將出現(xiàn)在ProjectView窗中的Libraries文件夾。頭文件不能手動(dòng)添加,自動(dòng)到:當(dāng)前目錄(源文件所在)或預(yù)編譯器的“includeSearchPath(-i)”option所指定的位置。顯示頭文件:Project—>showDependencies.最終編譯環(huán)境如下圖所示(3)編譯與運(yùn)行程序選擇Project/RebuildAll或單擊(RebuildAll)菜單條按鈕,CCS重新進(jìn)行編輯、匯編、連接工程里的所有文件。選擇File/LoadProgram.選中dtmf.out,并按Open。CCS將程序裝載到目標(biāo)DSP上,打開(kāi)顯示程序反匯編指令的Disassembly窗口。選擇Debug/GoMain。從主程序開(kāi)始執(zhí)行2實(shí)驗(yàn)圖像調(diào)試觀察信號(hào)時(shí)域圖觀察信號(hào)頻域圖運(yùn)行結(jié)果1發(fā)送時(shí)域圖2發(fā)送頻域圖;3接收的時(shí)域圖4接收頻域圖設(shè)計(jì)(安裝)與調(diào)試的體會(huì)賈勇:本次實(shí)驗(yàn)我們做的是是DTMF雙音多頻信號(hào)的產(chǎn)生與識(shí)別,通過(guò)本次實(shí)驗(yàn),我們從連原理都不清楚到后來(lái)能夠編程改進(jìn)程序,整個(gè)是一個(gè)不斷學(xué)習(xí)與進(jìn)步的過(guò)程,在綜合能力的提高和與隊(duì)友互相合作能力上是一次提升。以前從沒(méi)接觸過(guò)DTMF這一概念,我們開(kāi)始上網(wǎng)查找相關(guān)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論