雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)_第1頁(yè)
雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)_第2頁(yè)
雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)_第3頁(yè)
雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)_第4頁(yè)
雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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)介

-.z雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn)小組成員:郭亮寧憲李創(chuàng)*恒宇*明超王卓墨書銘莫磊2011-4-5目錄雙音多頻DTMF技術(shù)在DSP系統(tǒng)的實(shí)現(xiàn) 1abstract 3雙音多頻 4DDTMF在VOIP中的解決方案 4OutofBandDTMF(RFC2833) 51、DTMF信號(hào)的產(chǎn)生 72DTMF信號(hào)的檢測(cè) 82.2DTMF檢測(cè)器流程 83性能分析 8參考 9abstractDualtonemulti-frequencysignals(DTMF),telephonesystem,telephoneandtheswitchsignalingbetweenauser,usuallyusedtosendthecallednumber.Intheuseofdualtonemulti-frequencysignalbeforethetelephonesystemusingaseriesofintermittentpulsestotransmitthecallednumber,knownaspulsedialing.Sentsimultaneouslytothetwotelephoneswitchfrequencysignal,sendingkeymessages.Atotalofeightfrequencyaudiosignalisdividedinto2groupsof4,anytwobinationscanrepresentatotalof16keys,eachrepresenting0-9,*,*,etc.buttons.雙音多頻雙音多頻DTMF〔DualToneMultiFrequency〕信令,逐漸在全世界*圍內(nèi)使用在按鍵式機(jī)上,因其提供更高的撥號(hào)速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤式機(jī)使用的撥號(hào)脈沖信令。近年來(lái)DTMF也應(yīng)用在交互式控制中,諸如語(yǔ)言菜單、語(yǔ)言、銀行和ATM終端等。通過(guò)軟件產(chǎn)生與檢測(cè)DTMF信令,是一項(xiàng)較有價(jià)值的工程應(yīng)用。這是一種技術(shù),就是現(xiàn)在的機(jī)和交換機(jī)之間通訊時(shí)采用的,簡(jiǎn)稱DTMF,就是機(jī)上的一個(gè)按鍵按下去時(shí),機(jī)向交換機(jī)同時(shí)發(fā)送兩個(gè)頻率的信號(hào),告訴交換機(jī)按的是哪個(gè)按鍵,以前采用脈沖方式,速度慢,一共有8個(gè)頻率的音頻信號(hào),分為2組,每組4個(gè),兩兩組合共可以代表16個(gè)按鍵,分別代表0-9、*、*等按鍵這是一種技術(shù),就是現(xiàn)在的機(jī)和交換機(jī)之間通訊時(shí)采用的,簡(jiǎn)稱DTMF,就是機(jī)上的一個(gè)按鍵按下去時(shí),機(jī)向交換機(jī)同時(shí)發(fā)送兩個(gè)頻率的信號(hào),告訴交換機(jī)按的是哪個(gè)按鍵,以前采用脈沖方式,速度慢,一共有8個(gè)頻率的音頻信號(hào),分為2組,每組4個(gè),兩兩組合共可以代表16個(gè)按鍵,分別代表0-9、*、*等按鍵雙音多頻打個(gè)比方,你查費(fèi)的時(shí)候會(huì)用到,有發(fā)送和不發(fā)送兩個(gè)選項(xiàng),發(fā)送翻開(kāi),你通話過(guò)程中按鍵會(huì)發(fā)送出去,關(guān)閉則發(fā)送不出去,即你按提示音操作沒(méi)反響。雙音多頻DTMF〔DualToneMulti-Frequency〕信令雙音多頻DTMF〔DualToneMulti-Frequency〕信令,逐漸在全世界*圍內(nèi)使用在按鍵式機(jī)上,因其提供更高的撥號(hào)速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤式機(jī)使用的撥號(hào)脈沖信令。近年來(lái)DTMF也應(yīng)用在交互式控制中,諸如語(yǔ)言菜單、語(yǔ)言、銀行和ATM終端等。將DTMF信令的產(chǎn)生與檢測(cè)集成到任一含有數(shù)字信號(hào)處理器(DSP)的系統(tǒng)中,是一項(xiàng)較有價(jià)值的工程應(yīng)用。DDTMF在VOIP中的解決方案由于在IP網(wǎng)中的通信傳輸是采用包交換〔packetswitch〕而不是傳統(tǒng)領(lǐng)域中的線路交換〔circuitswitch〕以及IP網(wǎng)的不穩(wěn)定的特性,DTMF在VOIP中應(yīng)用的解決方案和傳統(tǒng)有所不同,并且暫時(shí)還未統(tǒng)一,有多種解決方案。下面簡(jiǎn)單介紹現(xiàn)有的各種方案。用SIP信令的INFO方法攜帶DTMF信號(hào)。該方法是用SIP信令的INFO方法來(lái)明文定義來(lái)代表DTMF信號(hào)。該種方法還在研究討論當(dāng)中,有專家認(rèn)為其并不適用,主要缺陷是因?yàn)镾IP控制信令和媒體傳輸〔RTP〕是分開(kāi)傳輸,很容易造成DTMF信號(hào)和媒體包不同步。簡(jiǎn)單舉個(gè)例子,在VoiceMail應(yīng)用中,用戶根據(jù)提示音輸入一個(gè)DTMF信號(hào),隨后開(kāi)場(chǎng)留言。Server是在承受到該DTMF信號(hào)后開(kāi)場(chǎng)保存用戶的留言。然而由于DTMF信號(hào)是通過(guò)SIP信令來(lái)傳輸?shù)?,而媒體流是通過(guò)RTP來(lái)傳輸?shù)?,有可能用戶留言的RTP包先到,而該DTMF信號(hào)的INFO消息延遲,導(dǎo)致Server不保存用戶的語(yǔ)音留言直至承受到INFO消息。在RTP媒體傳輸中攜帶DTMF信號(hào)。該方法是將DTMF信號(hào)和媒體流一樣,用RTP包來(lái)傳輸,因而沒(méi)有DTMF信號(hào)和媒體流不同步的問(wèn)題,使用H323信令的VOIP就是采用該種方法,相對(duì)來(lái)說(shuō)比擬成熟。而其中又分Inband和Outofband〔RFC2833〕兩種。InBandDTMF是指直接將DTMF的音頻數(shù)字信號(hào)不經(jīng)任何處理直接打成RTP包在IP網(wǎng)中傳輸。其中可能和用戶的語(yǔ)音媒體流混合〔mi*〕在一起傳輸。程序要獲知哪個(gè)包有DTMF信號(hào),是什么DTMF信號(hào),必須實(shí)時(shí)檢查每個(gè)RTP包里面的媒體流數(shù)據(jù),分析它的頻域。OutofBandDTMF(RFC2833)OutofBandDTMF是DTMF信號(hào)用專門的RTP包進(jìn)展標(biāo)識(shí),在RTP包的頭域中就可得知該包是DTMF包,并且知道是什么DTMF信號(hào)。RFC2833專門對(duì)此有定義。動(dòng)態(tài)生成DTMF音頻信號(hào)當(dāng)程序需要產(chǎn)生一個(gè)DTMF音頻數(shù)字信號(hào)時(shí),當(dāng)然可以讀取已經(jīng)錄制好的文件。在這里介紹如何利用算法程序動(dòng)態(tài)產(chǎn)生單個(gè)DTMF音頻數(shù)字信號(hào)。前面介紹過(guò)DTMF信號(hào)的原理是兩個(gè)不同頻率的正弦波疊加。簡(jiǎn)單的生成正弦波的公式:sample=sin(n*2*PI*f/samplerate)n:采樣序數(shù),由0開(kāi)場(chǎng)遞增f:正弦波的頻率samplerate:采樣頻率sample:序數(shù)n時(shí)的得出的采樣值如果要生成一個(gè)采樣頻率是8000hz,采樣位是8bit的DTMF信號(hào),則公式:sample(n)=128+63*sin(n*2*pi*f1/8000)+63*sin(n*2*pi*f2/8000)f1和f2分別是該DTMF信號(hào)的兩個(gè)正弦波頻率其中128=256/263=128/2–1同樣地,如果要生成16bit的DTMF信號(hào),則公式:sample(n)=32768+16383*sin(n*2*pi*f1/8000)+16383*sin(n*2*pi*f2/8000)計(jì)算DTMF信號(hào)是一個(gè)消耗資源的過(guò)程,你可以通過(guò)不同途徑去優(yōu)化你的代碼,最簡(jiǎn)單的是預(yù)先計(jì)算好2*pi*f1和2*pi*f2的值,減少CPU的計(jì)算時(shí)間。關(guān)于DTMF信號(hào)的時(shí)間間隔,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í)間為靜音,以便區(qū)別連續(xù)的兩個(gè)按鍵信號(hào)。根據(jù)RTP包中的音頻信號(hào)檢測(cè)DTMF信號(hào)在輸入信號(hào)中檢測(cè)DTMF信號(hào),并將其轉(zhuǎn)換為實(shí)際的數(shù)字,這一解碼過(guò)程本質(zhì)是連續(xù)的過(guò)程,需要在輸入的數(shù)據(jù)信號(hào)流中連續(xù)地搜索DTMF信號(hào)頻譜的存在。整個(gè)檢測(cè)過(guò)程分兩步:首先采用Goertzel算法在輸入信號(hào)中提取頻譜信息;接著作檢測(cè)結(jié)果的有效性檢查Goertzel算法DTMF解碼即是在輸入信號(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)中提取頻譜信息。DTMF編解碼器在編碼時(shí)將擊鍵或數(shù)字信息轉(zhuǎn)換成雙音信號(hào)并發(fā)送,解碼時(shí)在收到的DTMF信號(hào)中檢測(cè)擊鍵或數(shù)字信息的存在性。機(jī)鍵盤上每一個(gè)鍵通過(guò)由圖1所示的行頻與列頻唯一確定。DTMF的編解碼方案無(wú)需過(guò)多的計(jì)算量,可以很容易DSP系統(tǒng)里與其他任務(wù)并發(fā)執(zhí)行。一個(gè)DTMF信號(hào)由兩個(gè)頻率的音頻信號(hào)疊加構(gòu)成。這兩個(gè)音頻信號(hào)的頻率來(lái)自兩組預(yù)分配的頻率組:行頻組或列頻組。每一對(duì)這樣的音頻信號(hào)唯一表示一個(gè)數(shù)字或符號(hào)。為了產(chǎn)生DTMF信號(hào),DSP用軟件產(chǎn)生兩個(gè)正弦波疊加在一起后發(fā)送,解碼時(shí)DSP則采用改良的Goertzel算法,從頻域搜索兩個(gè)正弦波的存在。本文即討論DTMF編解碼在TI公司定點(diǎn)DSP芯片TMS320C54*〔以下簡(jiǎn)稱為C54*〕系列上的實(shí)現(xiàn)。1、DTMF信號(hào)的產(chǎn)生DTMF編碼器基于兩個(gè)二階數(shù)字正弦波振蕩器,一個(gè)用于產(chǎn)生行頻,一個(gè)用于產(chǎn)生列頻。向DSP裝入相應(yīng)的系數(shù)和初始條件,就可以只用兩個(gè)振蕩器產(chǎn)生所需的八個(gè)音頻信號(hào)。典型的DTMF信號(hào)頻率*圍是700~1700Hz,選取8000Hz作為采樣頻率,即可滿足Nyquist條件??梢缘玫皆摱A系統(tǒng)函數(shù)的差分方程為:y(n)=-a1y(n-1)-a2y(n-2)(1)其中a1=-2cosω0a2=1,ω0=2πf0/fs,fs為采樣頻率,f0為輸出正弦波的頻率,A為輸出正弦波的幅度。該式初值為y(-1)=0,y(-2)=-Asinω0。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í)間為靜音,以便區(qū)別連續(xù)的兩個(gè)按鍵信號(hào)。編程的流程如圖3所示,由CCITT的規(guī)定,數(shù)字之間必須有適當(dāng)長(zhǎng)度的靜音,因此編碼器有兩個(gè)任務(wù),其一是音頻信號(hào)任務(wù),產(chǎn)生雙音樣本,其二是靜音任務(wù),產(chǎn)生靜音樣本。每個(gè)任務(wù)完畢后,啟動(dòng)下一個(gè)任務(wù)前〔音頻信號(hào)任務(wù)或靜音任務(wù)〕,都必須復(fù)位決定其持續(xù)時(shí)間的定時(shí)器變量。在靜音任務(wù)完畢后,DSP從數(shù)字緩存中調(diào)出下一個(gè)數(shù)字,判決該數(shù)字信號(hào)所對(duì)應(yīng)的行頻和列頻信號(hào),并根據(jù)不同頻率確定其初始化參數(shù)a1=-2cosω0與y(-2)=-Asinω0。該流程圖可采用C語(yǔ)言實(shí)現(xiàn),雙音信號(hào)的產(chǎn)生則由54*匯編代碼實(shí)現(xiàn)。整個(gè)程序作為C54*的多通道緩沖串口〔McBsp〕的發(fā)射串口中斷效勞子程序,由外部送入的8000Hz串口時(shí)鐘觸發(fā)中斷,可實(shí)時(shí)處理并通過(guò)D/A轉(zhuǎn)換器輸出DTMF信令信號(hào)。2DTMF信號(hào)的檢測(cè)在輸入信號(hào)中檢測(cè)DTMF信號(hào),并將其轉(zhuǎn)換為實(shí)際的數(shù)字,這一解碼過(guò)程本質(zhì)是連續(xù)的過(guò)程,需要在輸入的數(shù)據(jù)信號(hào)流中連續(xù)地搜索DTMF信號(hào)頻譜的存在。整個(gè)檢測(cè)過(guò)程分兩步:首先采用Goertzel算法在輸入信號(hào)中提取頻譜信息;接著作檢測(cè)結(jié)果的有效性檢查。2.1Goertzel算法DTMF解碼即是在輸入信號(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濾波器,其算法原理框圖如圖4。由于在DTMF檢測(cè)中,輸入的信號(hào)是實(shí)數(shù)序列,并不需要檢測(cè)出8個(gè)行頻/列頻的相位,只需要計(jì)算出其幅度平方即可。2.2DTMF檢測(cè)器流程檢測(cè)流程可參照?qǐng)D5,把檢測(cè)程序作為C54*的McBsp接收中斷效勞子程序,在每一個(gè)接收中斷到來(lái)時(shí),說(shuō)明采到一個(gè)新樣點(diǎn)。樣點(diǎn)值代入式〔2〕,迭代計(jì)算8個(gè)行頻/列頻的中間變量vk(n)〔k為8個(gè)行頻/列頻分別對(duì)應(yīng)的數(shù)字頻率〕,直到采到N=125個(gè)樣點(diǎn)〔在8kHz采樣頻率下,約為15ms〕。此時(shí)再按式〔4〕計(jì)算8個(gè)行頻/列頻的幅度平方|*(k)|2。接下來(lái)將|*(k)|2與門限作比擬,并作二次諧波檢測(cè),判決出有效的音頻信號(hào)。將音頻信號(hào)映射為數(shù)字信號(hào)后,再與上一個(gè)檢測(cè)到的數(shù)字信號(hào)比擬,最終判決出有效的數(shù)字3性能分析基于上述原理與算法代碼,在TI公司的DSP開(kāi)發(fā)環(huán)境CodeposerStudio(CCS)下,分析上述整個(gè)DTMF信令的產(chǎn)生與檢測(cè)方案的性能?!?〕由CCS給出的如下內(nèi)存印象文件報(bào)告,DTMF的產(chǎn)生〔gen_dtmf.obj〕與DTMF的檢測(cè)〔de_dtmf.obj〕這兩段核心代碼分別占用3e6H和1e0H個(gè)字(16bitword),即約占1K字的存儲(chǔ)器空間,消耗系統(tǒng)資源極低;〔2〕DTMF信令的產(chǎn)生與檢測(cè)程序均放置于C54*的McBSP中斷效勞子程序內(nèi),由CCS的代碼剖析工具分析代碼執(zhí)行時(shí)間,當(dāng)C54*運(yùn)行在主頻100MHz時(shí),DTMF產(chǎn)生中斷效勞子程序interrupttransmit()最大消耗283個(gè)時(shí)鐘周期,即2.83μs,DTMF檢測(cè)中斷效勞子程序interruptreceive()最大消耗6148個(gè)時(shí)鐘周期,約61μs。因此該方案能夠?qū)崟r(shí)產(chǎn)生與檢測(cè)DTMF信令,還可保證有時(shí)間冗余度,與其他程序在用戶系統(tǒng)中并發(fā)執(zhí)行。參考[1]“GeneratingDTMF

溫馨提示

  • 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)論