題目2:雙音多頻(DTMF)信號_第1頁
題目2:雙音多頻(DTMF)信號_第2頁
題目2:雙音多頻(DTMF)信號_第3頁
題目2:雙音多頻(DTMF)信號_第4頁
題目2:雙音多頻(DTMF)信號_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京信息科技大學(xué)數(shù)字信號處理課程設(shè)計實踐報告題目2:雙音多頻(DTMF)信號學(xué)院:信息與通信工程學(xué)院專業(yè):電子信息工程學(xué)生姓名:潘俊杰班級/學(xué)號:電信1104/2011010568指導(dǎo)老師:焦瑞莉?qū)W期:大三上學(xué)期11級“數(shù)字信號處理課程設(shè)計”任務(wù)書題目2雙音多頻(DTMF)信號主要內(nèi)容學(xué)習(xí)雙音多頻(DTMF)信號原理,并用MATLAB編程實現(xiàn),加深對DTMF產(chǎn)生和DTMF解碼算法(Goertzel算法)的理解。設(shè)計要求基于MATLAB語言實現(xiàn)DTMF信號產(chǎn)生與解碼運算過程。實現(xiàn)雙音多頻信號產(chǎn)生函數(shù),它接收含有撥號數(shù)字的一個數(shù)組,并產(chǎn)生在8kHz采樣頻率下每個數(shù)字半秒持續(xù)期的適當(dāng)聲音信號。實現(xiàn)基于Goertzel算法的解碼函數(shù),它接收一個DTMF信號并產(chǎn)生含有撥號數(shù)字的一個數(shù)組。主要儀器設(shè)備1、計算機1臺,安裝MATLAB軟件主要參考文獻[美]維納.K.恩格爾,約翰.G.普羅科斯著,劉樹棠譯.數(shù)字信號處理——使用MATLAB[M].西安:西安交通大學(xué)出版社,2002.課程設(shè)計進度計劃(起止時間、工作內(nèi)容)本課程設(shè)計共安排5個題目,這是其中題目之一。整個課程設(shè)計共24學(xué)時,分1.5周安排,具體進度如下:4學(xué)時復(fù)習(xí)題目相關(guān)知識,掌握實現(xiàn)的原理;12學(xué)時用MATLAB語言實現(xiàn)題目要求;4學(xué)時進一步完善功能,現(xiàn)場檢查、答辯;4學(xué)時完成課程設(shè)計報告。課程設(shè)計開始日期2013.12.23課程設(shè)計完成日期2014.1.2課程設(shè)計實驗室名稱電子信息技術(shù)實驗室地點實驗樓3-501、503資料下載地址—

摘要:本論文為雙音多頻(DTMF)信號原理的介紹,并用MATLAB編程實現(xiàn),模擬輸入號碼并引用Goertzel算法檢測輸出結(jié)果目錄一、原理介紹 5二、內(nèi)容及結(jié)論 51、雙音多頻(DTMF)信號的組成 52、電話中的雙音多頻(DTMF)信號的產(chǎn)生與檢測 6(1)雙音多頻信號的產(chǎn)生 6(2)基于Goertzel算法的雙音多頻信號檢測 63、MATLAB工具箱函數(shù)goertzel 74、檢測DTMF信號的DFT參數(shù)選擇 7(1)、頻譜分析的分辨率。 8(2)、頻譜分析的頻率范圍 8(3)、檢測頻率的準(zhǔn)確性 8三、仿真程序運行結(jié)果 101、程序段: 102、運行結(jié)果: 12(1)時域圖: 12(2)頻幅圖: 13(3)結(jié)果顯示截圖: 13四、總結(jié) 14一、原理介紹雙音多頻(DualToneMultiFrequency,DTMF)信號是音頻電話中的撥號信號,由美國AT&T貝爾公司實驗室研制,并用于電話網(wǎng)絡(luò)中。這種信號制式具有很高的撥號速度,且容易自動監(jiān)測識別,很快就代替了原有的用脈沖計數(shù)方式的撥號制式。這種雙音多頻信號制式不僅用在電話網(wǎng)絡(luò)中,還可以用于傳輸十進制數(shù)據(jù)的其它通信系統(tǒng)中,用于電子郵件和銀行系統(tǒng)中。這些系統(tǒng)中用戶可以用電話發(fā)送DTMF信號選擇語音菜單進行操作。DTMF信號系統(tǒng)是一個典型的小型信號處理系統(tǒng),它要用數(shù)字方法產(chǎn)生模擬信號并進行傳輸,其中還用到了D/A變換器;在接收端用A/D變換器將其轉(zhuǎn)換成數(shù)字信號,并進行數(shù)字信號處理與識別。為了系統(tǒng)的檢測速度并降低成本,還開發(fā)一種特殊的DFT算法,稱為戈澤爾(Goertzel)算法,這種算法既可以用硬件(專用芯片)實現(xiàn),也可以用軟件實現(xiàn)。下面首先介紹雙音多頻信號的產(chǎn)生方法和檢測方法,包括戈澤爾算法,最后進行模擬實驗。二、內(nèi)容及結(jié)論1、雙音多頻(DTMF)信號的組成在電話中,數(shù)字0~9的中每一個都用兩個不同的單音頻傳輸,所用的8個頻率分成高頻帶和低頻帶兩組,低頻帶有四個頻率:679Hz,770Hz,852Hz和941Hz;高頻帶也有四個頻率:1209Hz,1336Hz,1477Hz和1633Hz.。每一個數(shù)字均由高、低頻帶中各一個頻率構(gòu)成,例如1用697Hz和1209Hz兩個頻率,信號用表示,其中,。這樣8個頻率形成16種不同的雙頻信號。具體號碼以及符號對應(yīng)的頻率如表1所示。表中最后一列在電話中暫時未用。表1雙頻撥號的頻率分配列行1209Hz1336Hz1477Hz1633Hz697Hz123A770Hz456B852Hz789C942Hz*0#DDTMF信號在電話中有兩種作用,一個是用撥號信號去控制交換機接通被叫的用戶電話機,另一個作用是控制電話機的各種動作,如播放留言、語音信箱等。2、電話中的雙音多頻(DTMF)信號的產(chǎn)生與檢測(1)雙音多頻信號的產(chǎn)生假設(shè)時間連續(xù)的DTMF信號用表示,式中是按照表1選擇的兩個頻率,代表低頻帶中的一個頻率,代表高頻帶中的一個頻率。顯然采用數(shù)字方法產(chǎn)生DTMF信號,方便而且體積小。下面介紹采用數(shù)字方法產(chǎn)生DTMF信號。規(guī)定用8KHz對DTMF信號進行采樣,采樣后得到時域離散信號為形成上面序列的方法有兩種,即計算法和查表法。用計算法求正弦波的序列值容易,但實際中要占用一些計算時間,影響運行速度。查表法是預(yù)先將正弦波的各序列值計算出來,寄存在存儲器中,運行時只要按順序和一定的速度取出便可。這種方法要占用一定的存儲空間,但是速度快。因為采樣頻率是8000Hz,因此要求每125ms輸出一個樣本,得到的序列再送到D/A變換器和平滑濾波器,輸出便是連續(xù)時間的DTMF信號。DTMF信號通過電話線路送到交換機。(2)基于Goertzel算法的雙音多頻信號檢測在接收端,要對收到的雙音多頻信號進行檢測,檢測兩個正弦波的頻率是多少,以判斷所對應(yīng)的十進制數(shù)字或者符號。顯然這里仍然要用數(shù)字方法進行檢測,因此要將收到的時間連續(xù)DTMF信號經(jīng)過A/D變換,變成數(shù)字信號進行檢測。檢測的方法有兩種,一種是用一組濾波器提取所關(guān)心的頻率,根據(jù)有輸出信號的2個濾波器判斷相應(yīng)的數(shù)字或符號。另一種是用DFT(FFT)對雙音多頻信號進行頻譜分析,由信號的幅度譜,判斷信號的兩個頻率,最后確定相應(yīng)的數(shù)字或符號。當(dāng)檢測的音頻數(shù)目較少時,用濾波器組實現(xiàn)更合適。FFT是DFT的快速算法,但當(dāng)DFT的變換區(qū)間較小時,F(xiàn)FT快速算法的效果并不明顯,而且還要占用很多內(nèi)存,因此不如直接用DFT合適。下面介紹Goertzel算法,這種算法的實質(zhì)是直接計算DFT的一種線性濾波方法。這里略去Goertzel算法的介紹,可以直接調(diào)用MATLAB信號處理工具箱中戈澤爾算法的函數(shù)Goertzel,計算N點DFT的幾個感興趣的頻點的值。3、MATLAB工具箱函數(shù)goertzelGoerztel函數(shù)的調(diào)用格式為:Xgk=goertzel(xn,K)xn是被變換的時域序列,用于DTMF信號檢測時,xn就是DTMF信號的205個采樣值。K是要求計算的DFT[xn]的頻點序號向量,用N表示xn的長度,則要求1≤K≤N。由表2可知,如果只計算DTMF信號8個基頻時,K=[18,20,22,24,31,34,38,42],如果同時計算8個基頻及其二次諧波時,K=[18,20,22,24,31,34,35,38,39,42,43,47,61,67,74,82]。Xgk是變換結(jié)果向量,其中存放的是由K指定的頻率點的DFT[x(n)]的值。設(shè)X(k)=DFT[x(n)],則。4、檢測DTMF信號的DFT參數(shù)選擇用DFT檢測模擬DTMF信號所含有的兩個音頻頻率,是一個用DFT對模擬信號進行頻譜分析的問題。根據(jù)第三章用DFT對模擬信號進行譜分析的理論,確定三個參數(shù):(1)采樣頻率,(2)DFT的變換點數(shù)N,(3)需要對信號的觀察時間的長度。這三個參數(shù)不能隨意選取,要根據(jù)對信號頻譜分析的要求進行確定。這里對信號頻譜分析也有三個要求:(1)頻率分辨率,(2)譜分析的頻譜范圍,(3)檢測頻率的準(zhǔn)確性。(1)、頻譜分析的分辨率。觀察要檢測的8個頻率,相鄰間隔最小的是第一和第二個頻率,間隔是73Hz,要求DFT最少能夠分辨相隔73Hz的兩個頻率,即要求。DFT的分辨率和對信號的觀察時間有關(guān),。考慮到可靠性,留有富裕量,要求按鍵的時間大于40ms。(2)、頻譜分析的頻率范圍要檢測的信號頻率范圍是697~1633Hz,但考慮到存在語音干擾,除了檢測這8個頻率外,還要檢測它們的二次倍頻的幅度大小,波形正常且干擾小的正弦波的二次倍頻是很小的,如果發(fā)現(xiàn)二次諧波很大,則不能確定這是DTMF信號。這樣頻譜分析的頻率范圍為697~3266Hz。按照采樣定理,最高頻率不能超過折疊頻率,即,由此要求最小的采樣頻率應(yīng)為7.24KHz。因為數(shù)字電話總系統(tǒng)已經(jīng)規(guī)定=8KHz,因此對頻譜分析范圍的要求是一定滿足的。按照,=8KHz,算出對信號最少的采樣點數(shù)為。(3)、檢測頻率的準(zhǔn)確性這是一個用DFT檢測正弦波頻率是否準(zhǔn)確的問題。序列的N點DFT是對序列頻譜函數(shù)在0~區(qū)間的N點等間隔采樣,如果是一個周期序列,截取周期序列的整數(shù)倍周期,進行DFT,其采樣點剛好在周期信號的頻率上,DFT的幅度最大處就是信號的準(zhǔn)確頻率。分析這些DTMF信號,不可能經(jīng)過采樣得到周期序列,因此存在檢測頻率的準(zhǔn)確性問題。DFT的頻率采樣點頻率為(k=0,1,2,,N-1),相應(yīng)的模擬域采樣點頻率為(k=0,1,2,,N-1),希望選擇一個合適的N,使用該公式算出的能接近要檢測的頻率,或者用8個頻率中的任一個頻率代入公式中時,得到的k值最接近整數(shù)值,這樣雖然用幅度最大點檢測的頻率有誤差,但可以準(zhǔn)確判斷所對應(yīng)的DTMF頻率,即可以準(zhǔn)確判斷所對應(yīng)的數(shù)字或符號。經(jīng)過分析研究認(rèn)為N=205是最好的。按照=8KHz,N=205,算出8個頻率及其二次諧波對應(yīng)k值,和k取整數(shù)時的頻率誤差見表2。表28個基頻Hz最近的整數(shù)k值DFT的k值絕對誤差二次諧波Hz對應(yīng)的k值最近的整數(shù)k值絕對誤差69717.861180.139139435.024350.02477019.531200.269154038.692390.30885221.833220.167170442.813430.18794124.113240.113188247.285470.285120930.981310.019241860.752610.248133634.235340.235267267.134670.134147737.848380.152295474.219740.219163341.846420.154326682.058820.058通過以上分析,確定=8KHz,N=205,。三、仿真程序運行結(jié)果DTMF信號的產(chǎn)生與識別仿真實驗在MATLAB環(huán)境下進行,編寫仿真程序,運行程序,送入任意位電話號碼,程序自動產(chǎn)生每一位號碼數(shù)字相應(yīng)的DTMF信號,并送出雙頻聲音,再用DFT進行譜分析,顯示每一位號碼數(shù)字的DTMF信號的DFT幅度譜,安照幅度譜的最大值確定對應(yīng)的頻率,再安照頻率確定每一位對應(yīng)的號碼數(shù)字,最后輸出電話號碼。1、程序段:程序清單如下:%DTMF雙頻撥號信號的生成clearall;clc;closeall;zr=['1','2','3','A';'4','5','6','B';'7','8','9','C';'*','0','#','D'];tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68];%DTMF信號代表的16個數(shù)的ASCII碼N=205;K=[18,20,22,24,31,34,38,42];TN=input('請撥號=','s');%輸入任意位號碼len=length(TN);f1=[697,770,852,941];%行頻率向量f2=[1209,1336,1477,1633];%列頻率向量fori=1:lenb(i)=abs(TN(i));forp=1:4;forq=1:4;iftm(p,q)==b(i);break,end%檢測碼相符的列號qendiftm(p,q)==b(i);break,end%檢測碼相符的列號pendZr(i)=zr(p,q);n=0:1023;%為了發(fā)聲,加長序列x(:,i)=sin(2*pi*n*f1(p)/8000)+sin(2*pi*n*f2(q)/8000);%構(gòu)成雙頻信號%zr1(i)=p;(此處為原來的錯誤,注釋掉)%zr2(i)=q;(此處為原來的錯誤,注釋掉)figure(1)r=ceil(len/2);subplot(r,2,i);plot(x(:));grid;title(sprintf('字符%c的時域圖',Zr(i)));xlabel('n');ylabel('時域x');pause(0.3)endsound(x(:),8000);%發(fā)出聲音%DTMF雙頻撥號信號的檢測fori=1:lenh=x(:,i);%x=sin(2*pi*n*f1(zr1(i))/8000)+sin(2*pi*n*f2(zr2(i))/8000);(此處為原來的錯誤,注釋掉)X=goertzel(h(1:N),K+1);%用Goertzel算法計算八點DFT樣本val=abs(X);%列出八點DFT向量limit=80;fors=5:8;ifval(s)>limit,break,end%查找列號endforr=1:4;ifval(r)>limit,break,end%查找行號endTNr(i)=zr(r,s-4);figure(2)r=ceil(len/2);subplot(r,2,i);stem(K,val,'.');grid;title(sprintf('字符%c的幅頻響應(yīng)',TNr(i)));xlabel('k');ylabel('|X(k)|');%畫出8點DFT幅度axis([10500120])enddisp('接收到號碼是:')%顯示接收到的字符disp(TNr)2、運行結(jié)果:(1)、運行程序,根據(jù)提示鍵入號碼840310#A,然后回車。(2)、回車后可以聽見這幾位電話號碼對應(yīng)的DTMF信號的聲音,并輸出相應(yīng)的時域圖、頻譜圖跟結(jié)果顯示圖如下圖所示。(3)、左上角的第一個圖在k=22和k=34兩點出現(xiàn)峰值,所以對應(yīng)第

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論