基于MATLAB的双音多频拨号系统的仿真设计

.word格式.

1引言

双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。这种信号制式具有很高的拨号速度,且容易自动监测识别,很快就代替了原有的用脉冲计数方式的拨号制式。这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其它通信系统中,用于电子邮件和银行系统中。这些系统中用户可以用电话发送DTMF信号选择语音菜单进行操作。

DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了D/A变换器;在接收端用A/D变换器将其转换成数字信号,并进行数字信号处理与识别。为了系统的检测速度并降低成本,还开发一种特殊的DFT算法,称为戈泽尔(Goertzel)算法,这种算法既可以用硬件(专用芯片)实现,也可以用软件实现。下面首先介绍双音多频信号的产生方法和检测方法,包括戈泽尔算法,最后进行模拟实验。下面先介绍电话中的DTMF信号的组成。

在电话中,数字0~9的中每一个都用两个不同的单音频传输,所用的8个频率分成高频带和低频带两组,低频带有四个频率:679Hz,770Hz,852Hz和941Hz;高频带也有四个频率:1209Hz,1336Hz,1477Hz和1633Hz.。每一个数字均由高、低频带中各一个频率构成,例如1用697Hz和1209Hz两个频率,信号用

sin(2?f1t)?sin(2?f2t)表示,其中f1?679Hz,f2?1209Hz。这样8个频率形成

16种不同的双频信号。具体号码以及符号对应的频率如表1所示。表中最后一列在电话中暂时未用。

. 专业.专注 .

.word格式.

表1 双频拨号的频率分配

列 行 697Hz 770Hz 852Hz 942Hz 1 4 7 * 2 5 8 0 3 6 9 # A B C D 1209Hz 1336Hz 1477Hz 633Hz DTMF信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机,另一个作用是控制电话机的各种动作,如播放留言、语音信箱等。

2课程设计题目描述和要求

DTMF(Double Tone Multi Frequency,双音多频)信号是音频电话拨号信号,由美国AT&T贝尔实验室开发。作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号。另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输。

这种拨号方法取代了脉冲拨号,在DTMF 通信系统中共有8 个频率,分为4 个高频音和4 个低频音. 用1 个高频音和1 个低频音的组合来表示一个信号. 这样,共能提供16 种组合,分别代表16 种信号. 图一为电话按键与信号频率的对应关系。

. 专业.专注 .

.word格式.

1 2 3 A 679HZ

行频率4 5 6 B 770HZ

各种DTMF信号的应用都离不开DTMF信号的检测,这是DTMF信号应用的关键。对它的检测,主要通过数字信号处理的算法以及硬件实现。本文主要通过MATLAB的软件编程来实现DTMF信号的仿真检测,从频域分析了快速傅立叶变换(FFT)和GOERTZEL两种方法,并对GOERTZEL算法进行了详细的推导,提出采用Goertzel 算法来实现DTMF 信号的检测。

3课程设计报告内容

3.1信号的产生及算法实现

DTMF编码, 是将电话拨号盘上的数字0~ 9, 字母A~D,及*/E、#/F, 共16 个字符, 用音频范围的8 个频率表示出来。具体来说, 将8个频率分为高频群和低频群两组, 分别作为列频和行频。每一个键的频率模式由来自于列频和行频的两个频率叠加而成。DTMF 信号所规定的指标是: 传送/接收率为每秒10 个数字, 或每个数字100m s。每个数字传送过程中, 信号必须存在至少45 ms, 且不得多于55ms, 100ms 里的其余时间是静音。

. 专业.专注 .

7 8 9 C 852HZ

*A 0 # D 941HZ

1290HZ 1366HZ 1477HZ 1633HZ

列 频 率

图一 DTMF编码

.word格式.

1)、DTMF信号的产生

假设时间连续的 DTMF信号用x(t)?sin(2?f1t)?sin(2?f2t)表示,式中f1和f2是按照表1选择的两个频率,f1代表低频带中的一个频率,f2代表高频带中的一个频率。显然采用数字方法产生DTMF信号,方便而且体积小。下面介绍采用数字方法产生DTMF信号。规定用8KHz对DTMF信号进行采样,采样后得到时域离散信号为

x(n)?sin(2?f1n/8000)?sin(2?f2n/8000)

形成上面序列的方法有两种,即计算法和查表法。用计算法求正弦波的序列值容易,但实际中要占用一些计算时间,影响运行速度。查表法是预先将正弦波的各序列值计算出来,寄存在存储器中,运行时只要按顺序和一定的速度取出便可。这种方法要占用一定的存储空间,但是速度快。

因为采样频率是8000Hz,因此要求每125ms输出一个样本,得到的序列再送到D/A变换器和平滑滤波器,输出便是连续时间的DTMF信号。DTMF信号通过电话线路送到交换机。

2)、DTMF信号的检测

检测中采用了频域的方法,N 点数据的DFT公式为:

knX(k)?DFT[x(n)]??x(n)WNn?0N?1k?0,1,...,N?1 它的好处是可以得到DFT的所有N 点的值。也就是通过DFT可以计算出信号中

. 专业.专注 .

.word格式.

所包含的频率成分。具体实现时,由于它的计算量非常大,因而主要使用它的快速算法——快速傅立叶变换(FFT)[3,4]。

对上述产生的DTMF信号,经过200点FFT运算得到DTMF信号的频谱X(K)(如图二所示)。根据结果中两条谱线的位置K值可知其频率分别为820HZ和1290HZ,即对应了电话号码盘的数字“7”。从图中可以看出,FFT运算中出现了两个问题:1、由于数据的截断,带来了频谱泄漏误差;2、通过FFT运算,计算出了200点的频谱,而DTMF信号只需8个频率点,计算效率大大降低。为解决这个问题,文中采用了GOERTZEL算法[5]。

图二 “7”的DTMF编码FFT频谱

GOERTZEL算法本身也是对DFT的快速运算,但可以有选择地计算个别点处的DFT,而对不需要的点不进行计算。

GOERTZEL算法原理如下:

GOERTZEL算法实质是一个两极点的IIR滤波器,其算法原理框图如图三所示:

. 专业.专注 .

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4