DTMF电话中的拨号信号发生的设计.docx
文本预览下载声明
DTMF电话中的拨号信号发生
与检测系统仿真
摘要
信号处理的基本概念和分析方法已应用于许多不同领域和学科中,尤其是数字计算机的出现和大规模集成技术的高度发展,有力地推动了数字信号处理技术的发展和应用。信号处理的目的就是对被观测到的信号进行分析,变换,综合,估计和识别等。数字信号处理可以用硬件和软件两种方法来实现。主要阐述了DTMF 编码的原理以及通过MATLAB产生DTMF 信号的方法,利用Goertzel 算法对输入的DTMF 信号提取频谱信息, 从而对输入信号进行检测、解码.
1、任务、性质与意义
用数学模型的方法对信息传输的过程进行仿真,是分析、设计及改进通信系统性能的重要手段。本次课程设计的任务是综合运用通信原理、数字信号处理等课程所学知识,实现一个双音多频(DTMF)信号传输过程的软件仿真。
本次课程设计的性质是通信原理、数字信号处理等课的综合实践环节。它的意义在于,通过本次课程设计可以从理论上加深对有关通信、数字信号处理原理的综合理解,了解DTMF信号原理和用数字信号处理的方法实现DTMF信号的产生、传输与检测的过程。还可以从实践能力上掌握一门新的计算机编程工具——MATLAB语言。
2、基本原理
2.1 双音多频(DTMF)信号
双音多频(DTMF)信号就是用两个不同频率的音频信号的组合来传输信息的一种通信信号形式,可以用数学式表示为
(1)
式中fH和fL分别是高频组和低频组的两个信号频率。对这两个频率的要求是:1、位于人而能够听到的音频频率范围内;2、频率间隔近似为乐音音阶的频率间隔(按十二平均律,相邻各个音的频率呈等比关系,其比值约为1.059463,例如C3 130.8Hz,C4=261.7Hz,D4 293.7)。这种信号在电话线路上传输,而且声音悦耳。
2.2 双音多频信号软件产生与检测
为了产生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.3 数字正弦波振荡器原理
数字正弦波振荡器的功能是利用数字信号处理的方法产生正弦波信号的抽样序列。基本原理是:
设数字正弦波振荡器要产生的波形为
(1)
则其Z变换为
上式的分子与分母同时乘以
y(n)可以看作是一个单位冲击函数激励了一个线性系统的冲击响应。这个线性系统的传递函数就是Y(z)。由Y(z)可以写出该线性系统的差分方程:
式中为数字角频率。
令输入x(n)为单位冲击函数,即
则可以得到下面的递推方程
当n0时,y(n)=0
当n=0时,y(0)=0
当n=1时,
当n=2时,
当n2时, (2)
实现时,首先将每个频率常数存在一个表中,用来初始化给定键的振荡器;再按照(2)进行迭代计算,就得到正弦序列的输出;将两个这样的输出叠加即可得到双
显示全部