您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > DTMF产生传输及检测软件仿真课程设计-(2)
页眉内容精心整理燕山大学课程设计指导书DTMF通信系统设计与仿真燕山大学信息科学与工程学院通信电子教研室1、任务、性质与意义用数学模型的方法对信息传输的过程进行仿真,是分析、设计及改进通信系统性能的重要手段。本次课程设计的任务是综合运用通信原理、数字信号处理等课程所学知识,实现一个双音多频(DTMF)信号传输过程的软件仿真。本次课程设计的性质是通信原理、数字信号处理等课的综合实践环节。它的意义在于,通过本次课程设计可以从理论上加深对有关通信、数字信号处理原理的综合理解,了解DTMF信号原理和用数字信号处理的方法实现DTMF信号的产生、传输与检测的过程。还可以从实践能力上掌握一门新的计算机编程工具——MATLAB语言。2、基本原理2.1双音多频(DTMF)信号双音多频(DTMF)信号就是用两个不同频率的音频信号的组合来传输信息的一种通信信号形式,可以用数学式表示为)2cos2(cos)(tftfAtsLH(1)式中fH和fL分别是高频组和低频组的两个信号频率。对这两个频率的要求是:1、位于人而能够听到的音频频率范围内;2、频率间隔近似为乐音音阶的频率间隔(按十二平均律,相邻各个音的频率呈等比关系,其比值约为1.059463,例如C3130.8Hz,C4=261.7Hz,D4293.7)。这种信号在电话线路上传输,而且声音悦耳。在电话系统中,高低频组的频率已经标准化,如图1所示。DTMF最早应用是在电话通信系统中作为控制信令使用的。在电话通信系统中,最早的控制图1DTMF拨号频率标准页眉内容精心整理信令是使用直流脉冲信号。脉冲拨号方式是由接在旋转拨盘位置上的开关或电子开关控制二线电路的通与断。每拨出一位数字,都有唯一一串电流脉冲相对应,图2中给出了数字’3’的电流脉冲序列。每个脉冲周期通常为100ms,其中有40%的占空时间,在人工控制条件下,两个相继数字的时间间隔可以从0.5S到数秒之间变化不等。由此可见,利用拨号脉冲拨号,发送一个10位长的号码大约需要7秒的时间。图2脉冲拨号示意图当采用DTMF拨号方式时,号码的每一个数字用一对音频表示,话机中有8个单音频,分为两组,通过拨号盘选拨号码时,各位数字由触键开关输入,其对应的某个频率对(高频和低频)同时传输,图3所示为各频率对应位置。对DTMF信号所规定的指标为:传送速率为每秒10个数字,即每个数字100ms。每个数字传送过程中,信号必须存在至少45ms,且不得多于55ms,100ms里其余时间是静音。另外ITU(国际电信联盟)还规定,DTMF信号在每个频率点上允许有1.5%的偏移,任何超出给定3.5%的信号认为无效,拒绝承认接收。还规定,在最坏检测条件下,信噪比不得低于15dB。显然。DTMF的拨号方式比双脉冲拨号方式可快至10倍,明显缩短了拨号时间。而且DTMF拨号方式发出的信号抗干扰能力大大高于脉冲拨号方式。因此,目前普遍使用DTMF拨号方式。采用DTMF信号,用话音频率发送数字,可以避免占用额外的信道,又比脉冲拨号方式节约时间。在通信、测量、控制、自动服务等领域有着广泛的应用。在基于电话的各种信息服务系统中,广泛使用了DTMF信号来传送按键操作信息。利用这种按键信息,人们可以直接通过电话查询所需要的信息以及进行各种远程控制。在实际系统中,首次拨号由程控交换机识别,完成主叫与被叫之间的接续;二次乃至多次拨号的识别以及操作由用户系统自己完成。DTMF信号还可以用来在话音信道上传送各种类型的控制指令,例如利用电话控制家用电器的启停,传送远方的状态监测信息。目前DTMF信号已经不仅仅限于在电话系统中应用,在测量、控制、遥测遥控等各个领域都有应用。2.2DTMF信号的硬件产生与检测通常是用硬件产生和检测DTMF信号。已经有多种专用的产生和检测DTMF信号的集成电路器件。具有代表性的DTMF发送、接收器的型号为MT8860,MT8862,MT8870,MT8872等。页眉内容精心整理DTMF信号发送器电路原理如图3所示,它主要包括:(1)晶体振荡器——外接晶体(通常采用3.58MHz)与片内电路构成振荡器、经分频产生参考信号。(2)键控可变速率时钟产生电路——它是一种可变分频比的分频器,通常由n级移位寄存器与键控反馈逻辑单元组成。(3)正弦波产生电路——它出正弦波编码器与D—A变换器构成。通常可变速时钟信号先经过5位移位寄存器,产生—组5位移位代码,再由可编程逻辑阵列(PLA)将其转换成二进制代码,送到D—A变换器转换成台阶形正弦波。显然台阶的宽度等于时钟频率的倒数,这样形成的正弦波频率必然对应于时钟的速率和按键的号码。(4)混合电路——将键盘所对应产生的行、列正弦波信号(即低高群fL、fH单音)相加,混合成双音信号而输出。(5)附加功能单元,如含有单音抑制、输出控制(禁止)、双键向按无输出等控制电路。DTMF接收器主要包括DTMF分组滤波器和DTMF译码器,其基本原理如图4所示。DTMF接收信号先经高、低群带通滤波进行fL/fH区分,然后过零检测、比较,得到相应于DTMF的两路fL/fH信号输出。该两路信号经译码、锁存、缓冲,恢复成对应于16种DTMF信号音对的4比特二进制码(L1一L4)。2.3双音多频信号软件产生与检测图3DTMF信号发送器电路原理图4硬件接收DTMF信号的电路原理页眉内容精心整理近年来DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。将DTMF信令的产生与检测集成到任一含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。为了产生DTMF信号,DSP用软件产生两个正弦波叠加在一起后发送,软件具体实现方式可以有三种方法:(1)用软件模拟DSP的方式产生两个数字正弦波振荡器并把输出合成起来,建立所希望的双音频。(2)通过产生的某频率的方波后再附加滤波器滤出二次以上的谐波,产生DTMF信号。(3)查表输出产生DTMF信号。软件检测DTMF信号主要有以下方法:(1)利用离散傅立叶变换(DFT)及其快速算法(FFT),求取DTMF信号频谱的峰值点,进而利用峰值点的频率判断发送的数字。这种方法的缺点是计算量大,不利于实时处理。但是如果使用MATLAB软件仿真则可以用很简单的几条语句实现。(2)对于DTMF信号的波形,波形过零点数量决定了低频信号的频率,而极值点数量决定了高频信号的频率。因此通过软件分别计算出高频频率和低频频率,从而实现DTMF的解码。这里选择采样频率为8K,已知每一个信号的频率至少持续40ms的时间,我们对DTMF采样160个点,即20ms,这样总会有一个20ms的采样点全部落在40ms的发送范围内,对采样的点进行6次求和取平均,去掉噪声成分,然后分别计算过零点的数目a和极值点的数目b,对应频率可以计算为:既然可以求出DTMF信号的一组频率值,那么就可以得出对应电话号码值。这种算法比较适合于单片机硬件实现,但是其抗噪声性能较差。(3)计算接收到的DTMF信号在8个既定频率的能量,进而确定是否有DTMF信号到达以及收到的是哪一对信号,此外通过计算接收信号的总能量来防止误判。采用Geortzel算法可进一步提高计算效率,Goertzel算法实质是一个两极点的IIR滤波器,对应每一个频点有一个匹配滤波器,在抽样时刻检测。这种方法理论上属于最佳接收方法,而且算法有利于用DSP实现。在本次课程设计中要求使用这种方法。DTMF解码即是在输入信号中搜索出有效的行频和列频。2.4数字正弦波振荡器原理页眉内容精心整理数字正弦波振荡器的功能是利用数字信号处理的方法产生正弦波信号)cos(t的抽样序列)cos(nT。基本原理是:设数字正弦波振荡器要产生的波形为)()(21)()cos()(nTueenTunTnynTjnTj(1)则其Z变换为上式的分子与分母同时乘以2zy(n)可以看作是一个单位冲击函数激励了一个线性系统的冲击响应。这个线性系统的传递函数就是Y(z)。由Y(z)可以写出该线性系统的差分方程:式中ssffT/20为数字角频率。令输入x(n)为单位冲击函数,即则可以得到下面的递推方程当n0时,y(n)=0当n=0时,y(0)=0当n=1时,)cos()1()cos()0()cos(2)1(000xyy当n=2时,)0()1()cos(2)2(0yyy当n2时,)2()1()cos(2)(0nynyny(2)实现时,首先将每个频率常数存在一个表中,用来初始化给定键的振荡器;再按照(2)进行迭代计算,就得到正弦序列的输出;将两个这样的输出叠加即可得到双音频的输出。每个数字输出的样本数取决于数字速率与采样速率。双音频中的每一个音调之后都是同样长度的无音周期,从而可以检测到按键的释放。2.5数字匹配滤波器原理(Geortzel算法)计算接收到的DTMF信号在8个既定频率的能量,进而确定是否有DTMF信号到达以及收到的是哪一对信号,此外通过计算接收信号的总能量来防止误判。为满足检测8个DTMF频点(偏差1.5%),需计算256点FFT,因只对8个频点感兴趣,故可以直接计算8个频点附近的DFT10/2)()(NnNknjenxkX,87654321,,,,,,,kkkkkkkkk计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF页眉内容精心整理信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goertzel算法能更加快速地在输入信号中提取频谱信息。Goertzel算法实质是一个两极点的IIR滤波器,其算法原理框图如图5。图5Geortzel算法信号流图对应每一个频点有一个匹配滤波器,第k个频率匹配滤波器的传递函数为其中211cos211)(zzzHkk,121)(zWzHkNk,NkfNfkffskk222,kkNkjkNjeWsincos2对应的前、后向差分方程为:后一个方程无需全部计算,只需要在n=N时刻,即最后的输出时刻计算。如果考虑同步相位误差,也可以在n=N时刻附近计算一段时间内的输出。前向差分方程也可以改写为便于计算的递归形式:并令初始值为0,0)(nnvk。在n=N时刻既可以得到所需要的X(k)。由于在DTMF检测中,输入的信号是实数序列,并不需要检测出8个行频/列频的相位,只需要计算出其幅度平方即可。因此计算|X(k)|2如下:这里)1(),(NvNvkk分别表示状态变量在N和N-1时刻的值。在输入信号中检测DTMF信号,并将其转换为实际的数字,这一解码过程本质是连续的过程,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。整个检测过程分两步:首先采用Goertzel算法在输入信号中提取频谱信息;接着作检测结果的有效性检查。2.6仿真系统框图图6仿真系统框图软件流程图键控输入DTMF信号的产生DTMF信号检测电话信道判断输出高斯噪声页眉内容精心整理(1)输入键号(2)生成DTMF信号(时域、频域显示)(3)产生高斯噪声(时域、频域显示)(4)信道传输(高斯白噪声信道,可选作带限滤波器信道)(5)接收端随机延迟(30个点以内)(6)匹配滤波接收(7)DTMF信号到达检测(8)DTMF信号识别(时域、频域显示)(9)DTMF键号识别3.工作内容与思考题3.1工作内容1、设计计算正弦波数字振荡器、数字匹配滤波器的参数;2、用MATLAB语言设计一个利用DTMF信号传输学号代码的仿真系统。观察下列信号的波形:学号代码的非归零基带信号、DTMF信号、信道加入噪声、接收信号、匹配滤波器输出、译码判决结果;3、利用仿真的系统进行抗干扰性能等方面的试验分析,试验分析的具体内容详见思考题。3.2思考题[1]分析DTMF信号的频谱,为什么DTMF信号能够在电话信道传输,要求的带宽为多少?
本文标题:DTMF产生传输及检测软件仿真课程设计-(2)
链接地址:https://www.777doc.com/doc-6258866 .html