APP下载

基于MATLAB的DTMF不规则信号识别

2015-12-21虞中捷周厚奎

电脑知识与技术 2015年27期

虞中捷 周厚奎

摘要: 双音多频信号具有抗干扰性强和高速率传输的优点,主要被应用于按键式电话机上,现今在移动通信领域发挥着不可或缺的作用。该文论述了在环境存在噪声且信号间隔不规律的情况下,为了提高信号识别度,提出的一种基于MATLAB的DTMF不规则信号识别方法。实验结果表明,利用信号过零率的特征可以有效侦测出信号端点,同时FFT算法也可将识别精度提高。

关键词:MATLAB;DTMF;FFT算法;过零率;信号识别

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)28-0139-02

1 DTMF信号的组成

双音多频 DTMF ( Dual Tone Multi-Frequency )信号,是用两个特定的单音频率信号的组合来代表数字或功能[1]。在 DTMF 电话机中有 16 个按键,其中 10 个数字键 0 — 9 , 6 个功能键 * 、 # 、 A 、 B 、 C 、 D 。其中 12 个按键是我们比较熟悉的按键,另外由第 4 列确定的按键作为保留,作为功能键留为今后他用。 根据 CCITT 建议,国际上采用 697Hz 、 770Hz 、 852Hz 、 94lHz 低频群及 1209Hz 、 1336Hz 、 1477Hz 、 1633Hz 高频群。从低频群和高频群任意各抽出一种频率进行组合,共有 16 种组合,代表 16 种不同的数字键或功能,每个按键唯一地由一组行频和列频组成,信号编码如表 11所示:

一个DTMF信号是由两个不通频率Lf和Hf的正弦波组成。

2 频谱分析

DTMF信号包含两套音频信号,想要得到对应的数字信息,就要通过解码器利用数学变换将其从时域转化到频域。要检测出离散的双音多频码可以通过离散傅立叶变换进行信号的频谱来分析。在计算机上运算必须要在时域及频域都是离散的情况下才可进行;也就是周期的离散时间信号与离散频率间的变换对。

首先需要确定三个参数:1)采样频率Fs;2)采样点数N;3)观察时间Tp。

我们需要采样的频率在697~3266Hz之间。根据采样定理,最高频率不能超过折叠频率,即3266≤0.5Fs;两个频率最小间隔是Fmin,则;最小采样点数。[2]

DTMF的解码有多种算法,如快速傅里叶算法(FFT),有限长序列离散傅里叶变换(DFT),卷积法和迭代法,每种算法都有各自的特点。考虑到快速傅里叶变换相对数据精确性较高,本文仅采用FFT算法对信号进行解码分析。首先,需要了解相关参数的数学意义,频谱分辨率为,计算中出现的K值是通过计算得出的一个具体数值,频谱图上任意对应点的频率为

在MATLAB中需用到快速傅里叶变换函数 f=fft(d,N),其中d为被检测音频信号,N为信号长度,长度必须限制在。源程序中,a=abs(f)是对信号f的求模运算,表示信号f的频谱,p=a.*a/10000是对对信号f的取模求平方运算,表示信号f的功率谱。

以数字0为例,对系统接受到的电话拨号音信号作FFT算法分析,利用MATLAB对其进行仿真:

计算得出行频和列频的数值范围:已知输入信号采样频率和FFT信号长度N = 2048,则频谱分辨率为,这样就可以计算出图上任意点对应的频谱。数字0的高、低端频率分别为941Hz和1336Hz,则在谱图上对应的点分别为235.25和334。

3 利用过零率侦测端点

过零率(Zero Crossing Rate)是音频信号时域分析的又一重要参数[3],表示一帧语音中信号波形穿过时间轴的次数,具有如下特性:

1)一般而言,DTMF信号的过零率大于噪声的过零率

2)通常在端点侦测,可估测DTMF信号的起始位置

下面利用MATLAB对计算信号过零率进行仿真。对录音下来的播音信号进行过零率侦测,发现在信号段,过零率折线非常的平缓,说明DTMF信号的过零率在一定长度的音框内非常接近,信号波动幅度变化小,利用这个特征,我们可以通过算法将目标信号截取出来。

在MATLAB的工作区间查看样本信号的过零率zcr2离散数值会发现一定的规律。

信号的音框范围内,数值变化幅度变小,有5-6个数值之间的差值在5以内,利用算法将这几个连续的数值相邻差值求和,根据和的大小侦测断点。如图2与图3所示,a组信号段较b组具有明显的过零率数值特征,范围在145—149之间。

4 实验结果及分析

被检测信号为449168937的一段手机录音音频信号。利用 MATLAB中GUI设计工具生成图形拨号识别面板,便于人机交互。用户可直接选择目标文件,然后点击“信号识别”按钮,系统将对被检测信号进行解码侦测,并在窗口中显示结果。

5 结语

本文详细阐述了DTMF按键音识别的原理和方法,并通过MATLAB仿真证明了方法的可行性。现阶段对DTMF信号的识别技术已非常成熟,但是将含有噪声的信号准确截取出来并解析的方法仍然有局限性。本文以音频信号过零率的特征为切入点,寻找一种理论可行的方法,但实际由于环境噪声多变复杂,甚至有少数噪声特征与信号相仿,导致检测有一定程度的偏差。经过大量实验证明,本文所论述的方法是具有较高识别率的,同时也为后续研究提供了一种思路。

参考文献:

[1] 刘晓芳, 冯克迁.基于MATLAB的双音多频信号识别[J].科技视界, 2013(7).

[2] 刘艳芳, 窦育强, 张爱丽.基于MATLAB的双音多频信号识别[J].计算机系统应用, 2009(7).

[3] 张昊.基于MATLAB的连续DTMF信号检测的程序实现[J].福建电脑, 2009(4).