版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
DTMF在C5400下的實現(xiàn)講演:管慶
主要內(nèi)容DTMF碼的基本原理DTMF碼的產(chǎn)生DTMF碼的檢測
在DSP/BIOS環(huán)境下實現(xiàn)DTMF的產(chǎn)生和解碼
DTMF產(chǎn)生和解碼演示DSP解決方案案例--DTMF雙音多頻DTMF(DualToneMultiFrequency)信令,逐漸在全世界范圍內(nèi)使用在按鍵式電話機上,因其提供更高的撥號速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤式電話機使用的撥號脈沖信令。近年來DTMF也應(yīng)用在交互式控制中,諸如語音菜單、語音郵件、電話銀行和ATM終端等。 DTMF原理DTMF編碼器:基于兩個二階數(shù)字正弦波振蕩器,一個用于產(chǎn)生行頻,一個用于產(chǎn)生列頻,DSP用軟件產(chǎn)生兩個正弦波疊加在一起后發(fā)送。
DTMF解碼器:本質(zhì)是連續(xù)的過程,需要在輸入的數(shù)據(jù)信號流中連續(xù)地搜索DTMF信號頻譜的存在。采用Goertzel算法,這是一種在輸入信號中提取頻譜信息的快速有效方法。DTMF信號的產(chǎn)生
DTMF編碼器基于兩個二階數(shù)字正弦波振蕩器,一個用于產(chǎn)生行頻,一個用于產(chǎn)生列頻。DTMF信號的產(chǎn)生H(Z)含有位于單位圓上的復(fù)共扼極點。另外,沖擊響應(yīng)函數(shù)為:二階系統(tǒng)函數(shù)的差分方程為其中,DTMF信號的產(chǎn)生CCITT對DTMF信號規(guī)定的指標(biāo)是,傳送/接收率為每秒10個數(shù)字,即每個數(shù)字100ms。代表數(shù)字的音頻信號必須持續(xù)至少45ms,但不超過55ms。100ms中的其他時間為靜音,以便區(qū)別連續(xù)的兩個按鍵信號。數(shù)字之間必須有適當(dāng)長度的靜音,因此編碼器有兩個任務(wù),其一是音頻信號任務(wù),產(chǎn)生雙音樣本,其二是靜音任務(wù),產(chǎn)生靜音樣本。DTMF信號的產(chǎn)生啟動下一個任務(wù)前(音頻信號任務(wù)或靜音任務(wù)),都必須復(fù)位定時器變量。因為音頻信號任務(wù)和靜音任務(wù)都通過定時器變量,決定音頻或靜音的持續(xù)時間。在靜音任務(wù)結(jié)束后,從數(shù)字緩存中調(diào)出下一個數(shù)字,判決該數(shù)字信號所對應(yīng)的行頻和列頻信號,并根據(jù)不同頻率確定其初始化參數(shù)整個程序可以置于DSP發(fā)射串口中斷服務(wù)子程序里,由外部送入的8000Hz串口時鐘觸發(fā)中斷,即可實時處理和恒定樣本輸出。DTMF信號的檢測
在輸入信號中檢測DTMF信號,并將其轉(zhuǎn)換為實際的數(shù)字,這一解碼過程本質(zhì)是連續(xù)的過程,需要在輸入的數(shù)據(jù)信號流中連續(xù)地搜索DTMF信號頻譜的存在。整個檢測過程首先要確定檢測算法,這是最重要的一步。采用Goertzel算法,這是一種在輸入信號中提取頻譜信息的快速有效方法。其次作檢測結(jié)果的有效性檢查。收集頻譜信息
DTMF解碼即是在輸入信號中搜索出有效的行頻和列頻。計算數(shù)字信號的頻譜可以采用DFT及其快速算法FFT,而在實現(xiàn)DTMF解碼時,采用Goertzel算法要比FFT更快。通過FFT計算可以得到信號所有譜線,可以了解信號整個頻域信息,而對于DTMF信號只用關(guān)心其8個行頻/列頻及其二次諧波信息即可(二次諧波的信息用于將DTMF信號與聲音信號區(qū)別開)。此時Goertzel算法則具有更優(yōu)的運算效率。(P425)收集頻譜信息Goertzel算法原理框圖收集頻譜信息DFT計算可以等價為另外,在DTMF檢測中,對于輸入的實數(shù)序列并不需要檢測出8個行頻/列頻的相位,只需要計算出其幅度平方即可。有效性檢查確認(rèn)可能的DTMF信號對是否有足夠的強度。程序計算出的行頻/列頻成分高于一定的門限因為語音信號總會含有明顯的8個行頻/列頻的偶次諧波。如果行頻/列頻成分二次諧波和基波成分之比低于一定門限,即可肯定檢測到了代表一個數(shù)字信息的有效DTMF信號對將檢測到的數(shù)字與前面最后一個數(shù)字比較,只有當(dāng)數(shù)字之間是一段靜音信號時,才可判決當(dāng)前的數(shù)字為有效數(shù)字,區(qū)分開兩次按鍵。
DTMF在DSP/BIOS下的實現(xiàn)
已經(jīng)在CCS下完成DTMF碼的產(chǎn)生和解調(diào)。分析實現(xiàn)過程,主要有以下幾個任務(wù):1.
DTMF碼的產(chǎn)生:分雙音與靜音,分別持續(xù)50ms。2.DTMF的解碼運算:每收到一個A/D數(shù)據(jù)的處理并完成DTMF碼的判別。3.A/D及D/A中斷服務(wù)程序:DA完成雙音碼的數(shù)模轉(zhuǎn)換;AD完成數(shù)據(jù)的接收并設(shè)置數(shù)據(jù)到達(dá)標(biāo)志(全局變量)。4.‘AC01芯片的初始化:設(shè)置采樣率等參數(shù),需要使用串口發(fā)送中斷。DSP/BIOS下線程考慮撥號任務(wù):定義周期性模塊(PRD)每5秒運行一次FXN_Dial_Number()函數(shù)。該函數(shù)將需要撥出的號碼緩沖設(shè)置好,初始化全局計數(shù)變量和指針,并開啟串口發(fā)送中斷,開始撥號。撥號緩沖中的數(shù)字為撥出的號碼,0xff表示靜音期,當(dāng)遇到0xffff時,撥號結(jié)束,關(guān)閉串口發(fā)送中斷。注意:FXN_Dial_Number將反復(fù)運行!撥號任務(wù)相關(guān)函數(shù)transmit():
串口發(fā)送中斷服務(wù)函數(shù),并完成對發(fā)送數(shù)據(jù)的計數(shù)以便確定撥號音與靜音的時間。set_freq_coff(NowTel):當(dāng)前撥號數(shù)字所需要的頻率系數(shù)。iir_to_dtmf():根據(jù)前面的頻率系數(shù),產(chǎn)生響應(yīng)的正弦波形。接收任務(wù)的考慮將整個de_dtmf()函數(shù)定義為一個TSK對象(_FXN_TSK_de_dtmf)。該任務(wù)線程由McBSP的接收中斷每收到一個新的數(shù)據(jù)就發(fā)出一個旗語(semaphore)(SEM_New_Sample)觸發(fā)。同時在中斷服務(wù)程序內(nèi)對收到數(shù)據(jù)計數(shù),并使用全局變量IsNew_N,決定是否判斷輸出一個收到的號碼。
接收相關(guān)函數(shù)
de_dtmf():對每個收到的數(shù)據(jù)做DFT,并對N點數(shù)據(jù)做能量累加。receive():接收中斷服務(wù)子程序。choose_code():判斷輸出一個號碼。
init_mem():初始化接收運算的一些變量。該函數(shù)應(yīng)該在FXN_Dial_Number中運行。
初始化AC01的考慮初始化AC01通過串口的發(fā)送中斷,將采樣率、通道設(shè)置等參數(shù)發(fā)到AC01。用匯編代碼完成,并且取代DSP/BIOS的串口發(fā)送中斷,直接完成中斷服務(wù)響應(yīng)。初始化完成后需要恢復(fù),即串口發(fā)送中斷仍然由DSP/BIOS管理,雙音數(shù)據(jù)的發(fā)送程序也是掛接在DSP/BIOS硬件中斷中完成。相關(guān)代碼:
/*ThefollowingcodeareusedtosetupAC01*/C54_plug(20,&_start_ac01);/*changeinterruptvector*/
oldmask=C54_disableIMR(0xffff);/*closeallIMR*/start_ac01();/*indtmf.asm,usedtoinitAC01&McBSP0*/C54_enableIMR(oldmask);/*restoreoldIMR*//*----------EndsetupAC01!-----------------------*/
中斷函數(shù)的插入和打開
DSP/BIOS提供函數(shù)HWI_dispatchPlug(vecid,fxn,attrs)用于中斷服務(wù)函數(shù)的插入。該函數(shù)將使用HWI_dispatch功能,不將函數(shù)fxn直接插入中斷向量表。后者可以使用函數(shù)C54_plug(vecid,fxn)。下面是例子:
#include"DTMF5410_BIOScfg.h"#include<hwi.h>……..HWI_dispatchPlug(20,&pllx100,NULL);C54_enableIMR(0x20);/*#20h:bit5->BXINT0,
bit4->BRINT0,enableBXINT0,其他中斷不影響!*/HWI_enable();……..圖1任務(wù)撥號+解碼任務(wù),采樣頻率f
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度企事業(yè)單位通勤大客車租賃合同范本2篇
- 2025中國郵政集團限公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國航天科工集團光量子技術(shù)及應(yīng)用總體部人才招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國科學(xué)院海洋研究所海洋腐蝕與防護科研財務(wù)助理招聘1人歷年高頻重點提升(共500題)附帶答案詳解
- 智能樓宇照明相關(guān)行業(yè)投資方案
- 2025中國電信股份限公司保山分公司(騰沖電信)招聘13人(云南)高頻重點提升(共500題)附帶答案詳解
- 2025中國電信寧夏公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國核工業(yè)集團限公司校園招聘8000人高頻重點提升(共500題)附帶答案詳解
- 2025中冶華天南京電氣工程技術(shù)限公司招聘10人高頻重點提升(共500題)附帶答案詳解
- 2025下半年湖南岳陽市城市建設(shè)投資集團限公司招聘25人高頻重點提升(共500題)附帶答案詳解
- 行政管理能力提升培訓(xùn)
- 全新聘用項目經(jīng)理勞務(wù)協(xié)議
- 浙江省金華市東陽市 2024 年初中學(xué)業(yè)水平考試模擬試卷 科學(xué)試題
- 【人教版】九年級化學(xué)上冊期末試卷(匯編)
- 中國歷史地理智慧樹知到期末考試答案章節(jié)答案2024年泰山學(xué)院
- 2023年檢驗檢測機構(gòu)質(zhì)量手冊(依據(jù)2023年版評審準(zhǔn)則編制)
- 2023年玻璃廠年終工作總結(jié)
- 專題06 習(xí)作-2023-2024學(xué)年統(tǒng)部編版語文六年級上冊期末備考真題分類匯編
- 水泥企業(yè)的個人年度工作總結(jié)
- 人事管理系統(tǒng)設(shè)計與開發(fā)答辯
- 穩(wěn)定型心絞痛患者的護理-講解
評論
0/150
提交評論