- 相關(guān)推薦
基于軟件的DTMF產(chǎn)生器及其性能分析
摘要:簡述DTMF信號產(chǎn)生的基本原理,提出使用SPCE061芯片的D/A端口和使用I/O端口模擬D/A產(chǎn)生DTMF信號的兩種實(shí)現(xiàn)方案,并通過實(shí)驗(yàn)和仿真對兩種實(shí)現(xiàn)方案進(jìn)行對比分析。實(shí)驗(yàn)證明,由于D/A精度較高,采用D/A輸出的DTMF信號質(zhì)量比使用I/O電阻網(wǎng)絡(luò)的DTMF質(zhì)量好;但在采樣頻率足夠高的情況下,使用I/O電阻網(wǎng)絡(luò)仍然可以滿足電信標(biāo)準(zhǔn)要求。在全世界范圍內(nèi),雙音多頻DTMF(Dual Tone Multi Frequency)信令逐漸使用在按鍵式電話機(jī)上,因其提供更高的撥號速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤式電話機(jī)使用的撥號脈沖信號。近年來,DTMF也應(yīng)用在交互式控制中,如語言菜單、語言郵件、來電顯示、電話銀行和ATM終端等。在芯片內(nèi)部沒有內(nèi)置DTMF產(chǎn)生器時,用普通D/A甚至于用4~5個普通I/O口和簡單的電阻網(wǎng)絡(luò)來模擬D/A實(shí)現(xiàn)DTMF信號的產(chǎn)生,將擴(kuò)大DTMF在工程中的應(yīng)用,具有一定的應(yīng)用價(jià)值。本文主要研究以上兩種用軟件產(chǎn)品 DTMF信號的方案。
DTMF信號由8個頻率兩兩組合而成。這8個頻率又分為低頻群和高頻群兩組。低頻群的4個頻率依次為697Hz、770Hz、852Hz、941Hz;高頻群的4個頻率依次為1209Hz、1336Hz、1477Hz、1336Hz。在通信領(lǐng)域應(yīng)用中,DTMF主要用于電話機(jī)撥號信號和CID(Caller Identification,來電顯示)信號的傳送。在應(yīng)用于電話機(jī)的撥號信號中,按照國家電信標(biāo)準(zhǔn),其信號持續(xù)時間和間隔時間都不小于40ms,而頻率偏差不大于±1.5%。
1 傳統(tǒng)的可編程硬件DTMF發(fā)生器原理
傳統(tǒng)的DTMF發(fā)生器芯片有Hotel公司的HT9200A/B、Mitel公司的MT8880等。部分MCU也內(nèi)置了DTMF發(fā)生器,其DTMF信號產(chǎn)生原理可簡述如下:
將振蕩器產(chǎn)生的高頻振蕩信號分別送至兩個計(jì)數(shù)器,當(dāng)計(jì)數(shù)器達(dá)到預(yù)設(shè)的值時,產(chǎn)生一次反轉(zhuǎn)信號輸出,形成低頻方波。其中計(jì)數(shù)器寄存器可用軟件設(shè)置且有自動裝載功能。通過這兩個計(jì)數(shù)器可設(shè)置輸出的兩路方波頻率。軟件編寫控制程序時,只須將對應(yīng)頻率的計(jì)數(shù)值寫入控制寄存器便可自動產(chǎn)生所需的頻率信號。
從以上兩路輸出的方波再進(jìn)行信號正弦化處理和幅度控制,然后將兩路信號同時送至信號混合器輸出。這樣,如果其中一路輸出的方波頻率接近DTMF低頻群中的一個頻率,而另一路接近DTMF高頻群中的一個頻率,從混合器輸出的信號便是所需的DTMF信號了。
2 用D/A產(chǎn)生DTMF信號
DTMF軟件產(chǎn)生器是基于兩個用軟件模擬的二階數(shù)字在弦波振蕩器,一個用于產(chǎn)生低頻,一個用于產(chǎn)生高頻。典型的DTMF信號頻率范圍是697Hz~1633Hz。選取8192Hz作為采樣頻率,即可滿足Nyquist條件。系統(tǒng)中信號合成的函數(shù)方程為
Y(n)=a0 a1sin(2·Pi·f0·n/fs) a2sin(2·Pi·f1·n/fs) (1)
式中:a0為直流分量;f0、f1分別為DTMF中的低頻和高頻;fs為采樣頻率,在此定為8192Hz;a1、a2分別為f0、f1的振幅;n為采樣點(diǎn)數(shù)。
2.1 sin函數(shù)的計(jì)算
采樣頻率并不是DTMF的8個頻率中各頻率的整數(shù)倍,若采用查表法得到各采樣點(diǎn)處理的D/A輸出值,由于查表意味著輸出值周期性的出現(xiàn),則要求采樣頻率是輸出頻率的多個周期的整數(shù)倍。又由于輸出數(shù)據(jù)表中需要包括多個周期,而且要逼近上述的整數(shù)倍,因此輸出頻率必須是采樣頻率整數(shù)倍的倍數(shù)。由此產(chǎn)生以下幾個問題:
①多個周期的數(shù)據(jù)表較大(平均一個頻率20字左右);
②數(shù)據(jù)表中各數(shù)值的計(jì)算煩雜;
③產(chǎn)生的信號頻率存在頻偏。
若采用計(jì)算sin函數(shù)的方法,以上問題都將迎刃而解。只是,如何計(jì)算sin函數(shù)呢?在傳統(tǒng)的電子計(jì)算機(jī)系統(tǒng)中,處理浮點(diǎn)數(shù)比處理整數(shù)要復(fù)雜且占用CPU較多的時間;而在鄭易里片機(jī)系統(tǒng)中,一般對程序運(yùn)行的時間都有要求。因此,本文采用了定點(diǎn)小數(shù)近似表示浮點(diǎn)數(shù)的方法,再利用線性插值法計(jì)算各點(diǎn)處的正弦函數(shù)值。
定點(diǎn)小數(shù)的表示方法:將需要表示的小數(shù)空間乘上一個系數(shù)映射到整數(shù)所能所示的空間。本文使用16位的單片機(jī)SPCE061,其D/A的精度為10位,DAC輸出寄存器為16位數(shù)據(jù)的高10位;sin函數(shù)的值域?yàn)閇-1, 1],取整數(shù)域[0x0000,0x03ff]映射sin函數(shù)值中的[0, 1],取補(bǔ)數(shù)映射sin函數(shù)值中的負(fù)值,即可滿足DTMF輸出精度要求。要求將1映射為0x03ff,因此,當(dāng)函數(shù)值為正時,應(yīng)乘以0x03ff即1023,經(jīng)取整后作為計(jì)算sin函數(shù)子程序的輸出;當(dāng)函數(shù)值為負(fù)時,只須將對應(yīng)的正時的函數(shù)值取補(bǔ)便可得到。
計(jì)算sin函數(shù)時,將0~2π映射為整數(shù)域的[0x0000,0x4000],因此,可通過整數(shù)域的第13和12位獲得象限信息。查表時只計(jì)算第一象限[0, π/2]的正弦值,其它象限的函數(shù)仁政由三角函數(shù)公式計(jì)算得到。第一象限sin函數(shù)的計(jì)算:0~π/2被映射到整數(shù)域的[0x0000,0x1000],將其分為16等分,將分割點(diǎn)上的函數(shù)值建立數(shù)據(jù)表,即將0、0x0100、0x0200等17個點(diǎn)處對應(yīng)的正弦值列表,若弧度值x介于兩分割點(diǎn)x1與x2之間,則通過查表獲得sin(x1)與sin(x2),則有:
sin(x)=sin(x1) [sin(x2)-sin(x1)](x2-x1)/256
其它象限可根據(jù)三角函數(shù)公式獲得類似的計(jì)算公式。
2.2 DTMF信號的軟件合成
由于在DTMF的傳輸過程中,高頻在線路中的傳輸損耗比低頻高,為了保證信號到達(dá)交
【基于軟件的DTMF產(chǎn)生器及其性能分析】相關(guān)文章:
數(shù)據(jù)關(guān)聯(lián)算法綜述及其性能評估05-05
高性能數(shù)據(jù)采集系統(tǒng)芯片LM12H458及其應(yīng)用05-28
基于顧客價(jià)值的需求,流動網(wǎng)挖掘策略分析06-04
我國氣壓盤式制動結(jié)構(gòu)性能和前景分析05-11
電磁波及其經(jīng)濟(jì)價(jià)值分析12-30
基于組織行為學(xué)分析沃爾瑪企業(yè)文化05-01
基于成交量標(biāo)度的股價(jià)動力學(xué)分析05-12
網(wǎng)銀互聯(lián)的利弊及其主要問題分析06-11