电子测量与仪器学报 2008 年增刊
53
戈泽尔算法在 DTMF信号检测中的应用与改进
夏 斌
1
于永学
2
李小瑞
1
(1.中国石油集团海洋工程有限公司 , 北京 100176;2.海军装备研究院自动化所 , 北京 100036)
摘要:戈泽尔算法是离散傅立叶变换的一种快速算法, 常用于 DTMF信号的检测。 本文论述了基于戈泽尔算法的 DTMF信号检
测基本原理和基本过程,分析了如何选择戈泽尔算法中的两个参数,并指出了该算法的不足之处。最后,本文提出了一种弥
补这些不足之处且不增加任何计算量的改进算法。
关键词: 戈泽尔算法, DTMF,信号检测
中图分类号: TN911.72 文献标识码: A
Application and Improvement of Goertzel Algorithm on DTMF Signal Detection
Xia Bin
1
Yu Yongxue
2
Li Xiaorui
1
(1. China National Petroleum Offshore Engineering CO., LTD, Beijing, 100176, China ;
2. Automation Institute of Naval Armament Academy, Beijing, 100036, China)
Abstract:
Goertzel algorithm is a fast algorithm of DFT, and it is usually used on DTMF signal detection. In this paper, the
principle and process of DTMF signal detection based on Goertzel algorithm was discussed and how to choose the two parameters of
Goertzel algorithm was analyzed, the shortages of this algorithm were pointed out. Finally, this paper proposed an improvement
algorithm of covering the shortages without any increasing of calculated amount.
Keywords:
Goertzel algorithm, DTMF, signal detection
1 DTMF信号组成
DTMF (Dual Tone Multi Frequency )信令是由
美国贝尔实验室开发的现代按键式电话机普遍使
用的拨号信令。 DTMF 的出现不仅迅速地取代了原
始的脉冲拨号方式,而且在一些交互式应用领域,
如电话银行、远程控制等,都得到了广泛的应用。
DTMF 信号共有 8 个频率点, 分成高频群和低
频群,各有 4 个频率。 每个 DTMF 信号由一个高频
信号加一个低频信号构成。表 1 是各个号码对应的
频率组合。
表 1 DTMF信号频率对应表
频率 (Hz) 1209 1336 1447 1633
697 1 2 3 A
770 4 5 6 B
852 7 8 9 C
941 * 0 # D
2 DTMF信号检测
2.1 DTMF 信号检测原理
DTMF 信号是音频范围内两个频率信号的叠
加,信号中还包含了信道噪声和语音干扰,有时还
存在因多普勒效应而产生的频移。 DTMF 信号检测
器需满足以下技术指标要求:
1)电平范围: -4~-23dBm ;
2)高低频电平差:≤ 4dB;
3)频偏:± 1.5%以内要求接收,± 3.5%以上
不接收;
4)二次谐波:比基频能量至少低 20dB。
因此,在时域对 DTMF 信号进行检测是非常
困难的。通过离散傅立叶变换 (DFT) ,先将 DTMF
信号转换到频域,然后在频域判断各个频点的能
量,是一种非常有效的检测方法。
直接计算 DFT 的计算量较大; FFT 算法同时
计算全部频点的频谱, 而 DTMF 信号检测只需要计
算少数几个频点的频谱,因此这两个算法都不太适
合。工程上, 通常采用戈泽尔 (Goertzel) 算法
[1]
来完
成 DTMF 信号的检测
[2] [3]
。
2.2 戈泽尔 (Goertzel) 算法
戈泽尔算法是 DFT 的一种快速算法。 这种算法