没有合适的资源?快使用搜索试试~ 我知道了~
实验一、双音多频(DTMF)信号检测 数字信号处理实验报告
2 下载量 23 浏览量
2024-08-03
15:59:50
上传
评论
收藏 808KB PDF 举报
温馨提示
用Matlab实现双音多频(DTMF)信号生成、播放、检测。要求: (1)输入为电话拨号按键值1,2,#等,生成对应的DTMF信号并播放(为了听清按 键音,信号持续时间建议超过500ms); (2)按一定的SNRdB加噪声,采用FFT算法进行自动判断,输出为该键值对应的DFT 变换图谱及判断得到的按键值。
资源推荐
资源详情
资源评论
数字信号处理实验报告
实验一、双音多频(DTMF)信号检测
学 院
班 级
学生姓名
学生学号
指导教师
提交日期
电子与信息学院
2017 级信工 1 班
刘奕
201792353137
余华
2019 年 11 月 10 日
目录
一、实验目的
.............................................................................................................................
1
二、实验内容
.............................................................................................................................
1
三、 实验原理
...........................................................................................................................
1
1、 双音多频(DTMF)信号的原理
.....................................................................................
1
2、 Goertzel 算法
............................................................................................................
3
3、 Matlab 界面制作的方法步骤,常见 GUI 函数的使用方法
....................................
6
四、 实验过程
.........................................................................................................................
13
1、DTFT 信号的生成和播放
............................................................................................
13
2、用戈泽尔算法解码
.....................................................................................................
15
3、用 FFT 算法解码
.........................................................................................................
18
4、GUI 界面设计
..............................................................................................................
20
五、 实验结果与分析
.............................................................................................................
28
5.1 实验结果
....................................................................................................................
28
5.2 结果分析
....................................................................................................................
30
5.3 问题总结
....................................................................................................................
31
附录 A
........................................................................................................................................
32
附录 B
........................................................................................................................................
39
华南理工大学实验报告
1
一、实验目的
1、掌握使用 Matlab 实现双音多频(DTMF)信号生成、播放、检测的方法;
2
、学习并掌握戈泽尔(
Geortzel
)算法;
3、学会 Matlab 界面制作的方法及常见 GUI 函数的使用方法;
4、学会使用 DFT 变换分析频谱。
二、实验内容
用Matlab实现双音多频(DTMF)信号生成、播放、检测。要求:
(1)输入为电话拨号按键值1,2,#等,生成对应的DTMF信号并播放(为了听清按
键音,信号持续时间建议超过500ms);
(2)按一定的SNRdB加噪声,采用FFT算法进行自动判断,输出为该键值对应的DFT
变换图谱及判断得到的按键值。
三、实验原理
1、双音多频(DTMF)信号的原理
DTMF 信号的原理及产生
现在我们所用的电话中,每一个数字按键(包括#和*键) 都是由两种频率的单音信号
组成的,这两种单音信号被分为高频带和低频带。低频带有四个频率,即 697Hz,770Hz,
852Hz 和 941Hz;高频带也有四个频率,即 1209Hz,1336Hz,1447Hz 和 1633Hz。每
一位号码均由一个低频带频率和一个高频带频率叠加形成,这种信号称为双音多频
(
dual-tone multifrequency, DTMF
)信号。图 1 所示是国际标准
(ITU84)
认可的数字和符
号键的频率分配情况。最右一排目前尚未应用于开发。
华南理工大学实验报告
2
图 1 按键电话频率配置
每个按键对应的 DTMF 信号为
1 2
sin(2 ) sin(2 )f t f t
,其中 f1 为低频单音,f2 为高
频单音。电话中的双音多频信号有两个作用:用拨号信号去控制交换机接通被叫的用户
电话机;控制电话机的各种动作,如播放留言、语音信箱等。
用 8kHz 对 DTMF 信号进行采样,采样后得到时域离散信号为:
1 2
( ) sin(2 / 8000) sin(2 / 8000)x n f n f n
由于采样率是 8kHz,因此要求每 125ms 输出一个样本,得到的序列再送到 D/A 变换
器,它的输出经过平滑滤波便是连续时间的 DTMF 信号。DTMF 信号通过电话线路再送到
交换机。
DTMF 信号的检测原理及方法
在接收端,要对收到的双音多频信号进行检测,即检测两个正弦波的频率,以判断
其对应的十进制数字或符号。可以利用 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
,相应地在模拟域的采样点
频率为
,( 0,1, 2,3... 1)
s
k
f F k N k N
,希望选择一个合适的 N,用该式算出的
k
f
能接近
华南理工大学实验报告
3
要检测的频率,或者
k
f
用 8 个频率中的任一个频率代人
k s
f F k N
中时,得到的 k 值最
接近整数值。这样根据最大幅度检测的频率虽然有误差,但由此可以正确判断 DTMF 信
号所表示的数值。
2、Goertzel 算法
2.1Goertzel算法的原理
N
点时域序列
)(nx
的离散傅里叶变换为
1
0
)()(
N
n
kn
N
WnxkX
,
1,....,2,1,0 Nk
(3.2.1)
这
N
点频域序列是同时被算出的,不可能只计算其中某一个或几个指定点。Goetzel 算
法是为了解决这个问题而提出的。这种算法利用旋转因子
k
N
W
的周期性,使 DFT 运算化
为线性滤波运算。
由于
1
))(
2
(
kN
N
j
kN
N
eW
故式
(3.2.1)
可化为
)(
1
0
1
0
)()()(
mNk
N
N
m
km
N
N
m
kN
N
WmxWmxWkX
,
1,....,2,1,0 Nk
(3.2.2)
定义序列
)(ny
k
为
)(
1
0
)()(
mnk
N
N
m
k
Wmxny
(3.2.3A)
可见
)(ny
k
是由两个序列卷积而得到的序列
)()()( nhnxny
kk
(3.2.3B)
其中,
)(nx
是输入的
N
点序列,另一个序列被看作滤波器的冲激响应序列
)()( nuWnh
kn
Nk
(3.2.4)
对比式(3.2.2)和式(3.2.3),可知:按式(3.2.3A)进行卷积运算,当
Nn
时,滤波器的输
出
)(Ny
k
就是
)(kX
:
剩余47页未读,继续阅读
资源评论
算法工程师y
- 粉丝: 351
- 资源: 686
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功