版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE20-DSP課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告DTMF信號(hào)的產(chǎn)生及檢測(cè)院(系):電子工程信息學(xué)院設(shè)計(jì)人員:黃煒學(xué)號(hào):07291039 曹磊 07211193成績(jī):工程設(shè)計(jì)50報(bào)告20答辯30總分評(píng)語(yǔ):指導(dǎo)教師簽字:日期:目錄一、設(shè)計(jì)任務(wù)書(shū)…………1二、設(shè)計(jì)內(nèi)容……………5三、設(shè)計(jì)方案、算法原理說(shuō)明…………10四、程序設(shè)計(jì)、調(diào)試與結(jié)果分析………15五、設(shè)計(jì)(安裝)與調(diào)試的體會(huì)………25六、參考文獻(xiàn)……………26一、實(shí)驗(yàn)?zāi)康模?1)熟悉CCS的編程環(huán)境和基本試驗(yàn)調(diào)試流程和方法;(2)了解并掌握DTMF信號(hào)的產(chǎn)生和檢測(cè)遠(yuǎn)離核試驗(yàn)流程;(3)編寫C語(yǔ)言程序,并在CCS集成開(kāi)發(fā)環(huán)境下調(diào)試通過(guò);(4)熟練使用軟件CCS5000對(duì)程序的完整調(diào)試過(guò)程。二、實(shí)驗(yàn)內(nèi)容:利用DTMF信號(hào)產(chǎn)生的原理合成數(shù)字信號(hào)并分析其時(shí)域波形和頻譜;生成各個(gè)按鍵信號(hào);分析0~9,A~D,*、#幾個(gè)撥號(hào)信息的頻譜,觀察頻譜圖中的峰值點(diǎn)的幅值以及它們出現(xiàn)的位置。根據(jù)譜峰的幅值和位置,識(shí)別各DTMF信號(hào)所對(duì)應(yīng)對(duì)應(yīng)的數(shù)字;編寫Goertzel算法的程序,識(shí)別各DTMF信號(hào)所對(duì)應(yīng)對(duì)應(yīng)的數(shù)字。生成一串撥號(hào)音,例如8位電話號(hào)碼,進(jìn)行識(shí)別;三、實(shí)驗(yàn)原理及程序設(shè)計(jì):1、DTMF(雙音多頻)信號(hào)簡(jiǎn)介雙音多頻DTMF(DualToneMulti—Frequency)信號(hào)在全世界范圍內(nèi)得到廣泛應(yīng)用,將DTMF信號(hào)的產(chǎn)生與檢測(cè)集成到含有數(shù)字信號(hào)處理器(DSP)的系統(tǒng)中,是一項(xiàng)較有價(jià)值的工程應(yīng)用。雙音多頻DTMF(DualToneMulti—Frequency)信號(hào),逐漸在全世界范圍內(nèi)使用在按鍵式電話機(jī)上,因其提供更高的撥號(hào)速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤式電話機(jī)使用的撥號(hào)脈沖信號(hào)。近年來(lái)DTMF也應(yīng)用在交互式控制中,諸如語(yǔ)言菜單、語(yǔ)言郵件、電話銀行和ATM終端等。將DTMF信號(hào)的產(chǎn)生與檢測(cè)集成到任一含有數(shù)字信號(hào)處理器(DSP)的系統(tǒng)中,是一項(xiàng)較有價(jià)值的工程應(yīng)用。CCITT(國(guó)際電報(bào)電話咨詢委員會(huì))建議,國(guó)際上采用697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz、1633Hz12個(gè)頻率,并將其分成兩個(gè)群,即低頻群和高頻群。從低頻群和高頻群中任意抽出一個(gè)頻率進(jìn)行疊加組合,具有16種組合形式,讓其代表數(shù)字和功率,如下圖電話機(jī)鍵盤的頻率矩陣所列。本實(shí)驗(yàn)的目的是使用TMS320C52來(lái)制作DTMF發(fā)生器和檢測(cè)器。DTMF信號(hào)是音頻電話的撥號(hào)信號(hào),這種撥號(hào)方法取代了脈沖撥號(hào),每一個(gè)號(hào)碼由兩個(gè)音頻信號(hào)組成,該雙音頻由按鍵所在的行和列對(duì)應(yīng)的頻率決定(如圖所示)。電話中的雙音多頻信號(hào)(DTMF)有兩種作用:一是用于雙音多頻信號(hào)的撥號(hào),去控制交換機(jī)接通被叫的用戶電話機(jī);二是利用雙音多頻信號(hào)控制電話機(jī)各種動(dòng)作,如播放留言、語(yǔ)言信箱等。這些功能的實(shí)現(xiàn)離不開(kāi)DTMF信號(hào)的正確產(chǎn)生和檢測(cè),專用數(shù)字處理信號(hào)芯片(DSP)的出現(xiàn),使這個(gè)問(wèn)題得到輕松的解決。2、DTMF的產(chǎn)生DTMF的產(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作為采樣頻率,即可滿足奈奎斯特定理。設(shè)x[k]為DTMF信號(hào),產(chǎn)生方式為:x[k]=Asin(k)+Bsin(k)式中=2*pi*/和=2*pi*/分別表示高頻和低頻頻率,A、B分別為低頻群和高頻群樣值的量化基線。振蕩器實(shí)現(xiàn)過(guò)程中,首先將每個(gè)頻率的常數(shù)存在一個(gè)表中,用來(lái)初始化給定鍵的振蕩器;再按照上式的算法迭代計(jì)算,就得到正弦序列的輸出;將兩個(gè)這樣的輸出疊加即可得到雙音頻的輸出。每一個(gè)數(shù)字搶出的樣本數(shù)取決于數(shù)字速率與采樣速率.雙音頻中的每一個(gè)音調(diào)之后是同樣長(zhǎng)度的無(wú)音周期,從而可以檢測(cè)到按鍵的釋放。CCITT對(duì)DTMF信號(hào)規(guī)定的指標(biāo)是,傳送/接收率為每秒10個(gè)數(shù)字,即每個(gè)數(shù)字100ms。代表數(shù)字的音頻信號(hào)必須持續(xù)至少45ms,但不超過(guò)55ms。100ms內(nèi)其他時(shí)間為靜音(無(wú)信號(hào)),以便區(qū)別連續(xù)的兩個(gè)按鍵信號(hào)。下圖為DTMF頻率及其對(duì)應(yīng)的鍵值3、DTMF信號(hào)的識(shí)別常用的多頻信號(hào)檢測(cè)手段主要有FFT變換、濾波器組和線性濾波法三種。DTMF解碼即是在輸入信號(hào)中搜索出有效的行頻和列頻。計(jì)算數(shù)字信號(hào)的頻譜可以采用DFT及其快速算法FFT,而在實(shí)現(xiàn)DTMF解碼時(shí),采用Goertzel算法要比FFT更快。Goertzel算法屬于線性濾波法,它可從DTFT和DFT中推導(dǎo)。通過(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濾波器。如圖知,DFT計(jì)算可以等價(jià)為:在實(shí)際的DTMF檢測(cè)中,只需DFT的幅度(本算法為平方幅度)信息就足夠了。對(duì)于實(shí)序列x(n),Goertzel算法所需的內(nèi)部變量vk(n)也為實(shí)數(shù)。因此計(jì)算如下在識(shí)別DTMF信號(hào)時(shí),要求確定抽樣點(diǎn)數(shù)N,國(guó)際上通用N=205點(diǎn)或N=125點(diǎn)。下表列出了N=205點(diǎn)時(shí),各個(gè)頻率所對(duì)應(yīng)的DFT結(jié)果X[m]中的序號(hào)m。N=205時(shí)頻率對(duì)應(yīng)的抽樣信息基頻準(zhǔn)確值m最近的整數(shù)m值兩點(diǎn)的絕對(duì)誤差69717.861180.13977019.731200.26985221.833220.16794124.113240.113120930.981310.019133634.235340.235147737.848380.152由于k的舍入誤差反映的是頻率的偏移,因此必須選擇k舍入誤差小的N值。同時(shí)還要兼顧每個(gè)頻率,每個(gè)頻率k舍入誤差都比較小,或者盡可能的都取“舍”或者都取“入”,這樣就會(huì)使偏移比較小或者都向同一個(gè)方向偏移。DTMF檢測(cè)C54x的MCBSP接收DTMF信號(hào),每采到一個(gè)新樣點(diǎn),樣點(diǎn)值代入式,迭代計(jì)算8個(gè)行頻/列頻的中間變量(k為8個(gè)行頻/列頻分別對(duì)應(yīng)的數(shù)字頻率),直到采到N=205個(gè)樣點(diǎn)(在8kHz采樣頻率下,約為25ms)。此時(shí)再按式子計(jì)算8個(gè)行頻/列頻的幅度平方。接下來(lái)將與門限作比較,判決出有效的音頻信號(hào)。四、實(shí)驗(yàn)程序及注釋:#include"stdio.h"http://頭文件#include"math.h"#include"type.h"#include"board.h"http://函數(shù)原型voiddelay(intperiod);//定義延時(shí)子程序voidgenerate(floatdtmf[16*800],intstart,intnum[10],intm);//定義DTMF信號(hào)產(chǎn)生子程序voiddetect(floatdtmf[16*800],intstart);//定義DTMF檢測(cè)子程序intdata;floatfreq[16][2]={{941,1336},{697,1209},{697,1336},{697,1447}, {770,1209},{770,1336},{770,1447},{852,1209},{852,1336},{852,1447},{697,1633},{770,1633},{852,1633},{941,1633},{941,1209},{941,1477}};//按順序,每一行代表0~9,A~D,*,#對(duì)應(yīng)的數(shù)字頻率floatpi=3.1415926;intn;intnum[10];s16cnt=2;//主程序voidmain(){inti;intnum[10]={0,0,0,0,0,0,0,0,0,0};//初始化數(shù)組num[10]floatdtmf[16*800];charch[22];//dsk板的初始化if(brd_init(100))return; while(cnt--)//循環(huán)閃燈 { brd_led_toggle(BRD_LED0); delay(1000); brd_led_toggle(BRD_LED1); delay(1000); brd_led_toggle(BRD_LED2); delay(1000); }//printf("請(qǐng)輸入要輸入字符的位數(shù),要求小于等于8\r\n");scanf("%d",&n);printf("請(qǐng)輸入n個(gè)字符,0-9或A、B、C或D,或*,或#\r\n");n=2*n;for(i=0;i<n;i++)//輸入字符存放在數(shù)組ch[22]中{scanf("%c",&ch[i]);}for(i=1;i<n;i++,i++)//將輸入轉(zhuǎn)化成相應(yīng)的數(shù)字存放在數(shù)組num[10]中,{if(ch[i]=='*')'{num[(i-1)/2]=14;'}elseif(ch[i]=='#')//14代表信號(hào)'*',15代表信號(hào)'#'{num[(i-1)/2]=15;}elseif(ch[i]<='9'&&ch[i]>='0'){num[(i-1)/2]=(int)(ch[i])-48;//0~9代表信號(hào)'0'~'9'}elseif(ch[i]<='D'&&ch[i]>='A'){num[(i-1)/2]=(int)(ch[i])-65+10;//10~13代表信號(hào)'A'~'D'}}for(i=0;i<(n/2);i++)//循環(huán)產(chǎn)生所輸入字符的雙音信號(hào){generate(dtmf,i*800,num,i);}for(i=0;i<(n/2);i++){detect(dtmf,800*i);//信號(hào)的識(shí)別檢測(cè)} return;}//延遲子程序voiddelay(intperiod){inti,j;for(i=0;i<period;i++){for(j=0;j<period>>1;j++);}}//雙音信號(hào)產(chǎn)生子程序voidgenerate(floatdtmf[],intstart,intnum[],intm){ floatx=0,y=0,z=0; intj;//模擬數(shù)字頻率的轉(zhuǎn)換。 x=freq[num[m]][0]/8000*2*pi;//低頻音與采樣頻率之比。 y=freq[num[m]][1]/8000*2*pi;//高頻音與采樣頻率之比。 for(j=1;j<=400;j++)//設(shè)產(chǎn)生信號(hào)的持續(xù)時(shí)間為100ms,所以j為400。 { z=sin(x*j)+sin(y*j);//DTMF信號(hào)為一個(gè)高頻音和一個(gè)低頻音的組合。dtmf[start+j-1]=z;//采樣值的裝入,前四百個(gè)點(diǎn)為雙音信號(hào)采樣值,dtmf[start+j-1+400]=0;//后四百個(gè)點(diǎn)為0(即靜音信號(hào))。 }}//信號(hào)識(shí)別子程序voiddetect(floatdtmf[],intstart){inti,j,x,y;charch;floatw[8],b[8][3],result[8];w[0]=2*cos(2*pi*18/205); w[1]=2*cos(2*pi*20/205); w[2]=2*cos(2*pi*22/205); w[3]=2*cos(2*pi*24/205); w[4]=2*cos(2*pi*31/205); w[5]=2*cos(2*pi*34/205); w[6]=2*cos(2*pi*37/205); w[7]=2*cos(2*pi*42/205); for(i=0;i<8;i++)//i表示有8個(gè)頻率點(diǎn)。 { b[i][0]=0; b[i][1]=0; for(j=1;j<=205;j++) { b[i][2]=w[i]*b[i][1]-b[i][0]+dtmf[start+j-1];//DFT在8個(gè)頻率點(diǎn)的值 b[i][0]=b[i][1];//迭代算法 b[i][1]=b[i][2]; } result[i]=b[i][1]*b[i][1]+b[i][0]*b[i][0]-w[i]*b[i][1]*b[i][0];//每一段的8個(gè)頻率點(diǎn) }的幅度平方值 j=0;for(i=0;i<8;i++){if(result[i]>300)//對(duì)result中的值進(jìn)行檢測(cè),與300比較{//當(dāng)超過(guò)300時(shí),判斷此頻率點(diǎn)上信號(hào)存在 j++; printf("dtmf[%d]:%f\r\n",i,result[i]); if(j==1)//j=1時(shí)i的值賦給x,代表低頻的信息 { x=i; } elseif(j==2)//j=2時(shí)i的值賦給y,代表高頻的信息 { y=i; }}}ch='e';if(j==2){ if(x==0&&y==4)//若x=0,y=4,則表示低頻為697Hz,高頻為1209Hz { ch='1';//這兩個(gè)頻率所對(duì)應(yīng)的數(shù)為1 } elseif(x==0&&y==5)//若x=0,y=5,則表示低頻為697Hz,高頻為1336Hz { ch='2';//這兩個(gè)頻率所對(duì)應(yīng)的數(shù)為2 } elseif(x==0&&y==6)//以下都依次類推 { ch='3'; } elseif(x==1&&y==4) { ch='4'; } elseif(x==1&&y==5) { ch='5'; } elseif(x==1&&y==6) { ch='6'; } elseif(x==2&&y==4) { ch='7'; } elseif(x==2&&y==5) { ch='8'; } elseif(x==2&&y==6) { ch='9'; } elseif(x==3&&y==5) { ch='0'; } elseif(x==3&&y==4) { ch='*'; } elseif(x==3&&y==6) { ch='#'; } elseif(x==0&&y==7) { ch='A'; } elseif(x==1&&y==7) { ch='B'; } elseif(x==2&&y==7) { ch='C'; } elseif(x==3&&y==7) { ch='D'; }}if(ch!='e')//滿足以上一種情況,則輸出檢測(cè)的信號(hào) { printf("TheDTMFsignalis\"%c\".\r\n",ch); }else//以上情況都不滿足,則輸出錯(cuò)誤信息提示{printf("Thenumberinputtediniswrong!\n");}}五、CCS5000程序調(diào)試1、編譯過(guò)程、工程架構(gòu)、編譯環(huán)境設(shè)置1)創(chuàng)建新的工程2)向工程中添加文件從Project/AddFilestoProject,分別選擇DTMF.c,5402.cmd(這個(gè)文件將片段映射到存儲(chǔ)器中),rts.lib(這個(gè)庫(kù)提供目標(biāo)DSP運(yùn)行時(shí)間支持(runtime-support))等文件。.h文件將出現(xiàn)在ProjectView窗中的Libraries文件夾。頭文件不能手動(dòng)添加,自動(dòng)到:當(dāng)前目錄(源文件所在)或預(yù)編譯器的“includeSearchPath(-i)”option所指定的位置。顯示頭文件:Project—>showDependencies.右擊dtmf.pjt,選擇ScanAllDependencies.3)編譯與運(yùn)行程序選擇Project/RebuildAll或單擊(RebuildAll)菜單條按鈕,CCS重新進(jìn)行編輯、匯編、連接工程里的所有文件。得到結(jié)果:選擇File/LoadProgram.選中dtmf.out,并按Open。CCS將程序裝載到目標(biāo)DSP上,打開(kāi)顯示程序仿匯編指令的Disassembly窗口。選擇Debug/GoMain。從主程序開(kāi)始執(zhí)行程序執(zhí)行過(guò)程需輸入數(shù)據(jù)2、程序運(yùn)行結(jié)果及圖像:觀察信號(hào)時(shí)域圖觀察信號(hào)頻域圖信號(hào)檢測(cè)輸出六、實(shí)驗(yàn)總結(jié)及感想:通過(guò)此次DSP課程設(shè)計(jì),使我對(duì)上課學(xué)過(guò)的知識(shí)有了進(jìn)一步的認(rèn)識(shí)。DTMF信號(hào)是我們?nèi)粘I钪薪?jīng)常接觸到的,即電話撥
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軸承裝配工安全知識(shí)競(jìng)賽能力考核試卷含答案
- 飛機(jī)外勤彈射救生工崗前健康知識(shí)考核試卷含答案
- 井下特種裝備操作工成果轉(zhuǎn)化模擬考核試卷含答案
- 2025年記憶綿家居制品合作協(xié)議書(shū)
- 學(xué)生綜合實(shí)踐活動(dòng)請(qǐng)假條
- 2025年變頻器柜體系統(tǒng)合作協(xié)議書(shū)
- 2025年節(jié)能、高效干燥設(shè)備項(xiàng)目合作計(jì)劃書(shū)
- 中國(guó)古購(gòu)物中心行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 信息和信息技術(shù)
- 人力資源部工作總結(jié)和計(jì)劃
- 門窗維修協(xié)議合同范本
- 子宮肌瘤課件超聲
- 2025年異丙醇行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長(zhǎng)策略研究報(bào)告
- 出租車頂燈設(shè)備管理辦法
- DB11∕T 637-2024 房屋結(jié)構(gòu)綜合安全性鑒定標(biāo)準(zhǔn)
- 2025年新疆中考數(shù)學(xué)真題試卷及答案
- 2025屆新疆烏魯木齊市高三下學(xué)期三模英語(yǔ)試題(解析版)
- DB3210T1036-2019 補(bǔ)充耕地快速培肥技術(shù)規(guī)程
- 統(tǒng)編版語(yǔ)文三年級(jí)下冊(cè)整本書(shū)閱讀《中國(guó)古代寓言》推進(jìn)課公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 《顧客感知價(jià)值對(duì)綠色酒店消費(fèi)意愿的影響實(shí)證研究-以三亞S酒店為例(附問(wèn)卷)15000字(論文)》
- 勞動(dòng)仲裁申請(qǐng)書(shū)電子版模板
評(píng)論
0/150
提交評(píng)論