一種新的基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF解碼器方案
一、引言 DTMF(雙音多頻)信號(hào)是電話網(wǎng)中常用的信令,無(wú)論是家用電話、移動(dòng)電話還是程控交換機(jī)上,多采用DTMF信號(hào)發(fā)送接收號(hào)碼。DTMF技術(shù)還可以用于電力線載波通信等場(chǎng)合。可見(jiàn),DTMF撥號(hào)和解碼在通信系統(tǒng)及其它方面有著廣泛的應(yīng)用。DTMF信號(hào)的解碼目前常用的方法有兩種:一種方法是采用濾波器組來(lái)分離8個(gè)DTMF信號(hào)。濾波器組的實(shí)現(xiàn)既可以用模擬濾波器,也可以用數(shù)字濾波器,這種方法在時(shí)域中進(jìn)行分離。第二種方法是采用DFT或者Goertzel算法來(lái)檢測(cè)8個(gè)信號(hào)的強(qiáng)弱,這種方法在頻域中進(jìn)行分離。然而,上述兩種傳統(tǒng)的DTMF信號(hào)檢測(cè)方法都存在一定的缺陷,即在強(qiáng)信道噪聲干擾下常常不能正確工作。本文提出了一種新的基于改進(jìn)的ADALINE(Adaptive Linear
Neuron)神經(jīng)網(wǎng)絡(luò)的DTMF信號(hào)檢測(cè)算法,其結(jié)構(gòu)簡(jiǎn)單計(jì)算量適中,并且能夠在強(qiáng)背景噪聲干擾下正常檢測(cè),實(shí)驗(yàn)顯示它比傳統(tǒng)方法有更強(qiáng)的抗干擾能力。文章首先介紹了基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF信號(hào)檢測(cè)算法,然后給出了此方法的仿真結(jié)果,最后給出了采用TMS320C5402 DSP和TLV320AIC10 AIC實(shí)現(xiàn)DTMF信號(hào)檢測(cè)器的工程應(yīng)用方案設(shè)計(jì)。
二、DTMF信號(hào)
DTMF信號(hào)是將撥號(hào)盤(pán)上的0~9、A~D及*/E、#/F共16個(gè)字符,用音頻范圍的8個(gè)頻率來(lái)表示的一種編碼方式。8個(gè)頻率分為高頻群和低頻群兩組,分別作為列頻和行頻。每個(gè)字符的信號(hào)由來(lái)自列頻和行頻的兩個(gè)頻率的正弦信號(hào)疊加而成。頻率組合方式如圖1所示。
1209Hz |
1336Hz |
1477Hz |
1633Hz | |
1 |
2 |
3 |
A | |
4 |
5 |
6 |
B | |
7 |
8 |
9 |
C | |
*/E |
0 |
#/F |
D |
根據(jù)ITU-R Q.23建議[1],DTMF信號(hào)的技術(shù)指標(biāo)是:傳送/接收率為每秒約10個(gè)號(hào)碼,或每個(gè)號(hào)碼120ms。每個(gè)號(hào)碼傳送過(guò)程中,信號(hào)存在時(shí)間至少65ms,且不多于75ms,120ms的其余時(shí)間是靜音。在每個(gè)頻率點(diǎn)上允許有不超過(guò) 1.8%的頻率誤差。任何超過(guò)給定頻率 3.5%的信號(hào),均被認(rèn)為是無(wú)效的,拒絕承認(rèn)接收。另外,在最壞的檢測(cè)條件下,信噪比不得低于15dB。
三、基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF檢測(cè)算法
神經(jīng)網(wǎng)絡(luò)是信號(hào)處理發(fā)展的一個(gè)新方向,它可以在先驗(yàn)知識(shí)未知的情況下,通過(guò)對(duì)輸入信號(hào)的自學(xué)習(xí),實(shí)時(shí)調(diào)整網(wǎng)絡(luò)的權(quán)系數(shù)和偏置值,使網(wǎng)絡(luò)得到最佳的期望輸出。神經(jīng)網(wǎng)絡(luò)具有內(nèi)在的自適應(yīng)性和非線性,能夠得到魯棒性和抗干擾能力更強(qiáng)的系統(tǒng)[3]。
ADALINE神經(jīng)網(wǎng)絡(luò)是Widrow和Hoff提出的[2,3],它的一般結(jié)構(gòu)如圖2所示,采用LMS算法。輸入信號(hào)x(n)及其延遲序列是網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)輸出a(n)與某個(gè)目標(biāo)輸出t(n)的差得到誤差信號(hào)e(n),然后網(wǎng)絡(luò)按照LMS算法調(diào)整權(quán)系數(shù)和偏置值,并按此方式循環(huán)處理。
圖2 |
ADALINE神經(jīng)網(wǎng)絡(luò)非常適合于信號(hào)的檢測(cè)與提取或噪聲消除,此時(shí)它的一般結(jié)構(gòu)如圖3所示[1]。在一定的噪聲參考輸入下,網(wǎng)絡(luò)能夠自適應(yīng)的跟蹤和捕捉混雜信號(hào)中的相應(yīng)成分,網(wǎng)絡(luò)輸出企圖逼近待檢測(cè)的混雜信號(hào),但是因?yàn)樵肼晠⒖夹盘?hào)與有用信號(hào)不相關(guān)或者弱相關(guān),它只能復(fù)制到與噪聲參考信號(hào)強(qiáng)相關(guān)的成分。于是混雜信號(hào)中的噪聲成分被自適應(yīng)的跟蹤,進(jìn)而可以被消除,誤差信號(hào)"恰好"就是恢復(fù)出來(lái)的有用信號(hào)。這種結(jié)構(gòu)的ADALINE神經(jīng)網(wǎng)絡(luò)在飛機(jī)客艙消噪系統(tǒng)和腦電圖檢測(cè)等方面得到了成功的應(yīng)用[2,5,6]。
圖3 |
然而,實(shí)踐表明,一般結(jié)構(gòu)的ADALINE網(wǎng)絡(luò)(圖2或圖3)用于檢測(cè)DTMF信號(hào)的效果并不好,需要進(jìn)行改進(jìn)。DTMF信號(hào)的檢測(cè)可以看成是要在受噪聲污染的信號(hào)中檢測(cè)并判斷是否存在某個(gè)特定信號(hào)(8個(gè)頻率的信號(hào))。基于這一點(diǎn),我們提出了一種如圖4所示的改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò),非常適合于DTMF信號(hào)的檢測(cè)。它與一般結(jié)構(gòu)的ADALINE網(wǎng)絡(luò)有兩點(diǎn)不同:(1)它用DTMF分量參考信號(hào)作網(wǎng)絡(luò)的輸入,而把待檢測(cè)信號(hào)作為期望輸出。(2)增加一個(gè)非線性處理環(huán)節(jié),非線性地增強(qiáng)或抑制網(wǎng)絡(luò)的跟蹤結(jié)果以增強(qiáng)網(wǎng)絡(luò)的效果。
改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)(圖4)的工作原理如下:
x(n)是受噪聲污染的待檢測(cè)輸入信號(hào),它作為網(wǎng)絡(luò)的期望輸出;提供給網(wǎng)絡(luò)的輸入是某個(gè)特定的DTMF分量頻率正弦信號(hào)ref(n),其頻率是8個(gè)DTMF頻率之一;網(wǎng)絡(luò)自適應(yīng)跟蹤的中間信號(hào)是a(n)。非線性環(huán)節(jié)對(duì)a(n)進(jìn)行進(jìn)一步的增強(qiáng)或抑制,最終網(wǎng)絡(luò)輸出是y(n)。
圖4 |
改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)采用LMS算法[2],LMS算法本質(zhì)是以最小均方誤差為準(zhǔn)則的近似的最速下降算法。它以均方誤差為性能函數(shù)F(x),定義如下
神經(jīng)網(wǎng)絡(luò)的各個(gè)參數(shù)需要通過(guò)試驗(yàn)來(lái)確定。經(jīng)過(guò)試驗(yàn),對(duì)于DTMF檢測(cè),選用只含有2個(gè)權(quán)系數(shù)和1個(gè)偏置值的網(wǎng)絡(luò)就可以勝任,也就是在圖4中,只需要w1/w2/b三個(gè)參數(shù),結(jié)構(gòu)簡(jiǎn)單,計(jì)算量小。
對(duì)每個(gè)DTMF分量頻率都設(shè)置一個(gè)如圖4所示的神經(jīng)網(wǎng)絡(luò)單元,在每個(gè)檢測(cè)周期對(duì)8個(gè)神經(jīng)網(wǎng)絡(luò)單元的輸出進(jìn)行判斷并簡(jiǎn)單分析,就可以實(shí)現(xiàn)DTMF解碼。
四、基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF解碼仿真結(jié)果
為了驗(yàn)證上述基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF檢測(cè)算法,我們?cè)?a href="http://www.1cnz.cn/tags/matlab/" target="_blank">MATLAB上使用Neural Networks Toolbox進(jìn)行了仿真。
仿真條件和參數(shù)選擇:模擬實(shí)際信道中常見(jiàn)的高斯白噪聲情況,待檢測(cè)輸入信號(hào)x(n)是DTMF信號(hào)和信道噪聲的疊加,輸入信噪比SNR是-3dB。為了討論方便,假定每個(gè)DTMF分量的幅度是+/-2V(只要進(jìn)行比例縮放就可以適用實(shí)際情況),兩個(gè)分量信號(hào)幅度之和為+/-4V,并假定ADC接口之前的預(yù)處理電路的限幅電平是+/-5V,即兩個(gè)有用信號(hào)幅度之和占限幅電平的80%。改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)單元選擇含有2個(gè)權(quán)系數(shù)和1個(gè)偏置值,采用LMS算法,學(xué)習(xí)速度 選0.02。待檢測(cè)信號(hào)SNR=-3dB,采樣頻率為8KHz,采樣時(shí)間20ms。非線性環(huán)節(jié)的門(mén)限threshold選定為1.0V。
仿真結(jié)果如下:以"*"鍵為例,DTMF信號(hào)為941Hz/1209Hz。圖5上圖為純DTMF信號(hào)和高斯白噪聲信號(hào),下圖為二者的疊加信號(hào),即待檢測(cè)信號(hào)x(n)。
圖5 |
圖6為對(duì)應(yīng)941Hz的神經(jīng)網(wǎng)絡(luò)單元的輸出,上圖為中間信號(hào)a(n),下圖為網(wǎng)絡(luò)輸出信號(hào)y(n)。從圖中可以看出,網(wǎng)絡(luò)很快就能捕捉到輸入中的941Hz信號(hào),輸出信號(hào)很強(qiáng)并且從12ms開(kāi)始就基本穩(wěn)定。因此系統(tǒng)判斷為輸入信號(hào)中含有941Hz的信號(hào)。對(duì)應(yīng)1209Hz的神經(jīng)網(wǎng)絡(luò)單元也類似。
圖6 |
圖7 |
圖6和圖7中紅色虛線表示非線性環(huán)節(jié)的門(mén)限。由此可以看出,系統(tǒng)判斷出輸入信號(hào)中含有941Hz/1209Hz的信號(hào),不含697/770/852/1336/1477/1633Hz信號(hào),從而實(shí)現(xiàn)"*"鍵號(hào)碼的正確解碼。
當(dāng)輸入DTMF信號(hào)為其他頻率組合時(shí)的情況與上述結(jié)果類似,都能正確解碼。其他仿真結(jié)果表明它在信噪比為-3dB以下仍能準(zhǔn)確檢測(cè)。
五、工程應(yīng)用方案設(shè)計(jì)
采用上述基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF檢測(cè)算法,在TMS320C5402 DSP和TLV320AIC10 AIC上實(shí)現(xiàn)DTMF信號(hào)檢測(cè)器硬件結(jié)構(gòu)如圖8所示。
TMS320C5402是一款性價(jià)比很高的16位定點(diǎn)DSP[9],采用改進(jìn)的哈佛結(jié)構(gòu),速度達(dá)100MIPS,并具有豐富的片上外設(shè)資源,非常適合于語(yǔ)音信號(hào)處理,有線或無(wú)線通信等通信類應(yīng)用場(chǎng)合。TLV320AIC10是一款模擬接口芯片(AIC) [10],具有一對(duì)采用Sigma-Delta調(diào)制技術(shù)的16位采樣頻率達(dá)22KHz的ADC/DAC,還內(nèi)含相關(guān)的濾波與增益控制等電路。TLV320AIC10能與TMS320C5402實(shí)現(xiàn)無(wú)縫接口,配合使用。
需要說(shuō)明的是:DTMF解碼功能通常只是由DSP與AIC組成的通信處理系統(tǒng)的一部分。TMS320C5402強(qiáng)大的處理能力與DSP/AIC豐富的片上資源再配以外圍電路足以實(shí)現(xiàn)系統(tǒng)所需的其他功能。本文只談及DTMF解碼功能。
TLV320AIC10設(shè)置為采樣頻率8KHz,Master模式,幀同步為Pulse模式。如圖8所示,來(lái)自電話線的信號(hào)經(jīng)過(guò)接口預(yù)處理電路后送入AIC的ADC進(jìn)行模數(shù)轉(zhuǎn)換,然后通過(guò)McBSP串口與TMS320C5402通信,把采樣數(shù)據(jù)送入DSP,同時(shí)進(jìn)行A律擴(kuò)展,以備后續(xù)處理。
圖8 |
對(duì)每個(gè)樣點(diǎn)逐個(gè)計(jì)算8個(gè)神經(jīng)網(wǎng)絡(luò)單元的輸出值并按照LMS算法更新網(wǎng)絡(luò)參數(shù),然后等待下一個(gè)新樣點(diǎn)的到來(lái)。經(jīng)過(guò)20ms周期即180個(gè)樣點(diǎn)處理,可以得到8個(gè)網(wǎng)絡(luò)單元的輸出幅值,它定義為從12ms到20ms之間的輸出值平均。
當(dāng)8個(gè)網(wǎng)絡(luò)單元的輸出幅值計(jì)算出來(lái)后,還要進(jìn)行DTMF有效性檢驗(yàn),以判定是否為有效的DTMF信號(hào)。有效性檢驗(yàn)包括以下幾項(xiàng)內(nèi)容:(1)高、低頻段的最大幅值都必須大于某個(gè)門(mén)限值,而且二者之和也要大于某個(gè)門(mén)限值。(2)高、低頻段的最大幅值與各自頻段其它三個(gè)幅值相比,其差值必須大于某個(gè)門(mén)限值。(3)逆向絞度檢驗(yàn)即低頻段最大幅值不得超過(guò)高頻段最大幅值8dB,標(biāo)準(zhǔn)絞度檢驗(yàn)即高頻段最大幅值不得超過(guò)低頻段最大幅值4dB。(4)高、低頻段最大幅值之和與其它6個(gè)幅值之和之比,必須大于某個(gè)門(mén)限值。
若上述檢驗(yàn)通過(guò),判定當(dāng)前周期DTMF信號(hào)有效,根據(jù)頻率組合可確定是對(duì)應(yīng)哪個(gè)號(hào)碼。但要確認(rèn)接收到一個(gè)有效的號(hào)碼,還要滿足兩個(gè)條件,一是要有兩個(gè)以上連續(xù)周期的有效且相同的DTMF信號(hào),以保證信號(hào)持續(xù)時(shí)間,二是前面有足夠的靜音時(shí)間,以避免重復(fù)識(shí)別。由于每個(gè)周期是20ms信號(hào),可以保證一位號(hào)碼能接收到兩個(gè)完整的DTMF信號(hào)周期。程序流程圖如圖9所示。
圖9 |
六、結(jié)語(yǔ)
傳統(tǒng)DTMF信號(hào)的解碼方法有兩種:濾波器組法和Goertzel/DFT算法。針對(duì)傳統(tǒng)DTMF信號(hào)檢測(cè)方法抗干擾能力不足的問(wèn)題,本文提出了一種新的基于改進(jìn)的ADALINE神經(jīng)網(wǎng)絡(luò)的DTMF信號(hào)檢測(cè)算法,并介紹了在TMS320C5402 DSP和TLV320AIC10 AIC上采用此算法的DTMF信號(hào)檢測(cè)器工程應(yīng)用方案設(shè)計(jì)。仿真結(jié)果和實(shí)際工程實(shí)驗(yàn)均表明它比傳統(tǒng)方法具有更強(qiáng)的抗干擾能力,該方案具有一定的實(shí)用和參考價(jià)值。
評(píng)論
查看更多