雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案_第1頁
雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案_第2頁
雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案_第3頁
雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案_第4頁
雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

雙音多頻音產(chǎn)生與檢測(cè)的dsp實(shí)現(xiàn)方案

0dtmf編解碼芯片近年來,dtmf已廣泛應(yīng)用于交互式控制中,如電話銀行、電子郵件、自動(dòng)柜員機(jī)終端、遠(yuǎn)程智能家居建設(shè)等。dtmf的生成和檢測(cè)與數(shù)字處理器應(yīng)用程序相結(jié)合,具有很高的研究?jī)r(jià)值。DTMF編解碼由編碼器和解碼器組成。其中,編碼器將按鍵或數(shù)字信息轉(zhuǎn)換成雙音多頻信號(hào),解碼器用于檢測(cè)雙音多頻信號(hào)及其信息內(nèi)容。鍵盤上的每一個(gè)按鍵分別代表一個(gè)雙音頻信號(hào),該雙音頻信號(hào)由按鍵所在的行和列對(duì)應(yīng)的頻率決定。本文采用TMS320C54X芯片,實(shí)現(xiàn)高效的DTMF編解碼方案,提高處理速度,占用內(nèi)存小。同時(shí),搜集到各行列頻率信號(hào)幅度平方形式的頻譜信息后,算法執(zhí)行了一系列測(cè)試以確定音頻和數(shù)字結(jié)果的有效性,并確定有效的DTMF信號(hào)是否滿足貝爾規(guī)定的時(shí)長要求,以符合標(biāo)準(zhǔn)。1系統(tǒng)差分方程的建立DTMF編解碼器的編碼和音頻產(chǎn)生部分基于兩個(gè)可編程的二階數(shù)字正弦振蕩器,其中一個(gè)用于產(chǎn)生行音頻信號(hào),另一個(gè)用于產(chǎn)生列音頻信號(hào)。用兩個(gè)振蕩器而不是8個(gè)利于編碼,可降低編碼規(guī)模。對(duì)于每個(gè)需要編碼的數(shù)字,兩個(gè)振蕩器工作前需賦予適當(dāng)?shù)南禂?shù)和初始條件。典型的DTMF頻率范圍在700~1700Hz之間,如圖1所示。根據(jù)Nyquist定理,以8kHz頻率采樣對(duì)DTMF實(shí)現(xiàn)是可行的。系統(tǒng)差分方程描述如下式所示??梢姵跏紬l件y(-2)決定正弦波的幅度。表1給出了產(chǎn)生DTMF信號(hào)所需的系數(shù)和必要的初始條件。音頻的持續(xù)時(shí)間參數(shù),AT&T規(guī)定最大的數(shù)據(jù)率為每秒10個(gè)數(shù)字,對(duì)應(yīng)每個(gè)鍵100ms的時(shí)隙,實(shí)際音頻持續(xù)時(shí)間至少為45ms,不大于55ms,而在時(shí)隙的剩余時(shí)間內(nèi)音頻發(fā)生器不產(chǎn)生信號(hào)。1.1編碼程序的控制一串鍵盤數(shù)字轉(zhuǎn)換成一串一定時(shí)長的雙音信號(hào),間隔一定時(shí)長的停頓音,稍后再由解碼器從中識(shí)別出相對(duì)應(yīng)的數(shù)字。停頓音對(duì)區(qū)分連續(xù)輸入的兩個(gè)或兩個(gè)以上相同的數(shù)字是必要的。DTMF音編碼器采用緩沖方法,執(zhí)行結(jié)果為數(shù)據(jù)幀,形成連續(xù)的數(shù)據(jù)流。每幀15ms或120個(gè)樣值,包含雙音樣值或停頓音樣值。程序流程由一組變量控制,變量encStatus代表編碼器的當(dāng)前狀態(tài),編碼器可處于閑置模式,即不對(duì)數(shù)字編碼,或處于激活模式,產(chǎn)生一定時(shí)長的雙音和停頓音。雙音和停頓音的時(shí)長由變量toneTime和pauseTime控制,對(duì)給定的鍵盤數(shù)字開始編碼時(shí),以指定的數(shù)值對(duì)該兩變量初始化并激活編碼器。編碼器從數(shù)字緩沖區(qū)中取第一個(gè)數(shù)字并解包,即將數(shù)字映射為行/列音特性(振蕩器系數(shù)、初始條件),裝載指針指向振蕩器特性表相應(yīng)的位置。然后編碼器產(chǎn)生DTMF音頻幀,接著產(chǎn)生停頓音幀,兩者指定的時(shí)長由變量toneTime和pauseTime控制。繼續(xù)從數(shù)字緩沖區(qū)中取下一個(gè)數(shù)字進(jìn)行處理,處理前應(yīng)給變量toneTime重新初始化。數(shù)字緩沖區(qū)最后置標(biāo)志數(shù)字-1,提醒編碼器所有數(shù)字的編碼過程結(jié)束并轉(zhuǎn)置成閑置狀態(tài)。1.2生成多通道結(jié)構(gòu)軟件編寫成可C調(diào)用可嵌套函數(shù),使用戶可以在C環(huán)境建立多通道音頻檢測(cè)而無需另外加入大量的代碼。為便于和構(gòu)造多通道功能,代碼采用結(jié)構(gòu)來包含所有的全局變量和單通道各種數(shù)組的指針,用戶只需為每個(gè)通道定義一個(gè)結(jié)構(gòu)并正確初始化。調(diào)用dtmfEncode(DTMFENCOBJ*)函數(shù),傳遞定義結(jié)構(gòu)指針即啟動(dòng)編碼過程。2復(fù)雜的數(shù)字比編碼過程在輸入的信號(hào)中檢測(cè)DTMF音頻信號(hào)并將它們轉(zhuǎn)化為實(shí)際的數(shù)字比編碼過程要復(fù)雜得多。解碼過程是連續(xù)的,需要在持續(xù)輸入的數(shù)據(jù)流中不斷地搜索DTMF音頻信號(hào)。2.1gortzel算法Goertzel算法是DTMF檢測(cè)的基礎(chǔ),能夠快速有效地從輸入信號(hào)中提取頻譜信息。該算法利用二階IIR濾波器有效地計(jì)算DFT值,為遞歸結(jié)構(gòu),處理對(duì)象為一個(gè)接一個(gè)到來的采樣值,而常規(guī)DFT(FFT)計(jì)算,處理的是數(shù)據(jù)塊。Goertzel濾波器的IIR結(jié)構(gòu)包含兩個(gè)共軛極點(diǎn),構(gòu)成一個(gè)實(shí)系數(shù),簡(jiǎn)化了差分方程的計(jì)算。對(duì)于實(shí)際的音頻信號(hào),DFT的幅頻特性(幅頻特性的平方)提供的信息已足夠用于檢測(cè)。通過對(duì)N個(gè)采樣值(N等于DFT塊大小)的計(jì)算,Goertzel濾波器的輸出收斂于一個(gè)假定的DFT值vk(n),該值可用以確定幅頻特性的平方值。Goertzel算法簡(jiǎn)單描述如下。(1)迭代計(jì)算(2)對(duì)于每一個(gè)N,計(jì)算如下由于只需計(jì)算其中很少的頻譜線值,Goertzel算法比FFT算法快得多。8個(gè)行/列頻率信號(hào)及其8個(gè)二次諧波的幅頻特性的平方值需要計(jì)算,二次諧波頻譜將DTMF音信號(hào)與語音或音樂區(qū)分開,表2列出了頻率和濾波器系數(shù)。每個(gè)濾波器精確地調(diào)整對(duì)應(yīng)實(shí)際的DTMF頻率,相應(yīng)的二次諧波同樣如此?;镜牧蓄l率除外,每個(gè)列頻率附加兩個(gè)頻率對(duì),偏離中心頻率±9Hz(見表2)。該修正滿足貝爾標(biāo)準(zhǔn)中嚴(yán)格的識(shí)別帶寬要求,擴(kuò)大列頻率信號(hào)主瓣寬度,而行頻率信號(hào)主瓣寬度不變。頻率偏差指的是對(duì)所有頻率中心值的相對(duì)值,故行頻率比列頻率的絕對(duì)偏差值要小。N定義了回歸迭代的次數(shù),同時(shí)也提供了調(diào)整頻率分辨率的方法。頻率對(duì)主瓣寬度,亦即頻率分辨率與N的關(guān)系為同樣,貝爾標(biāo)準(zhǔn)中識(shí)別帶寬要求使得N應(yīng)設(shè)為136,對(duì)應(yīng)主瓣寬度約為58Hz。對(duì)信號(hào)強(qiáng)度門限值恰當(dāng)設(shè)置,主瓣寬度可以足夠窄,允許偏離中心頻率點(diǎn)時(shí)的泄漏量為±3.5%,甚至在最小的行頻率點(diǎn),檢測(cè)器允許偏離中心頻率時(shí)的泄漏量大于3.5%。對(duì)于較高的列頻率,主瓣寬度很窄(如58Hz/1633Hz等于3.5%或正負(fù)偏差1.75%),安全識(shí)別要求偏離中心頻率點(diǎn)在±1.5%。通常對(duì)雙頻率對(duì)可允許更多的冗余,±9Hz偏差對(duì)于列頻率至少可贏得1%(18Hz/1633Hz)的主瓣寬度。2.2逆向扭曲率的檢測(cè)搜集到各行列頻率信號(hào)幅度平方形式的頻譜信息后,算法需執(zhí)行一系列測(cè)試以確定音頻和數(shù)字結(jié)果的有效性。為提高執(zhí)行速度,二次諧波頻率譜將在二次諧波檢測(cè)時(shí)有條件的計(jì)算。首先對(duì)頻譜信息的檢測(cè)要保證可能的DTMF音頻對(duì)的信號(hào)強(qiáng)度應(yīng)足夠大。行頻率分量峰和列頻率分量峰的幅度平方和應(yīng)高于某一確定門限THR_SIG。由于存在很小的扭曲(行和列音頻強(qiáng)度不相等)導(dǎo)致行和列的峰值有明顯差異,以行列峰值之和作為信號(hào)強(qiáng)度參數(shù)比分開的行和列的檢測(cè)更好。音頻扭曲分開檢測(cè),以確定扭曲率符合要求。譜信息反映兩類扭曲,更可能出現(xiàn)的一種即所謂的“逆向扭曲”,起因于行峰值大于列峰值。由于電話線的低通濾波器特性,行頻率信號(hào)(低頻帶)比列頻率信號(hào)(高頻帶)衰減得要少。解碼器計(jì)算反向扭曲率并設(shè)定可接受的門限值(THR_TWIREV)為8dB;另一種扭曲即所謂的“標(biāo)準(zhǔn)扭曲”,出現(xiàn)在行峰值小于列峰值。同樣,計(jì)算“標(biāo)準(zhǔn)扭曲率”,設(shè)定可接受的門限值(THR_TWISTD)為4dB。分別在行頻率組和列頻率組中作譜成分比對(duì),最強(qiáng)的譜成份(幅度平方值)凸顯出來,和同組的其它音頻信號(hào)相比,應(yīng)高于一個(gè)率門限值(THR_ROWREL,THR_COLREL)。檢測(cè)信號(hào)的二次諧波強(qiáng)度,將DTMF信號(hào)與可能的話音或音樂信號(hào)區(qū)分開。DTMF信號(hào)只在基頻上具有較高能量,而話音的頻譜總是在基頻上疊加了明顯強(qiáng)度的偶次諧波分量。檢測(cè)二次諧波強(qiáng)度,以確保二次諧波分量與基頻分量比值小于某一指定門限值(THR_ROW2nd,THR_COL2nd)。如果DTMF信號(hào)對(duì)通過這些檢測(cè),那么可以確定對(duì)應(yīng)某一數(shù)字的有效DTMF雙音頻信號(hào)是存在的。通常只需利用Goertzel算法計(jì)算對(duì)應(yīng)于兩個(gè)檢測(cè)基頻信號(hào)的兩個(gè)二次諧波能量譜。另外,還需確定有效的DTMF信號(hào)是否滿足貝爾規(guī)定的時(shí)長要求,應(yīng)保證音頻識(shí)別時(shí)長大于45ms,音頻泄漏時(shí)長小于23ms。時(shí)長檢測(cè)要求音頻信號(hào)至少保持兩個(gè)緩沖時(shí)長,即被連續(xù)檢測(cè)到兩次,才認(rèn)為數(shù)字信息是穩(wěn)定的。為進(jìn)一步調(diào)整有效的檢測(cè)時(shí)長,檢測(cè)緩沖區(qū)首尾重疊(overlap-andsave)。經(jīng)測(cè)試,為滿足貝爾音頻識(shí)別時(shí)長要求,136字長緩沖區(qū)重疊16個(gè)樣值,算法每15ms有效處理136個(gè)采樣值。相應(yīng)的,輸入緩沖區(qū)每136個(gè)新樣值包含前次緩沖區(qū)的最后16個(gè)樣值和120個(gè)來自A/D轉(zhuǎn)換器的新樣值。如果有效的DTMF音頻信息保持至少兩個(gè)連續(xù)的136字長緩沖區(qū),即為有效并映射成相應(yīng)的數(shù)字。2.3dtmf音頻檢測(cè)一旦輸入緩沖區(qū)裝入新的輸入數(shù)據(jù),幀處理即開始。將輸入數(shù)據(jù)緩沖區(qū)的內(nèi)容復(fù)制到一個(gè)中間緩沖區(qū),所有的檢測(cè)操作均在該中間緩沖區(qū)進(jìn)行。在強(qiáng)撥號(hào)音對(duì)(350Hz/440Hz)出現(xiàn)時(shí),為保證DTMF檢測(cè)器運(yùn)行,設(shè)計(jì)了一個(gè)前端陷波器對(duì)撥號(hào)音信號(hào)成分進(jìn)行濾波,同時(shí)保留DTMF信號(hào)。增益控制用于減弱強(qiáng)輸入信號(hào),避免累加器溢出影響下面的處理。接著執(zhí)行Goertzel濾波,其中每個(gè)列頻率由兩個(gè)頻率對(duì)表示。由于前置增益控制確保不會(huì)產(chǎn)生溢出,程序中取消了溢出檢查等操作,提高了執(zhí)行效率。計(jì)算8個(gè)基本DTMF音頻信號(hào)能量譜值并記錄在能量模板中。收集的能量譜信息啟動(dòng)數(shù)字有效性檢測(cè),首先在能量模板中搜索行列信號(hào)的能量峰值。檢測(cè)器工作在兩種模式:音頻/數(shù)字檢測(cè)模式或停頓音檢測(cè)模式。在音頻/數(shù)字模式下,檢測(cè)器搜索DTMF音頻,并進(jìn)行數(shù)字有效性檢試。在停頓音模式下,DTMF音頻檢測(cè)被屏蔽,解碼器接受停頓音信號(hào)。兩種模式由變量detectstat控制,通過檢測(cè)的有效數(shù)字存放在數(shù)字輸出緩沖區(qū)。2.4生成多通道功能的代碼軟件編寫成可C調(diào)用可嵌套函數(shù),使用戶可以在C環(huán)境建立多通道音頻檢測(cè)而無需另外加入大量的代碼。為便于和構(gòu)造多通道功能,代碼采用結(jié)構(gòu)來包含所有的全局變量和單通道各種數(shù)組的指針,用戶只需為每個(gè)通道定義一個(gè)結(jié)構(gòu)并正確初始化。調(diào)用dtmfDecode(DTMFDECOBJ*)函數(shù),傳遞定義結(jié)構(gòu)指針即執(zhí)行解碼。3gortzel-dft算法的速度改進(jìn)表3和表4給出了DTMF編碼/解碼器實(shí)現(xiàn)的速度和內(nèi)存要求。編解碼器實(shí)現(xiàn)均設(shè)計(jì)成多通道應(yīng)用方式,而單個(gè)DSP芯片能夠處理大量的通道。DTMF編碼器的計(jì)算量約為0.45MIPS,單純解碼約需0.8MIPS。這些速度參數(shù)包括完成接收中斷服務(wù)程序后所有必要的處理,但不包括中斷服務(wù)程序處理。另外,8kHz采樣頻率也是假設(shè)的前提。對(duì)于DTMF解碼器,影響其速度關(guān)鍵的Goertzel-DFT函數(shù)有8個(gè)濾波器并列作快速處理。同時(shí)增強(qiáng)的增益控制避免了Goertzel算法中進(jìn)行溢出檢測(cè),從而提高了算法速度。另外計(jì)算二次諧波頻譜減少到只需計(jì)算兩個(gè)必要的頻率組,可實(shí)現(xiàn)額外的速度改善。當(dāng)然,為了滿足貝爾標(biāo)準(zhǔn),Goertzel算法需做出修正。修正包括取消整數(shù)倍頻率的限制,還要考慮一次諧波、二次諧波頻譜分布的特性,分段重疊(overlapand-save)方案結(jié)合附加頻率組,這些改進(jìn)需要額外的速度開銷,影響運(yùn)算速度。表3和表4給出了DTMF編解碼器的驗(yàn)證參數(shù)。4解碼函數(shù)的建立本文利用TI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論