没有合适的资源?快使用搜索试试~ 我知道了~
双音多频(DTMF)信号的检测实验报告,附程序源代码
0 下载量 33 浏览量
2024-08-03
15:46:52
上传
评论
收藏 140KB DOCX 举报
温馨提示
(1)设置参数,读入电话号码 (2)根据输入的电话号码产生包含两个频率分量的205点时域离散DTMF信号, (3)对时域离散DTMF信号利用Goertzel算法(参见附录)进行频率检测,画出幅度谱 (4)根据幅度谱的两个峰值,分别查找并确定所输入的电话号码
资源推荐
资源详情
资源评论
双音多频(DTMF)信号的检测
姓名:
学号:
指导教师:
完成时间:
一、实验目的
(1) 理解 DTMF 信号的产生原理及其检测方法
(2) 提高分析和解决问题的能力
(3) 提高数字信号处理的实际能力
二、实验内容
(1) 设置参数,读入电话号码
(2) 根据输入的电话号码产生包含两个频率分量的 205 点时域离散 DTMF 信号,
(3) 对时域离散 DTMF 信号利用 Goertzel 算法(参见附录)进行频率检测,画出幅度谱
(4) 根据幅度谱的两个峰值,分别查找并确定所输入的电话号码
三、各部分工作原理
1.双音多频信号的工作原理及产生
现在我们所用的电话中,每一个数字按键(包括#和*键) 都是由两种频率的单音信号组
成的,这两种单音信号被分为高频带和低频带。低频带有四个频率,即 697Hz,770Hz,852Hz
和 941Hz;高频带也有四个频率,即 1209Hz,1336Hz,1447Hz 和 1633Hz。每一位号码均
由一个低频带频率和一个高频带频率叠加形成。图 1 所示是国际标准(ITU84)认可的数字和符
号键的频率分配情况。最右一排目前尚未应用于开发。
图 1 按键电话频率配置
每个按键对应的 DTMF 信号为
1 2
sin(2 ) sin(2 )f t f t
p p
+
,其中 f1 为低频单音,f2 为高频
单音。电话中的双音多频信号有两个作用:用拨号信号去控制交换机接通被叫的用户电话机;
控制电话机的各种动作,如播放留言、语音信箱等。
用 8kHz 对 DTMF 信号进行采样,采样后得到时域离散信号为:
1 2
( ) sin(2 /8000) sin(2 /8000)x n f n f n
p p
= +
由于采样率是 8kHz,因此要求每 125ms 输出一个样本,得到的序列再送到 D/A 变换器,它
的输出经过平滑滤波便是连续时间的 DTMF 信号。DTMF 信号通过电话线路再送到交换机。
2.双音多频信号检测原理及方法
在接收端,要对收到的双音多频信号进行检测,即检测两个正弦波的频率,以判断其对
应的十进制数字或符号。可以利用 DFT 或者 FFT 对双音多频信号进行频谱分析,由信号的幅
度谱大致判断出信号的两个频率,最后通过查表确定出对应的数字或符号。FFT 是 DFT 的快
速算法,但当计算的频率点数远小于 DFT 的变换区间长度时,用 FFT 快速算法的效果不明显,
而且还要占用很多内存,因此不如直接用 DFT 合适。为了提高系统的检测速度并降低成本,
已开发出一种特殊的 DFT 算法,称为戈泽尔算法(Goertzel)。
置于参数的选择,由于要检测信号的频率范围为 697~1633Hz,但考虑到存在语言干扰,
除了检测这 8 个频率外,还要检测他们的二次倍频的幅度大小。波形正常且干扰小的正弦波
的二次倍频是很小的。如果发现二次谐波很大,则认为不是 DTMF 信号。这样频谱分析的频
率范围为 697~3266Hz(倍频,1633x2)。按照采样定理,信号的最高频率不能超过折叠频率,
即 0.5Fs≥3266Hz,由此要求最小采样频率为 6.53kHz。这里已经规定 Fs=8kHz,因此一定
满足对频谱分析范围的要求。按照 Tpmin=13.7ms,Fs=8kHz,算出对信号最少的采样点数为
min min
s
p
N T F= × » 110
。为了使结果更加准确,我们将 N 设为 512.
DFT 的频率采样点频率为
2 ,( 0,1,2,3... 1)
k
k N k N
w p
= = -
,相应地在模拟域的采样
点频率为
,( 0,1,2,3... 1)
s
k
f F k N k N= = -
,希望选择一个合适的 N,用该式算出的
k
f
能
接近要检测的频率,或者
k
f
用 8 个频率中的任一个频率代人
k s
f F k N=
中时,得到的 k 值
最接近整数值。这样根据最大幅度检测的频率虽然有误差,但由此可以正确判断 DTMF 信号
所表示的数值。
3. 戈泽尔(Goertzel) 算法原理
Goertzel 算法利用相位因子{
k
N
W
}的周期性,并使我们能将 DFT 运算表示为线性滤波运
算,由于
2
1
j kN
Nk
N
N
W e
p
-
= =
,我们可以利用该因子去乘 DFT,则有
1
( )
0
( ) ( ) ( )
N
Nk k N m
N N
m
X k W X k x m W
-
- - -
=
= =
å
现在能够用 Goertzel 算法实现 DTMF 解码器了,由于有 8 种可能的音频要检测,所以需
要 8 个(7)式所给出的滤波器,每个滤波器调谐到这 8 个频率之一上。在 DTMF 解码器中,不
需要计算复数值 X(k),只要求出幅度值
( )X k
,或幅度平方值
2
( )X k
就可以了。所以,计
算涉及分子项(滤波器计算的前向部分)的 DFT 值的最后一步可以简化,我们有
于是,DTMF 解码器中就完全避免了复数运算。
剩余11页未读,继续阅读
资源评论
算法工程师y
- 粉丝: 324
- 资源: 605
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功