基于DSP的DTMF信号的检测.pdf
- 文档编号:3219524
- 上传时间:2022-11-20
- 格式:PDF
- 页数:14
- 大小:446.39KB
基于DSP的DTMF信号的检测.pdf
《基于DSP的DTMF信号的检测.pdf》由会员分享,可在线阅读,更多相关《基于DSP的DTMF信号的检测.pdf(14页珍藏版)》请在冰豆网上搜索。
基于DSP的DTMF信号的检测作者:
高中秋物理与电子信息学院01信电1班01063103摘摘要要:
双音多频DTMF(DualToneMulti-Frequency)信令在全世界范围内得到广泛应用,将DTMF信令的产生与检测集成到含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。
本文给出一种实现方案,阐述DTMF信令的产生与检测的基本原理:
用两个二阶数字数字正弦振荡器产生DTMF信号,并通过Goertzel算法实现DTMF信号检测。
本论文是在TI公司定点DSP芯片TMS320C54x系列中的实现DTMF信号的检测,采用DSP技术既增加了系统的功能、灵活性,又降低费用,克服了硬件电路实现检测的缺点。
关键词:
关键词:
数字信号处理器DSP双音多频DTMF正弦波振荡器Goertzel算法目目录录11背景阐述背景阐述1.11.1引言引言112.2.方案对比方案对比22基本原理基本原理2.12.1DTMFDTMF号简述号简述2222振荡器的工作原理振荡器的工作原理2233GoertzelGoertzel算法算法2244TMS320C54XTMS320C54X系列系列DSPDSP芯片特点芯片特点33TMS320C5402TMS320C5402中实现中实现DTMFDTMF信号的产生与检测信号的产生与检测3311。
TMS320C5402TMS320C5402中实现中实现DTMFDTMF信号的产生信号的产生33。
22。
DTMFDTMF信号的检测信号的检测33。
22。
11。
方法。
方法:
33。
22。
22。
DSPDSP中实现中实现DTMFDTMF频谱信号的提取频谱信号的提取33。
22。
33。
DTMFDTMF信号有效性的检测信号有效性的检测33。
22。
44。
DTMFDTMF信号检测程序流程图信号检测程序流程图44。
数据分析。
数据分析5。
性能分析。
性能分析6。
MATLAB验证验证DTMF信号的产生与检测信号的产生与检测7。
结论。
结论22背景阐述背景阐述1.11.1引言引言电话中的双音多频信号(DTMF)有两种用途:
一是用于双音多频信号的拨号,去控制交换机接通被叫的用户话机;二是利用双音多频信号遥控电话机各种动作,如播放留言、语音信箱等,并可以通过附加一些电路来是实现遥控家电设备的开启关闭等智能功能。
前者解决双音多频信号的发送和编码,后者是双音多频信号的接收和解码。
这些东西都离不开DTMF信号的正确检测。
目前,大多数的DTMF信号的检测均采用专用的发送、接收芯片,这种解码的原理都依赖于计算输入信号的过零率。
但这种方法有很大的局限性,无法检测多路DTMF信号,当混有语音和噪声时,专用芯片检测往往出现误差,如果音频信号频率改变应用于别的系统时,专用的芯片就发挥不了作用。
所以,用硬件实现DTMF信号的检测并不是一种很好的选择。
信息化已经成为社会发展的大趋势,信息化是以数字化为背景的,而DSP技术则是数字化最重要的基本技术之一。
在过去的短短的二十来年里,DSP处理器的性能得到很大改善,软件和开发工具也得到相应的发展,价格却大幅度地下降,从而得到越来越广泛的应用。
通信领域(移动通信的交换设备、基站和手机,网络的路由和交换设备,智能天线,软件无线电,IP电话等),雷达和声纳系统,巡航导弹、灵巧炸弹及各种武器系统,自动测试系统,医疗诊断设备(CT、核磁共振、B超等),计算机及其外设,消费类电子设备(VCD、DVD、HDTV、机顶盒、MP3、家庭影院系统、数字照相机和摄象机等),机器人及各种自动控制系统,等等,应用范围不胜枚举。
112.2.方案对比方案对比方案1.硬件实现:
以往的DTMF信号的产生检测一般用的是模拟硬件电路实现的。
前几年DTMF编解码电路大量是使用LC或者音叉振荡电路以产生DTMF的8个音频。
而解码电路过去采用的是音叉滤波,后又改进为有锁相环检测集成电路和简单的滤波器组成,但需要八路。
这些电路复杂,制造和调整麻烦。
电路多属于CMOS集成电路,它一般包括DTMF分组滤波器和DTMF译码器,当DTMF信号经输入电路输入时,先进入高、低频滤波器滤波,经带通滤波后,不仅滤波后,不仅滤掉了信号中的噪声干扰,而且DTMF信号的高频信号(fH)和低频信号(fL)也被区分开来,然后这两组信号分别进入过零检测,比较后,得到相应于DTMF的两路fH、fL信号的输出,该两路信号经译码、锁存、缓冲、恢复成对应于16种DTMF信号音频的4比特二进制码。
这种用硬件电路实现DTMF检测与软件处理数字信号比起来会有较大的缺陷。
(1)对于一个可编程的数字系统,改变下程序就可以改变对信号处理的方式,而对模拟系统的重新配置就意味着重新设计硬件。
(2)精度上的要求也决定了处理器的选择。
(3)数字信号可以很容易地存储在磁介质中而不会丢失方案2.软件实现:
曾经有人尝试用DSP构成一个数字式带通滤波器,其中心频率随着采样频率的不同而改变。
用顺序扫描的方式来检查每个频率,当某个频率超过给定的门限值时,将其记录,从而确定收到的是哪一个键的信号。
然而该方法有一个严重的缺点:
由于在给定的时间内只能检测8个频率中的一个,而不是8个同时检测,从而使检测的速度缓慢。
因此,本文基于TMS320S54X的DTMF信号的检测,是在频域解决了上述问题,使DTMF的检测更加快捷、准确。
下面详细介绍基于DSP的DTMF信号的检测。
22基本原理基本原理2.12.1DTMFDTMF号简述号简述DTMF信令由8个频率组成,其中4个行频、4个列频。
每个按键唯一地由一组行频和列频组成,如图A-1所示:
图A-1电话机按键频率阵列其中12个按键是我们比较熟悉的按键,另外由第4列确定的按键作为保留,为今后他用。
上述标准频率的选定不是任选的,而是设计时考虑了拨号音、忙音及交流电源的杂音,这些杂音均不在上述DTMF信号的范围内。
同时为了避免标准率之间的谐波干扰出现,故所列最高标准频率小于最低标准频率的三次谐波频率。
音频组合信号发送方式:
有并列发送、串列发送及串并发送。
(1)并列发送并列发送是同时发送几个频率。
其特点是呼叫所需时间短,但每个频率的调制小(因为总调制量平均分给了各个频率),因此在接收信噪比受到一定影响,同时信号之间可能会产生互调,因而造成误码。
所以不宜采用三个以上的频率并列发送,一般均采用双频并列发送,且选用标准频率避开谐波的影响。
(2)串列发送串列发送是将组合的频率串行逐一发送,其特点是可以得到最大调制度(因为每个时刻只发送其中一个频率信号),则接收端的信噪比比并行高,故误码率、抗干扰能强,只发一个音频f,故不会产生互调失真。
同时由于是串行发送,同样多的频率的排列组合数比并列的多,因此编码容量大。
另外,由于串行发送呼叫时间长。
(3)串、并组合发送将并列、串列发送组合起来,这样它就吸收了并、串列发送各自的长处,弥补了各自的不足。
优点是编码容量大,且呼叫时间有不长。
但在串、并列组合时要特别注意的是合理选择所使用的音频频率,有效减少二次谐波所产生的寄生干扰,以减少误码。
DTMF编解码算法在产生编码时将按键信号转换成对应音频信号并发送出去,解码时对收到的音频信号进行检测分析有效频率组合的存在性,并将其转换成对应的按键或数字信息。
电话中的双音多频信号(DTMF)有两种作用:
一是用于双音多频信号的拨号,去控制交换机接通被叫的用户电话机;二是利用双音多频信号控制电话各种动作。
2222振荡器的工作原理振荡器的工作原理DTMF双音多频信号由图A-2所示的两个二阶数字正弦振荡器产生,一个用来产生行音频信号,另一个用来产生列音频信号。
图A-2中包括了两个二次谐波数字振荡器。
该模型的系统函数为(E-1)的2阶系统,该系统具有2个在单位圆上的复共轭极点。
其中b0=Asin0,a1=-2cos0,a2=-1对应的极点分别为P1、2=ej0其单位脉冲应为h(n)=sin(n+1)*u(n)(E-2)系统差分方程为y(n)=-a1y(n-1)-a2y(n-2)-b0(n),(E-3)其初始条件为y(-1)=y(-2)=0。
为应用方便可以通过选取初值而避免将一个脉冲作为输出条件。
我们取y(-1)=0;y(-2)=-Asin0,其中0=2f0/fs,f0为所需产生的频率,fs为采样频率,根据Nyquist采样定理对于最高频率不高于4kHz的信号都可以完整地恢复。
通过对初值的修改,得到图A-2的振荡器模型。
其系统差分方程为:
y(n)=a1y(n-1)-a2y(n-2)(E-4),其中a1=2cos0;a2=-1。
初值条件y(-1)=0;y(-2)=Asin0,A为输出正弦波的幅度。
根据CCITT规定,DTMF信令每秒最多10个数字,也就是周期为100ms,其中DTMF信号的持续时间不少于45ms,不大于55ms;其余时间为静音信号,用以区别两个DTMF数字信号。
本设计输出DTMF持续时间为50ms(45ms,55ms),根据最高频率确定400个采样点。
2233GoertzelGoertzel算法算法Goertzel算法执行离散傅立叶变换(DiscreteFourierTransform),这个算法较为精简,而且每个频率只需要一个实数系数就可以决定值的振幅;但是,正确计算数值振幅和相位时需要复数系数,故需要较复杂的程序,借助只计算音调频率的振幅而忽略相位的计算,我们可以简化DTMF信号的译码工作。
此外,Goertzel算法只要获得任何采样就可以立刻处理,不必获得全部采样之后才处理,可明显地提高速度。
Goertzel算法是DTMF信号检测的核心,它利用二极点的IIR滤波器计算离散傅立叶变换值,快速有效的提取输入信号的频谱信息。
Goertzel算法利用了相位因子WNk的周期性,允许我们将DFT的计算表示为线性滤波运算,因WN-kN=1,我们可以利用该因子乘上DFT,于是,可得11()00()()()NNkNkmkNmNNNmmXkWxmWxmW(E-5)注意:
式(E-5)为卷积形式,的确,如果我们定义序列yk(n)为1()0()()NknmkNmynxmW(E-6)很清楚,yk(n)是长度为N的有限时宽输入序列x(n)与滤波器的卷积,并且滤波器的冲激响应为:
()()()knmkNhnWun(E-7)当n=N时,该滤波器的输出为DFT在频率Wk=2k/N处的值,亦即(E-8)如同将(E-5)与式(E-6)相比较就可验证一样。
冲激响应为hk(n)的滤波器,他的系数函数可表示为1()11kkNHzWz(E-9)该滤波器在单位圆上的频率Wk=2k/N处有一个极点。
因此,通过将输入的数据组输入到N个单极点并行滤波器(谐振器)组就可计算整个N点DFT,其中,每一滤波器在响应的DFT频率上有一个极点。
我们可以利用对应于式(E-9)给定的滤波器的差分方程来递推计算yk(n),而不是按式(E-5)通过卷积来实现DFT的计算,因此我们有yk(n)=WN-kyk(n-1)+x(n)(E-10)初始条件:
yk(-1)=0所期望的输出是X(k)=yk(N),其中k=0,1,,N-1,为了完成这一计算,我们可以一次计算并储存相位因子WN-k。
通过将具有复共轭极点的谐波器结合成对,就可以避开式(E-10)所固有的复数乘法和加法,这就产生了具有两个极点的的滤波器,其系统函数为1121()12cos(2/)kNkWzHzkNzz(E-11)该系统的直接型实现如图A-5所示:
图A-5用于计算DFT的两极点谐振器的直接型实现该系统可以用差分方程描述为()2cos(2/)
(1)
(2)()kkkvnkNvnvnxn(E-12)()()
(1)kkknkynvnWvn(E-13)初始条件为
(1)
(2)0kkvv。
对n=0,1,N,式(E-12)中的递推关系可迭代进行。
但式(E-13)中的程序仅当n=N时计算一次,每迭代需要一次实数乘法和两次加法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP DTMF 信号 检测