天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>基于軟件的DTMF產(chǎn)生器及其性能分析

基于軟件的DTMF產(chǎn)生器及其性能分析

時(shí)間:2023-02-21 00:12:04 電子通信論文 我要投稿
  • 相關(guān)推薦

基于軟件的DTMF產(chǎn)生器及其性能分析

摘要:簡(jiǎn)述DTMF信號(hào)產(chǎn)生的基本原理,提出使用SPCE061芯片的D/A端口和使用I/O端口模擬D/A產(chǎn)生DTMF信號(hào)的兩種實(shí)現(xiàn)方案,并通過(guò)實(shí)驗(yàn)和仿真對(duì)兩種實(shí)現(xiàn)方案進(jìn)行對(duì)比分析。實(shí)驗(yàn)證明,由于D/A精度較高,采用D/A輸出的DTMF信號(hào)質(zhì)量比使用I/O電阻網(wǎng)絡(luò)的DTMF質(zhì)量好;但在采樣頻率足夠高的情況下,使用I/O電阻網(wǎng)絡(luò)仍然可以滿足電信標(biāo)準(zhǔn)要求。
  關(guān)鍵詞:雙音多頻(DTMF)sin函數(shù)計(jì)算SPCE061AMATLAB仿真
  
  在全世界范圍內(nèi),雙音多頻DTMF(DualToneMultiFrequency)信令逐漸使用在按鍵式電話機(jī)上,因其提供更高的撥號(hào)速率,迅速取代了傳統(tǒng)轉(zhuǎn)盤(pán)式電話機(jī)使用的撥號(hào)脈沖信號(hào)。近年來(lái),DTMF也應(yīng)用在交互式控制中,如語(yǔ)言菜單、語(yǔ)言郵件、來(lái)電顯示、電話銀行和ATM終端等。在芯片內(nèi)部沒(méi)有內(nèi)置DTMF產(chǎn)生器時(shí),用普通D/A甚至于用4~5個(gè)普通I/O口和簡(jiǎn)單的電阻網(wǎng)絡(luò)來(lái)模擬D/A實(shí)現(xiàn)DTMF信號(hào)的產(chǎn)生,將擴(kuò)大DTMF在工程中的應(yīng)用,具有一定的應(yīng)用價(jià)值。本文主要研究以上兩種用軟件產(chǎn)品DTMF信號(hào)的方案。
  
  DTMF信號(hào)由8個(gè)頻率兩兩組合而成。這8個(gè)頻率又分為低頻群和高頻群兩組。低頻群的4個(gè)頻率依次為697Hz、770Hz、852Hz、941Hz;高頻群的4個(gè)頻率依次為1209Hz、1336Hz、1477Hz、1336Hz。在通信領(lǐng)域應(yīng)用中,DTMF主要用于電話機(jī)撥號(hào)信號(hào)和CID(CallerIdentification,來(lái)電顯示)信號(hào)的傳送。在應(yīng)用于電話機(jī)的撥號(hào)信號(hào)中,按照國(guó)家電信標(biāo)準(zhǔn),其信號(hào)持續(xù)時(shí)間和間隔時(shí)間都不小于40ms,而頻率偏差不大于±1.5%。
  
  1傳統(tǒng)的可編程硬件DTMF發(fā)生器原理
  
  傳統(tǒng)的DTMF發(fā)生器芯片有Hotel公司的HT9200A/B、Mitel公司的MT8880等。部分MCU也內(nèi)置了DTMF發(fā)生器,其DTMF信號(hào)產(chǎn)生原理可簡(jiǎn)述如下:
  
  將振蕩器產(chǎn)生的高頻振蕩信號(hào)分別送至兩個(gè)計(jì)數(shù)器,當(dāng)計(jì)數(shù)器達(dá)到預(yù)設(shè)的值時(shí),產(chǎn)生一次反轉(zhuǎn)信號(hào)輸出,形成低頻方波。其中計(jì)數(shù)器寄存器可用軟件設(shè)置且有自動(dòng)裝載功能。通過(guò)這兩個(gè)計(jì)數(shù)器可設(shè)置輸出的兩路方波頻率。軟件編寫(xiě)控制程序時(shí),只須將對(duì)應(yīng)頻率的計(jì)數(shù)值寫(xiě)入控制寄存器便可自動(dòng)產(chǎn)生所需的頻率信號(hào)。
  
  從以上兩路輸出的方波再進(jìn)行信號(hào)正弦化處理和幅度控制,然后將兩路信號(hào)同時(shí)送至信號(hào)混合器輸出。這樣,如果其中一路輸出的方波頻率接近DTMF低頻群中的一個(gè)頻率,而另一路接近DTMF高頻群中的一個(gè)頻率,從混合器輸出的信號(hào)便是所需的DTMF信號(hào)了。
  
  2用D/A產(chǎn)生DTMF信號(hào)
  
  DTMF軟件產(chǎn)生器是基于兩個(gè)用軟件模擬的二階數(shù)字在弦波振蕩器,一個(gè)用于產(chǎn)生低頻,一個(gè)用于產(chǎn)生高頻。典型的DTMF信號(hào)頻率范圍是697Hz~1633Hz。選取8192Hz作為采樣頻率,即可滿足Nyquist條件。系統(tǒng)中信號(hào)合成的函數(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.1sin函數(shù)的計(jì)算
  
  采樣頻率并不是DTMF的8個(gè)頻率中各頻率的整數(shù)倍,若采用查表法得到各采樣點(diǎn)處理的D/A輸出值,由于查表意味著輸出值周期性的出現(xiàn),則要求采樣頻率是輸出頻率的多個(gè)周期的整數(shù)倍。又由于輸出數(shù)據(jù)表中需要包括多個(gè)周期,而且要逼近上述的整數(shù)倍,因此輸出頻率必須是采樣頻率整數(shù)倍的倍數(shù)。由此產(chǎn)生以下幾個(gè)問(wèn)題:
  
 、俣鄠(gè)周期的數(shù)據(jù)表較大(平均一個(gè)頻率20字左右);
  
 、跀(shù)據(jù)表中各數(shù)值的計(jì)算煩雜;
  
  ③產(chǎn)生的信號(hào)頻率存在頻偏。
  
  若采用計(jì)算sin函數(shù)的方法,以上問(wèn)題都將迎刃而解。只是,如何計(jì)算sin函數(shù)呢?在傳統(tǒng)的電子計(jì)算機(jī)系統(tǒng)中,處理浮點(diǎn)數(shù)比處理整數(shù)要復(fù)雜且占用CPU較多的時(shí)間;而在鄭易里片機(jī)系統(tǒng)中,一般對(duì)程序運(yùn)行的時(shí)間都有要求。因此,本文采用了定點(diǎn)小數(shù)近似表示浮點(diǎn)數(shù)的方法,再利用線性插值法計(jì)算各點(diǎn)處的正弦函數(shù)值。
  
  定點(diǎn)小數(shù)的表示方法:將需要表示的小數(shù)空間乘上一個(gè)系數(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ù)值為正時(shí),應(yīng)乘以0x03ff即1023,經(jīng)取整后作為計(jì)算sin函數(shù)子程序的輸出;當(dāng)函數(shù)值為負(fù)時(shí),只須將對(duì)應(yīng)的正時(shí)的函數(shù)值取補(bǔ)便可得到。
  
  計(jì)算sin函數(shù)時(shí),將0~2π映射為整數(shù)域的[0x0000,0x4000],因此,可通過(guò)整數(shù)域的第13和12位獲得象限信息。查表時(shí)只計(jì)算第一象限[0,π/2]的正弦值,其它象限的函數(shù)仁政由三角函數(shù)公式計(jì)算得到。第一象限sin函數(shù)的計(jì)算:0~π/2被映射到整數(shù)域的[0x0000,0x1000],將其分為16等分,將分割點(diǎn)上的函數(shù)值建立數(shù)據(jù)表,即將0、0x0100、0x0200等17個(gè)點(diǎn)處對(duì)應(yīng)的正弦值列表,若弧度值x介于兩分割點(diǎn)x1與x2之間,則通過(guò)查表獲得sin(x1)與sin(x2),則有:
  
  sin(x)=sin(x1)+[sin(x2)-sin(x1)](x2-x1)/256
  
  其它象限可根據(jù)三角函數(shù)公式獲得類(lèi)似的計(jì)算公式。
  
  2.2DTMF信號(hào)的軟件合成
  
  由于在DTMF的傳輸過(guò)程中,高頻在線路中的傳輸損耗比低頻高,為了保證信號(hào)到達(dá)交換機(jī)時(shí)高、低頻信號(hào)電平基本相當(dāng),在DTMF信號(hào)產(chǎn)生器中,標(biāo)準(zhǔn)規(guī)定頻率組合中高頻分量電平應(yīng)比低頻分量電平高2±1dB。在DTMF硬件產(chǎn)生器中,這一處理是在高、低頻信號(hào)混合器之間的低頻通道中加適當(dāng)?shù)乃p電路完成的;而在用D/A產(chǎn)生DTMF信號(hào)的過(guò)程中,高、低頻信號(hào)的混合也是由軟件完成的。因此,必須在高、低頻信號(hào)的產(chǎn)生過(guò)程中就考慮使低頻信號(hào)的振幅略低于高頻信號(hào),這樣才能從輸出的信號(hào)中獲得所需的電平差。由2.1中所描述的sin函數(shù)計(jì)算得的函數(shù)值,為實(shí)際函數(shù)值的1023倍。式(1)中,取y(n)的電壓范圍為0~5V,直流分量a0為2V;令高頻信號(hào)的電平為Sh,低頻信號(hào)的電平為S1,單位為dBm,則有
  
  Sh=-20lg(Vh/V0)S1=-20lg(V1/V0)1<Sh-S1<2
  
  取Vh/V1=6/5,則Sh-S1≈1.6dB,即取a1為5,a2為6,即可得到高、低頻的電平差為1.6dB的信號(hào)。將y(n)映射為SPCE061的D/A輸出值[0x0000,0xffc0],則DAC的輸出為(0xffc0/5)·y(n),公式如下:
  
  設(shè)A=1023sin(2·Pi·f0·n/fs)
  
  B=1023sin(2·f1·n/fs)(n=0,1,2…)
  
  DAC(n)=(0xffc0/5)·y(n)=
  
  12.8(1023·a0+a1A+a2B)=
  
  26189+5A+6B(2)
  
  式(2)中的A和B都由計(jì)算sin的子程序求得。由于2π在量化為整數(shù)時(shí)為0x4000,即16384,而fs=8192Hz,實(shí)際的sin函數(shù)子程序自變量便簡(jiǎn)化為(2nf0和0x3fff),這對(duì)于單片機(jī)的處理是相當(dāng)容易的。由上述公式求得的DAC值,已將計(jì)算結(jié)果數(shù)據(jù)移到了高10位,可直接輸出到D/A寄存器。
  
  3用I/O口模擬D/A產(chǎn)生DTMF信號(hào)
  
  在某些應(yīng)用中,所使用的MCU比較簡(jiǎn)單,如8051;或者因?yàn)閷?duì)成本控制的要求而不能使用帶D/A的MCU,但又需要用這些MCU產(chǎn)生DTMF信號(hào),其替代方案是用多個(gè)I/O口和電阻網(wǎng)絡(luò)來(lái)模擬D/A。當(dāng)然,這樣的電路產(chǎn)生的DTMF,其輸出精度會(huì)比由D/A產(chǎn)生的低,噪聲也會(huì)比較大,但在某些應(yīng)用中已經(jīng)可以滿足DTMF輸出的要求了。
  
  圖1是用4個(gè)I/O口模擬D/A輸出的原理圖。
  
  圖1中的4個(gè)I/O口可以表示16種狀態(tài)。經(jīng)過(guò)列表計(jì)算這16種狀態(tài)下的等價(jià)上拉電阻和下拉電阻,可得出各狀態(tài)下的分壓值。以VCC為5V為例,則模擬D/A輸出的精度為0.3086V,只相當(dāng)于一個(gè)精度很低的D/A。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,用4個(gè)I/O口、8192Hz的采樣頻率輸出DTMF信號(hào)時(shí),必須用5個(gè)I/O口輸出才能達(dá)到普通電話機(jī)撥號(hào)器的要求;若采用4個(gè)I/O口輸出,則要求采樣頻率大于12kHz。本文介紹的方案中,采用了4個(gè)I/O口、16384Hz作為采樣頻率,利用輸出信號(hào)與地之間的電容充放電來(lái)平滑用I/O口輸出的階梯波形,這樣可減小失真,使輸出的DTMF信號(hào)更接近標(biāo)準(zhǔn)的正弦波疊加。
  
  4用MATLAB仿真的實(shí)驗(yàn)結(jié)果
  
  MATLAB是一種功能相當(dāng)強(qiáng)大的數(shù)字運(yùn)算、仿真的軟件,用其作數(shù)字信號(hào)處理也是相當(dāng)簡(jiǎn)單的事件。下面的實(shí)驗(yàn)就是利用SPCE061A芯片通過(guò)其D/A和4個(gè)I/O口產(chǎn)生DTMF信號(hào),將其耦合輸出到聲卡的LINEIN輸入口,采樣獲得DTMF信號(hào)的數(shù)據(jù),再將信號(hào)數(shù)據(jù)轉(zhuǎn)化到MATLAB軟件中進(jìn)行離散FFT分析,獲得具頻率域的信息。圖2是用D/A輸出的DTMF信號(hào)“1”的波形;圖3是用D/A輸出的DTMF信號(hào)頻譜;圖4是用4個(gè)I/O口模擬產(chǎn)生的DTMF信號(hào)“1”的波形;圖5是用4個(gè)I/O口模擬輸出的DTMF信號(hào)頻譜。圖3和圖5是用MATLAB軟件仿真的結(jié)果。從圖2~5可看出:所產(chǎn)生的DTMF信號(hào),其頻率完
  
  
  
  全集中的規(guī)定的兩個(gè)頻率上。兩種方案下產(chǎn)生的DTMF波形,通過(guò)MATLAB分析計(jì)算得到的能量最大值出現(xiàn)的頻率都為1206Hz和次大值頻率689Hz,頻偏分別為0.25%和1.14%,都在DTMF信號(hào)規(guī)定的范圍之內(nèi)。頻率的偏差是由于信號(hào)及離散傅里葉變換的量化誤差引起的。
  
  圖2和圖4信號(hào)波形的橫坐標(biāo)為時(shí)間,約12ms;縱坐標(biāo)為聲卡采樣量化電壓值,聲卡采樣精度為16位,采樣頻率為44.1kHz;圖3和圖5中的橫坐標(biāo)為頻率;縱坐標(biāo)為離散FFT分析結(jié)果(用復(fù)數(shù)表示的頻率域信息)的模。圖3中,除了DTMF的兩個(gè)頻率外,其它頻率沒(méi)有出現(xiàn)大的毛刺,波形非常漂亮,信號(hào)失真度低。
  
  圖5中,除DTMF的兩個(gè)頻率外,其它頻率有多處出現(xiàn)了毛刺,信號(hào)失真度比圖3所顯示的大。
  
  5總結(jié)
  
  本文論述了用D/A產(chǎn)生DTMF的一般方法及其性能,并提出了用普通I/O模擬D/A產(chǎn)生DTMF的方法。在沒(méi)有DTMF硬件產(chǎn)生器的單片機(jī)應(yīng)用中,可以根據(jù)實(shí)際情況選用上述兩種軟件產(chǎn)生的DMTF的方案。建議選擇具有D/A的MCU。用D/A產(chǎn)生DTMF比用I/O口模擬產(chǎn)生雙音多頻信號(hào)有以下幾個(gè)優(yōu)點(diǎn):D/A精度較高(普通D/A都有8位或8位以上),產(chǎn)生的信號(hào)失真度小;采樣頻率要求較低,能滿足尼奎斯特條件即可,軟件產(chǎn)生信號(hào)時(shí)用中斷定時(shí)輸出,中斷頻率也就比較低,從而占用CPU時(shí)間較少;用D/A輸出DTMF信號(hào),不需要電阻網(wǎng)絡(luò),外圍電路簡(jiǎn)單。用D/A輸出DTMF信號(hào)的缺點(diǎn)是:要求MCU具有D/A輸出,在應(yīng)用中存在局限性;在某些低端的應(yīng)用中,帶D/A的MCU的其它資源也較多,成本相對(duì)比較高。用多個(gè)I/O口來(lái)模擬D/A就沒(méi)有上述局限性,只需要4個(gè)以上的I/O口,1.5MIPS左右的指令執(zhí)行速度(上述實(shí)驗(yàn)中采用的MCU主頻為6.144MHz,大部分指令執(zhí)行時(shí)間為3~8個(gè)機(jī)器周期)。這兩個(gè)要求是大部分低檔、低檔成本的MCU(包括部分51系列芯片)都具有的,故由此方案實(shí)現(xiàn)的系統(tǒng)更有利于控制成本;而精度的不足、失真度大等問(wèn)題,可以通過(guò)增加I/O口的個(gè)數(shù)來(lái)解決。若沒(méi)有多余的I/O口,根據(jù)實(shí)際應(yīng)用情況,可以考慮將某些I/O口分時(shí)復(fù)用。
  
  當(dāng)然,產(chǎn)生DTMF的方法還有很多。用軟件產(chǎn)生可以用PWM的方式(要求MCU具有較高的執(zhí)行速度),用硬件產(chǎn)生可以用信號(hào)發(fā)生器等;但相對(duì)于用D/A或者普通I/O口來(lái)說(shuō),其復(fù)雜程度和成本都分比較高。因此,用D/A或者普通I/O產(chǎn)生DMTF信號(hào)有更廣泛的應(yīng)用。
  
  
  
  

【基于軟件的DTMF產(chǎn)生器及其性能分析】相關(guān)文章:

WEP安全性能研究及其攻擊08-06

基于MSP430的嵌入式DTMF撥號(hào)解碼器實(shí)現(xiàn)方案08-06

一種基于FPGA的誤碼性能測(cè)試方案08-06

高性能DDS芯片AD9954及其應(yīng)用08-06

基于發(fā)射分集的空時(shí)碼及其應(yīng)用08-06

基于MPLS的VPN技術(shù)原理及其實(shí)現(xiàn)08-06

透鏡及其應(yīng)用教材分析08-17

高性能鎖相環(huán)PE3293及其應(yīng)用08-06

連續(xù)實(shí)時(shí)信號(hào)處理器的性能分析08-06