DTMF通信系统设计与仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DTMF通信系统设计与仿真信息科学与工程学院电子通信系1、任务、性质与意义•任务:综合运用通信原理、数字信号处理等课程所学知识,设计实现双音多频(DTMF)信号传输过程的软件仿真。•性质:通信原理、数字信号处理等课的综合实践环节。•意义:–从理论上加深对有关通信、数字信号处理原理的综合理解;–了解DTMF信号原理和用数字信号处理的方法实现DTMF信号的产生、传输与检测的过程。–掌握一门新的计算机编程工具—MATLAB。2、基本原理•2.1双音多频(DTMF)信号双音多频(DTMF)信号就是用两个不同频率的音频信号的组合。)2cos2(cos)(tftfAtsLHDTMF在电话通信系统中应用脉冲拨号方式:•开关控制二线电路的通与断•每个脉冲周期100ms•40%的占空时间•两个相继数字的时间间隔可以从0.5S到数秒之间变化不等•发送一个10位长的号码大约需要7秒的时间DTMF拨号方式:•每一数字用一对音频表示•8个单音频分为两组,高频和低频同时传输•传送速率为每秒10个数字,或者每个数字100ms。•100ms中,45ms--55ms有信号,其余为静音•允许有1.5%的频率偏移,不得超出3.5%•要求信噪比不低于15dB•DTMF的拨号方式比双脉冲拨号方式可快至10倍,抗干扰能力大大高于脉冲拨号方式,避免占用额外的信道应用•电话系统控制信令•测量•在话音信道上传送各类控制指令实现电话控制家用电器的启停,传送远方的状态监测信息。•基于电话的信息服务在实际系统中,首次拨号由程控交换机识别,完成主叫与被叫之间的接续;二次乃至多次拨号的识别以及操作由用户系统自己完成。DTMF信号的硬件产生与检测DTMF信号发送器电路原理电路组成•晶体振荡器——外接晶体(通常采用3.58MHz)与片内电路构成振荡器、经分频产生参考信号•键控可变速率时钟产生电路——它是一种可变分频比的分频器,通常由n级移位寄存器与键控反馈逻辑单元组成•正弦波产生电路——它出正弦波编码器与D—A变换器构成。通常可变速时钟信号先经过5位移位寄存器,产生—组5位移位代码,再由可编程逻辑阵列(PLA)将其转换成二进制代码,送到D—A变换器转换成台阶形正弦波•混合电路——行、列信号相加、输出•附加功能单元,如含有单音抑制、输出控制(禁止)、双键向按无输出等控制电路。硬件接收DTMF信号的电路原理DTMF接收器主要包括DTMF分组滤波器和DTMF译码器。DTMF接收信号先经高、低群带通滤波进行fL/fH区分,然后过零检测、比较,得到相应于DTMF的两路fL/fH信号输出。该两路信号经译码、锁存、缓冲,恢复成对应于16种DTMF信号音对的4比特二进制码(L1一L4)。双音多频信号软件产生与检测•为了产生DTMF信号,DSP用软件产生两个正弦波叠加在一起后发送,软件具体实现方式可以有三种方法:•(1)用软件模拟DSP的方式产生两个数字正弦波振荡器并把输出合成起来,建立所希望的双音频•(2)通过产生的某频率的方波后再附加滤波器滤出二次以上的谐波,产生DTMF信号•(3)直接编程输出正弦信号组成数据表格,查表输出产生DTMF信号软件检测DTMF信号主要方法:(1)利用离散傅立叶变换(DFT)及其快速算法(FFT),求取DTMF信号频谱的峰值点,进而利用峰值点的频率判断发送的数字。缺点:计算量大,不利于实时处理。(2)由波形过零点确定低频信号的频率,而极值点确定高频信号的频率。当采样频率为8K时,每个DTMF信号的持续40ms.采样160个点,即20ms采样点全部落在40ms的发送范围内,对采样的点进行6次求和取平均然后分别计算过零点的数目a和极点的数目b,对应频率可以计算为:afL*50bfH*50软件检测DTMF信号主要方法:•计算接收到的DTMF信号在8个既定频率的能量,进而确定是否有DTMF信号到达以及收到的是哪一对信号,此外通过计算接收信号的总能量来防止误判。采用Geortzel算法可进一步提高计算效率,Goertzel算法实质是一个两极点的IIR滤波器,对应每一个频点有一个匹配滤波器,在抽样时刻检测。这种算法有利于用DSP实现。在本次课程设计中要求使用这种方法。2.4数字正弦波振荡器原理•数字正弦波振荡器的功能是利用数字信号处理的方法产生正弦波信号的抽样序列。设数字正弦波振荡器要产生的波形为•则其Z变换为)()(21)()cos()(nTueenTunTnynTjnTj0)(21)()(nnnTjnTjnnzeeznyzY1cos2)cos(212TzzTzzezzezznTjnTj•y(n)可以看作是一个单位冲击函数激励了一个线性系统的冲击响应。这个线性系统的传递函数就是Y(z)。由Y(z)可以写出该线性系统的差分方程:令输入x(n)为单位冲击函数,即••则可以得到下面的递推方程211cos21cos1zTzTz)1()cos()()2()1()cos(2)(00nxnxnynyny0001)()(nnnnx•当n0时,y(n)=0•当n=0时,y(0)=0•当n=1时,•当n=2时,•当n2时,•式中。实现时,先将每个频率常数存在一个表中,用来初始化振荡器;再迭代计算得到正弦序列的输出;将两个这样的输出叠加即可得到双音频的输出。每个数字输出的样本数取决于数字速率与采样速率。)cos()1()cos()0()cos(2)1(000xyy)0()1()cos(2)2(0yyy)2()1()cos(2)(0nynynysff/202.5数字匹配滤波器原理•计算接收到的DTMF信号在8个既定频率的能量,进而确定是否有DTMF信号到达以及收到的是哪一对信号,此外通过计算接收信号的总能量来防止误判。为满足检测8个DTMF频点(偏差1.5%),需计算256点FFT,因只对8个频点感兴趣,故可以直接计算8个频点附近的DFT10/2)()(NnNknjenxkXGoertzel算法•Goertzel算法实质是一个两极点的IIR滤波器,其算法原理框图如图•对应每一个频点有一个匹配滤波器,第k个频率匹配滤波器的传递函数为其中对应的前、后向差分方程为:)()(cos211)(21211zHzHzTzzWzHkkkkNK211cos211)(zTzzHkk121)(zWzHkNkNkjkNeW2•后一个方程无需全部计算,只需要在n=N时刻,即最后的输出时刻计算并令初始值为)()2()1()2cos(2)(nxnvnvNknvkkk)1()()(nvWnvnykkNkk)1()()()(NvWNvNykXkkNkk0,0)(nnvk•在n=N时刻既可以得到所需要的X(k)。由于在DTMF检测中,输入的信号是实数序列,并不需要检测出8个行频/列频的相位,只需要计算出其幅度平方即可。因此计算|X(k)|2如下:这里分别表示状态变量在N和N-1时刻的值。)1()1()(2cos2)()(222NvNvNvffNvkXkkkskk)1(),(NvNvkk2.6仿真系统框图DTMF信号的产生DTMF信号检测电话信道判断输出高斯噪声软件流程图(1)输入键号(2)生成DTMF信号(时域、频域显示)(3)加入高斯噪声(时域、频域显示)(4)信道传输(5)接收端随机延迟(30个点以内)(6)DTMF信号到达检测(7)DTMF采样(8)DTMF频谱分析(时域、频域显示)(9)DTMF键号识别3.本课程设计的工作内容•1、设计计算正弦波数字振荡器、数字匹配滤波器的参数;•2、用MATLAB语言设计一个利用DTMF信号传输学号代码的仿真系统。观察下列信号的波形:学号代码的非归零基带信号、DTMF信号、信道加入噪声、接收信号、匹配滤波器输出、译码判决结果;•3、对仿真系统进行抗干扰性能仿真分析。4本课程设计的要求•1、自学复习通信原理、数字信号处理的有关内容,掌握算法原理;•2、自学MATLAB语言的使用;•3、完整实现仿真系统;•4、记录观察到的各种波形;•5、撰写课程设计报告。报告统一使用B5纸,统一封面,篇幅以3000字为宜。报告中要有设计过程、仿真系统运行结果、记录、波形的分析与讨论。正文手写,图、程序可以打印作为附件。5.编程工具MATLAB简介•5.1基本运算与函数在MATLAB下进行基本数学运算,只需将运算式直接打入提示号()之后,并按入Enter键即可。例如:(5*2+1.3-0.8)*10/25ans=4.2000•也可将上述运算式的结果设定给另一个变量x:x=(5*2+1.3-0.8)*10^2/25x=42若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可。5.1基本运算与函数•变量也可用来存放向量或矩阵,并进行各种运算,如下例的向量运算:•x=[1352];•y=2*x+1•y=•371155.2控制命令5.2.1for语句,其基本形式为:for变量=矩阵;运算式;end其中变量的值会被依次设定为矩阵的每一行,来执行介于for和end之间的运算式。因此,若无意外情况,运算式执行的次数会等于矩阵的行数。举例来说,下列命令会产生一个长度为6的调和数列:x=zeros(1,6);%x是一个1行6列的零矩阵fori=1:6,x(i)=1/i;end•5.2.2while语句•基本形式为:•while条件式;•运算式;•end也就是说,只要条件示成立,运算式就会一再被执行。例如先前产生调和数列的例子,我们可用while圈改写如下:•x=zeros(1,6);%x是一个16的零矩阵•i=1;•whilei=6,•x(i)=1/i;•i=i+1;•end•5.2.3条件语句if,...,end•基本形式为:•if条件式;•运算式;•end•例:•ifrand(1,1)0.5,•disp('Givenrandomnumberisgreaterthan0.5.');•end•5.2.4MATLAB文件•若要一次执行大量的MATLAB命令,可将这些命令存放于一个扩展名为m的文件。包含MATLAB命令的文件都以m为扩展名,因此通称m文件,只要直接键入文件名,就可执行其所包含的命令。严格来说,m文件可再细分为命令集(Scripts)及函数(Functions)。•命令集的效果和将命令逐一输入完全一样,因此若在命令集可以直接使用工作空间的变量,而且在命令集中设定的变量,也都在工作空间中看得到。•函数则需要用到输入参数和输出参数来传递变量,这就像是C语言的函数。在调用函数时,你只能经由输入参数来控制函数的输入,经由输出参数来得到函数的输出,但所有的暂时变量都会随着函数的结束而消失。5.3MATLAB常用的数学函数•abs(x):标量的绝对值或向量的长度•angle(z):复数z的相角(Phaseangle)•sqrt(x):开平方•real(z):复数z的实部•imag(z):复数z的虚部•conj(z):复数z的共轭复数•round(x):四舍五入至最近整数•fix(x):无论正负,舍去小数至最近整数•sign(x):符号函数。当x0时,sign(x)=-1;当x=0时,sign(x)=0;当x0时,sign(x)=1。•rem(x,y):求x除以y的余数•gcd(x,y):整数x和y的最大公因数•lcm(x,y):整数x和y的最小公倍数•exp(x):自然指数ex•pow2(x):2的指数2x•log(x):以e为底的对数,即自然对数ln(x)•log2(x):以2为底的对数log2(x)•log10(x):以10为底的对数log10(x)•sin(x):正弦函数•cos(x):余弦函数•tan(x):正切函数•asin(x):反正弦函数•acos(x):反馀弦函数•atan(x):反正切函数•

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功