没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
数字信号处理实验报告
实验二、MATLAB 的电话拨号应用
学 院
班 级
学生姓名
学生学号
指导教师
提交日期
华南理工大学实验报告
1
实验二、电话拨号应用——双音多频(DTMF)信号
一、实验目的
1、了解基于对电话通信系统中拨号音合成与识别的仿真实现;
2、了解电话拨号音合成的基本原理及识别的主要方法;
3、学会利用 MATLAB 软件以及 FFT 算法实现对电话通信系统中拨号音的合成与识别;
4、学会进一步利用 MATLAB 中的图形用户界面 GUI 制作简单直观的模拟界面;
5、能够利用矩阵不同的基频合成 0-9 不同按键的拨号音并加以正确的识别;
6、能够实现由拨号音解析出电话号码的过程;
7、学会进一步利用 GUI 做出简单的图形操作界面从而实现对电话拨号音系统的简单的实验仿真;
二、预习要求
1、双音多频(DTMF)信号的原理;
2、Geortzel 算法的原理及 Matlab 中的函数调用方式;
3、Matlab GUI 界面制作的方法步骤,常见 GUI 函数的使用方法。
三、实验原理
1、DTMF 信号的产生
双音多频 DTMF(Dual Tone Multi-Frequency)信号,是用两个特定的单音频率信号的组合来代表数
字或功能。在 DTMF 电话机中有 16 个按键,其中 10 个数字键 0-9,6 个功能键 #、*、A、B、C、D,其
中 12 个按键是我们比较熟悉的电话拨号按键。另外由第 4 列确定的按键作为附加功能按键暂时保留,作
为今后其他的用途。用 7 个频率对 10 个十进制数字和俩个标有“#”、“*”的特殊按钮进行编码。低频
带频率有 697Hz、770Hz、852Hz 和 94lHz,其余 3 个属于高频带频率 1209Hz、1336Hz、1477Hz 以及第四
个高频 1633Hz,目前并没有使用。在按键拨号方案中,按下某个键时所得到的按键信号是由相应两个频
率的正弦信号相加而成,频率分配如下:
高群/HZ
低群/HZ
1209
1336
1477
1633
697
1
2
3
A
770
4
5
6
B
852
7
8
9
C
941
*
0
#
D
华南理工大学实验报告
2
设 x(t)为按键信号,则
x
(
𝑡
)
=
cos
(
𝑓
1
𝑡
)
+
𝑐𝑜𝑠
(
𝑓
2
𝑡
)
式中 f1 和 f2 分别表示低群和高群频率。
2、DTMF 信号的解码
对DTMF信号的基频及各自的二次谐波分别使用DFT变换,以此来判断是否存在相应分量。实际DSP芯
片的DFT计算方案采用戈泽尔(Geortzel)算法,计算DFT样本的能量。
Goertzel 算法是从给定的采样中求出某一特定频率信号的能量,有以下几个重要参数:
a) 采样率R,指的是需要分析的数据每秒钟有多少个采样
b) 目标频率f,指的是需要检测并评价的这个频率的值
c) 检测区段采样值数量N,也就是每N个采样这个算法会对频率f给出评价
d) 检测区段包含目标频率的完整周期个数K
上述参数应该有这样的关系:
K
=
𝑁𝑓
𝑅
则有:
ω
=
2πK
N
C
=
2cos
(
ω
)
=
2cos
2πK
N
初始化:
Q
1
=
0
,
Q
2
=
0
,计算:
Q
0
=
C
Q
1
―
Q
2
+
S
那么就可以得到在这 N 个采样中所体现的频率 f 的能量值 P:
P
=
𝑄
1
2
+
𝑄
2
2
―
𝐶
𝑄
1
𝑄
2
3、Goertzel 算法的 matlab 实现
dft_data = goertzel(data)使用二阶 goertzel 算法返回输入数据的离散傅里叶变换(DFT)。如果数据是
一个矩阵,goertzel 会分别计算每列的 DFT。
dft_data = goertzel(data,freq_index)为频率指标 freq_index 返回 DFT。
dft_data = goertzel(data,freq_index,dim)在维度模糊的维度上计算矩阵数据的 DFT。
4、GUI 界面制作的步骤
(1)打开 GUI 设计窗口并保存;
剩余15页未读,继续阅读
资源评论
算法工程师y
- 粉丝: 324
- 资源: 605
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 支持ST语言得PLC CRC 校验码生成 FB
- stm32cubemx+ADC+TIM+DMA实现1秒采集固定数据并打印+需要才采集
- ONU AN5506-01A FIBERHOME GPON MINI.pdf
- STD20NF06T4-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明
- 深入掌握JavaScript的`localStorage`和`sessionStorage`:使用指南与最佳实践
- clang+llvm-18.1.8-x86-64-linux-gnu-ubuntu-18.04.tar.xz
- 2SK3794-Z-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明
- C++代码复杂度分析工具集成:自动化代码质量提升策
- 2SK3794-Z-E1-AZ-VB一款N-Channel沟道TO252的MOSFET晶体管参数介绍与应用说明
- 谷歌工作法 工作效率提升10倍的57个技巧
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功