DTMF信号的产生与接收要点.docx
《DTMF信号的产生与接收要点.docx》由会员分享,可在线阅读,更多相关《DTMF信号的产生与接收要点.docx(23页珍藏版)》请在冰豆网上搜索。
![DTMF信号的产生与接收要点.docx](https://file1.bdocx.com/fileroot1/2023-2/21/aa8aa3a6-e966-48b3-b556-a5197729f40b/aa8aa3a6-e966-48b3-b556-a5197729f40b1.gif)
DTMF信号的产生与接收要点
数字信号处理综合实验设计
题目:
DTMF信号的产生与接收
姓名:
庞露深学号:
20144148087
姓名:
韩晓艺学号:
20144148036
姓名:
张森豪学号:
20144141045
姓名:
孙坤宁学号:
20144161081
姓名:
陈爽学号:
20144148063
年级专业:
14级通信工程
指导老师:
田晓燕
2016年12月25日
DTMF信号系统的产生与接收
具体分工如下:
搜集资料:
陈爽
编写程序:
庞露深、韩晓艺
撰写报告:
孙坤宁、张森豪
摘要
双音多频(DualToneMultiFrequency,DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。
这种信号制式具有很高的拨号速度,且容易自动检测识别,很快就代替了原有的用脉冲计数方式的拨号制式。
这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其他通信系统中,用于电子邮件和银行系统中。
这些系统中用户可以用电话发送DTMF信号选择语音菜单进行操作。
DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了D/A变换器;在接收端用A/D变换器将其转换成数字信号,并进行数字信号处理。
本文使用一种快速的频率检测算法——FFT算法,利用MATLAB在计算机上对双音多频的信令产生及检测接收系统进行了仿真测试。
关键词:
双音多频,FFT算法,数字信号处理,傅里叶变换;
本设计是本人精心设计的,功能强大,可以随便输入电话号码,多少位都可以,而且分页显示DFT图像,不懂得可以加1054105507咨询!
目录
摘要……………………………………………………………………………ⅠⅠ
1.绪论…………………………………………………………………………………1
1.1引言…………………………………………………………………………1
1.2数字信号简介………………………………………………………………1
1.3数字滤波器…………………………………………………………………3
1.4频率分析……………………………………………………………………3
1.4.1傅里叶级数及傅里叶变换…………………………………………4
1.4.2Z变换及系统函数………………………………………………4
1.4.3离散系统傅里叶变换(DFT)………………………………………5
2.双音多频(DTMF)通信系统………………………………………………………5
2.1双音多频(DTMF)信号简介………………………………………………5
2.2双音多频(DTMF)信号的产生……………………………………………6
2.3双音多频(DTMF)信号的检测……………………………………………7
3.检测双音多频信号(DTMF)的DFT参数…………………………………………9
3.1频谱分析的分辨率………………………………………………………9
3.2频谱分析的频率范围……………………………………………………9
3.3检测频率的准确性………………………………………………………10
4.双音多频(DTMF)系统的Matlab实现…………………………………………11
4.1Matlab简介………………………………………………………………11
4.2双音多频(DTMF)系统的逻辑图…………………………………………12
4.3双音多频(DTMF)系统的仿真…………………………………………13
5.结束语……………………………………………………………………………16
致谢…………………………………………………………………………………16
1绪论
1.1引言
双音多频(DualToneMultiFrequency,DTMF)信号,由美国AT&T贝尔实验室研制,用于音频电话网络中的拨号信号。
一方面这种信号具有非常高的拨号速度,另一方面它便于自动检测识别及电话业务的拓展,所以很快代替了原有的脉冲计数方式的拨号形式。
自1876年美国贝尔发明电话以来,电话交换技术发展主要经历了三个阶段:
人工交换、机电交换、电子交换。
早在1878年就出现了人工供电制交换机,它借助话务员进行话务连接。
15年后步进制的交换机问世,这种交换机属于“直接控制”方式,用户通过话机拨号脉冲直接控制步进接续器做升降和旋转动作。
从而自动完成用户间的接续。
这种交换机虽然实现了自动接续,但存在着速度慢、效率低、杂音大与机械磨损严重等缺点。
直到1938年发明了纵横制交换机由直接控制过渡到间接控制方式,随后又出现了电子交换机及程控交换机等。
用户的拨号脉冲不再直接控制接线器动作,而先由记发器接收、存储,然后通过标志器驱动接线器,以完成用户间接续。
由于标志器记取的是标识信号,所以可以不采用不稳定的脉冲计数方式,逐步发展到数字号码标识,所以快速、稳定灵活的DTMF音频拨号方式取代了脉冲计数方式。
本文主要阐述FFT算法在双音拨号系统中的应用,并利用Matlab的强大功能,用软件实现DTMF(双音多频)信号的检测。
1.2数字信号简介
信号是反映消息的物理量,是消息的表现形式。
由于非电的物理量可以通过各种传感器较容易地转换成电信号,而电信号又容易传送和控制,所以使其成为应用最广的信号。
电信号是指随着时间而变化的电压或电流,因此在数学描述上可将它表示为时间的函数,并可画出其波形。
信息可以通过电信号进行传送、交换、存储、提取等。
电信号的形式是多种多样的,可以从不同的角度进行分类。
根据信号的随机
性可以分为确定信号和随机信号;根据信号的周期性可分为周期信号和非周期信
号;根据信号的连续性可以分为连续时间信号和离散信号;在电子线路中将信号分为模拟信号和数字信号。
我们每天遇到的信号,大部分都是模拟信号。
离散时间信号只被定义在一种特定的时间瞬间集合上,表现为具有连续数值范围的数值序列。
而数字信号在时间上和幅值上都有离散的数字。
因此在实际的操作中,数字信号更容易处理。
随着数字电子技术的发展,在语音处理、通信控制、图象处理等领域DSP(DigitalSignalProcessor数字信号处理器)也得到了越来越广泛的应用。
数字通信抗干扰能力强、无噪声积累,由于数字信号的幅值为有限个离散值(通常取两个幅值),在传输过程中虽然也受到噪声的干扰,但当信噪比恶化到一定程度时,即在适当的距离采用判决再生的方法,再生成没有噪声干扰的和原发送端一样的数字信号,所以可实现长距离高质量的传输。
较之传统的方法,数字信号处理系统自身有着无可比拟的优点:
(1)便于加密处理
信息传输的安全性和保密性越来越重要,数字通信的加密处理的比模拟通信容易得多,以话音信号为例,经过数字变换后的信号可用简单的数字逻辑运算进行加密、解密处理。
(2)便于存储、处理和交换
数字通信的信号形式和计算机所用信号一致,都是二进制代码,因此便于与计算机联网,也便于用计算机对数字信号进行存储、处理和交换,可使通信网的管理、维护实现自动化、智能化。
(3)设备便于集成化、微型
数字通信采用时分多路复用,不需要体积较大的滤波器。
设备中大部分电路是数字电路,可用大规模和超大规模集成电路实现,因此体积小、功耗低。
(4)便于构成综合数字网和综合业务数字网
采用数字传输方式,可以通过程控数字交换设备进行数字交换,以实现传输和交换的综合。
另外,电话业务和各种非话业务都可以实现数字化,构成综合业务数字网。
(5)占用信道频带较宽
一路模拟电话的频带为4kHz带宽,一路数字电话约占64kHz,这是模拟通信目前仍有生命力的主要原因。
随着宽频带信道(光缆、数字微波)的大量利用以及数字信号处理技术的发展,数字电话的带宽问题已不是主要问题了。
1.3数字滤波器
数字滤波器由数字加法器、单位延时和常数乘法器组成的一种算法或装置。
数字滤波器的功能是对输入离散信号的数字代码进行运算处理,即把输入序列通过一定的运算变换成输出序列,以达到改变信号频谱的目的。
数学公示表示如下:
(1.3-1)
通常可以用两种方法实现数字滤波器:
一种方法是把滤波器所完成的运算编成程序并让计算机执行,也就是采用就算机软件实现;另一种方法是设计专用的数字硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。
存在着两种数字滤波器的的基本类型:
无限长单位冲击响应(IIR)滤波器和有限长单位冲击响应(FIR)滤波器。
它们的系统函数分别为:
(1.3-2)
(1.3-3)
式(1.3-2)中的H(Z)称为N阶IIR滤波器函数式,(1.3-3)中的H(Z)称为N-1阶FIR滤波器函数。
无限长单位冲激响应(IIR)滤波器的单位冲激响应h(n)是无限长的;系统函数H(Z)在有限Z平面(0<︱Z︱﹤∞)上有极点存在;结构上存在着输出到输入的反馈,也就是结构上是递归型的。
1.4频率分析
任何给定信号的频率分析,都包含着时域信号向其频率分量的转换。
之所以要在频域内对信号进行描述,因为在实现信号处理时,通常都利用以频率响应形式描述的系统。
而这些频域信号处理概念时傅立叶变换是必不可少的。
同时Z变换对进行数字系统分析和实现也极其重要。
1.4.1傅立叶级数及傅立叶变换
任何周期信号X(t)均可以表示为无穷多个谐波调谐相关的正弦波和复指数之和。
具有周期T0(秒)周期信号x(t),其基本的数学表达式为具有系列定义的傅立叶级数:
(1.4.1-1)
式中Ck为傅立叶级系数,第k个傅立叶系数Ck可以表示为
(1.4.1-2)
用周期信号的傅立叶级数通过极限的方法导出的非周期信号的频谱表示式,称为傅立叶变换:
傅立叶逆变换:
(1.4.1-3)
傅立叶正变换:
=
(1.4.1-4)
1.4.2Z变换及系统函数
对于离散时间系统来说,与拉普拉斯对应的变换是是Z变换,Z变换提供了离散时间信号和系统的频域描述,并为数字滤波器的设计和实现,提供了有力的工具。
序列x(n)的Z变换定义为:
(1.4.2-1)
式中z是一个复变量,定义中对n求和是在+∞和-∞之间求和,称为双边
Z变换。
还有一种称为单边Z变换的定义,如下式:
(1.4.2-2)
将系统的单位脉冲响应h(n)进行Z变换,得到H(z),一般称H(z)为系统的系统函数,它表征了系统的频域特性。
对N阶差分方程进行Z变换,得到系统函数的一般表示式
(1.4.2-3)
令Z=ejω即得系统的传输函数H(ejω)。
1.4.3离散系统傅立叶变换(DFT)
离散傅立叶变换是针对有限长序列或周期序列从存在的,相当把序列的连续傅立叶变换加以抽样,频率的离散化造成时间函数也呈周期,故级数应限制在一个周期内。
令
,则
,我们即可得到离散傅立叶变换对为:
(1.4.3-1)
(1.4.3-2)
其中
表示有限长序列的抽样点数,或周期序列一个周期的抽样点数。
2双音多频(DTMF)通信系统
2.1双音多频(DTMF)信号
过去的电话拨号时靠脉冲计数确定0~9这10个数字的,拨号速度慢,也不能扩展电话上网其他服务功能。
现在均采用双音拨号。
每一位号码由两个不同的单音频组成,所有的频率可分成高频带和低频带两组。
每一位号码由一个高频信号和一个低频信号叠加形成,DTMF信号有16个编码。
一般情况下,声音信号很难造成对DTMF接收器的错误触发。
电话中的双音多频信号有两个作用:
用拨号信号去控制交换机接通被叫的用户电话机;控制电话机的各种动作,如播放留言、语音信箱等。
2.2双音多频(DTMF)信号的产生
DTMF编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。
典型的DTMF信号频率范围是700~1700Hz,选取8000Hz作为采样频率,DTMF双音频信号由两个二阶数字正弦振荡器产生,一个用来产生行音频信号,另一个产生列音频信号。
在电话键盘上的每次按键,会产生式(2.2-1)表示的两个音调之和。
规定用8KHz对DTMF信号进行采样,采样后得到时域离散信号为
(2.2-1)
两个频率f1,f2唯一确定了被按压的键。
具体数字对应的两个频率如表2.2.1所示。
表2-1DTMF拨号频率(第四列常被省略)
频
低
频
高
1209Hz
1336Hz
1477Hz
1633Hz
697Hz
1
2
3
A
770Hz
4
5
6
B
852Hz
7
8
9
C
942Hz
*
0
#
D
形成上面序列的方法有两种,即计算法和查表法。
用计算法求正弦波的序列值容易,但实际中要占用一些计算时间,影响运行速度。
查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按顺序和一定的速度取出便可。
这种方法要占用一定的存储空间,但是速度快。
因为采样频率是8000Hz,因此要求每125ms输出一个样本,得到的序列再送到D/A变换器和平滑滤波器,输出便是连续时间的DTMF信号。
DTMF信号通过电话线路送到交换机。
2.3双音多频(DTMF)信号的检测
在接收端,要对收到的将收到的双音多频信号进行检测,即检测两个正弦波的频率,以判断其对应的十进制数字或者符号。
用数字方法进行检测,需要将接收到的模拟音频信号进行A/D变换,恢复为数字信号,然后检测其中的音频频谱来确定所发送的数字。
检测方法有两种,一种是用一组滤波器来提取所需频率,判断对应的数字或符号;另一种是用快速傅立叶变换(FFT)算法的DFT对双音多频信号进行频谱分析,有信号的幅度谱,判断信号的两个频率,最后确定对应的数字或符号。
以下章节对两种方法进行分析并对FFT算法进行详细的推导。
由上面可以知道一个DTMF信号是由两个不通频率f1和f2的正弦波组成,它可以用下式表示
(2.3-1)
我们可以考虑通过离散傅立叶变换进行信号的频谱分析来检测离散的双音
多频码。
这是因为只有时域及频域都是离散的情况下,才能适合于在计算机上运算;也就是周期的离散时间信号与离散频率间的变换对。
周期性离散时间信号x(n)的离散傅立叶变换-周期性离散频率函数X(k)两相邻谱线分量之间的角频率增量与周期
之间的关系可表示为
,
代表信号的基频。
取样频率
与取样周期T的关系是
取样角频率
T为时域取样间隔,在一个周期内取样点数为N。
在自变量为t及f的情况下,在一个时域中对函数进行取样,两取样点间增量的倒数,必是另一个域中函数的周期。
现序列的周期为NT,所以对频谱取样的间距是
。
以数字频率表示时,则频谱间距是
k=0,1,……,N-1
令
并称之为
因子。
离散傅立叶变换(DFT)可写成如下形式:
,0≤k≤N-1(2.3-2)
DFT的表达式可以直接写成:
,k=0,1,……,N-1(2.3-3)
一般来说,x(n)和
都是复数,X(k)也是复数,每计算一个X(k)值,需要N次复数乘法(x(n)与
相乘)以及(N-1)次复数加法。
而X(k)一共有N个点(k从0取到N-1),所以完成整个DFT运算总共需要
次
复数乘法及N(N-1)次复数加法。
复数运算实际上是由实数运算来完成的,因此上式可写成:
(2.3-4)
由此可见,一次复数乘法需用四次实数乘法和两次实数加法;一次复数加法则需两次复数加法。
因而每运算一个需要4N次复数乘法和2N+2(N-1)=2(2N-1)次实数加法。
所以,直接计算DFT,乘法次数和加法次数都是和
成正比的,当N很大时,运算量是很可观的,例如,当N=8时,DFT需64次复数乘法,而当N=1024时,DFT所需复数乘法为1,048,576次,即一百多万次复数乘法运算,这对实时性很强的信号处理来说,对计算速度的要求太高了。
因而需要改进对DFT的计算方法,以大大减少运算次数。
仔细观察DFT的运算量可以看出,利用系数的以下固有特性,可以减少DFT的运算量。
(1)
的共轭对称性:
(2)
的周期性:
(3)
的可约性:
由此得出
,
,
这样,
(1)利用这些特性,使DFT运算中有些项可以合并;
(2)利用
的周期性和对称性,可以将长序列的DFT分解为短序列的DFT。
而前面已经说到,DFT的运算量使与
成正比的,所以N越小越有利,因而小点数的DFT比大
点数的DFT的运算量要小。
基于这样的思路,快速傅立叶变换(FFT)发展起来了。
如果按时间抽取的FFT算法,系统的运算量是
,运算量明显比DFT运算量减少。
3检测双音多频信号(DTMF)的DFT参数
用DFT检测模拟DTMF信号所含有的两个音频频率,即为用DFT对模拟信号进行频谱分析的问题,要确定三个参数:
采样频率Fs,DTF的变换点数N,需要对时间的观察长度Tp。
3.1频谱分析的分辨率
观察表2-1要检测的8个频率,相邻间隔最小的是第一个和第二个频率,间隔是73Hz,要求DFT至少能够分辨相隔73Hz的两个信号,即要求Fmin=73Hz。
DFT的分辨率和对信号的观察时间Tp有关,Tpmin=1/F=1/73=13.7ms。
考虑到可靠性,应留有富余量,要求按键的时间在40ms以上。
3.2频谱分析的频率范围
要检测信号的频率范为697~1633Hz,但考虑存在语音干扰,除了检测这8个频率外,还要检测它们的二次倍频的幅度大小。
波形正常且干扰小的正弦波的二次倍频是很小的。
如果发现二次谐波很大,则认为不是DTMF信号。
这样频谱分析的范围为697~3266Hz。
按照采样定理,信号的最高频率不能超过折叠频率,即0.5Fs≥3266Hz,由此要求最小采样频率应为6.53KHz。
总系统已经规定Fs=8KHz,因此一定满足对频谱分析的要求。
按照Tpmin=13.7ms,Fs=8KHz,算出对信号最少的采样点数为Nmin=Tpmin*Fs≈110。
3.3检测频率的准确性
这是一个用DFT检测正弦波频率是否准确的问题。
序列的N点DFT是对序列频谱函数在0~
区间的N点等间隔采样,如果是一个周期序列,截取周期序列的整数倍周期,进行DFT,其采样点刚好在周期信号的频率上,DFT的幅度最大处就是信号的准确频率。
分析这些DTMF信号,不可能经过采样得到周期序列,因此存在检测频率的准确性问题。
根据
求x(n)在fs=8000Hz,N=205点的DFT,求出各个基准频率对应的K值如下表:
8个基频(Hz)
DFT的k值
697
19
770
21
852
23
941
25
1209
32
1336
35
1477
39
1633
43
4双音多频(DTMF)系统的Matlab实现
4.1Matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
● 数字图像处理 技术
● 数字信号处理 技术
●通讯系统设计与仿真
●财务与金融工程
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
它有如下的特点:
(1)功能强的数值运算―在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。
(2)先进的资料视觉化功能―MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。
(3)高阶但简单的程式环境―作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用FORTRAN或C的几分之一,而且不需要编译(compile)及联结(link)即能执行,同时包含了更多及更容易使用的内建功能。
(4)开放及可延伸的架构―MATLAB容许使用者接触它大多数的数学原始码,检视运算法,更改现存函数,甚至加入自己的函数使MATLAB成为使用者所须要的环境。
(5)丰富的程式工具箱―MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。
现有工具箱有:
符号运算(利用MapleV的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。
因为有了这些工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高了编程效率,其程序编译和执行速度远远超过了BASIC、FORTRAN和C等语言。
4.2双音多频(DTMF)系统的逻辑图
4.3双音多频(DTMF)系统的仿真
DTMF信号的产生与识别仿真实验在MATLAB环境下进行,编写仿真程序,运行程序,送入电话号码,程序自动产生每一位号码数字相应的DTMF信号,并送出双频声音,再用DFT进行谱分析,显示每一位号码数字的DTMF信号的DFT幅度谱,按照幅度谱的最大值确定对应的频率,再按照频率确定每一位对应的号码数字,最后输出电话号码。
下面用MATLAB程序对该系统进行模拟,程序如下:
%DTMF双频拨号信号的生成和检测程序:
t1='123A';t2='456B';t3='789C';t4='*0#D';%DTMF信号代表的16个数
tm=[double(t1);double(t2);double(t3);double(t4)];%DTMF信号代表的16个ASCII值
i=0;
N=205;%FFT采样点数
K=[19,21,23,25,32,35,39,43];%8个基频对应的8个k值
f1=[697,770,852,941];%行频率向量
f2=[1209,1336,1477,1633];%列频率向量
Y1=input('键入电话号码=','s');%输入一串数字
Y2=double(Y1);%输入字符串变成ASCII码
T=length(Y2);%求输入号码长度
Y3=zeros(1,T);%接收端电话号码初值为零
forl=1:
T;%分别对每位号码数字处理:
产生信号,检测
d=Y2(l);%计算出第l位号码数字
forp=1:
4;
forq=1:
4;
iftm(p,q)==d;break,end%检测与l位号码相符的列号q
end
iftm(p,q)==d;break,end%检测与l位号码相符的行号p