河北大学 数字信号处理 综合实验——DTMF信号的产生
DTMF信号的产生及检测解读
DSP课程设计
实验报告
DTMF信号的产生及检测
院(系):电子信息工程学院-通信工程
设计人员:周钰哲学号:08211052
苗祚雨08212075
目录
一、设计任务书 (2)
二、设计内容 (2)
三、设计方案、算法原理说明 (3)
四、程序设计、调试与结果分析 (6)
五、设计(安装)与调试的体会 (16)
六、参考文献 (16)
一设计任务要求
双音多频DTMF(Dual Tone Multi Frequency)是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,分别抽出一个频率进行组合就可以组成16种DTMF编码,分别记作0~9、*、#、A、B、C、D。如下图1所示。
图1 DTMF信令的编码
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1、基本部分:
(1)使用C语言编写DTMF信号的发生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
(2)使用C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。
2、发挥部分:
利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指标,使每秒内传送的DTMF编码越多越好。
3、要求完成的任务
(1)编写C语言程序,并在CCS集成开发环境下调试通过。
(2)实现设计所要求的各项功能。
DTMF信号的产生与检测
1 设计任务书
双音多频DTMF(Dual Tone Multi Frequency)信号是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,据CCITT的建议,国际上采用的这些频率为697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz 和1633Hz等8种。在每组频率中分别抽出一个频率进行组合就可以组成16种DTMF编码,从而代表16种不同的数字或功能键,分别记作0~9、*、#、A、B、C、D。如下图所示。
图1-1 双音多频信号编码示意图
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1.1 实验目的
掌握DTMF信号的产生和检测的DSP设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对DSP 信号处理器及D/A和A/D转换器的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。
1.2 技术指标及设计要求
1.2.1 基本部分
1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、
D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
2)使用C语言编写DSP下DTMF信号的检测程序,检测到的DTMF编码在CCS调试窗口
DTMF信号的产生及检测
k frequency coefficient k frequency coefficient
(k/N)fs/Hz cos(2pi k/N)
(k/N)fs/Hz cos(2pi k/N)
18
702
0.85162
35
1393
0.45886
20
780
22
858
0.81793
39
0.78115
43
1552 1711
1、DTMF(双音多频)信号简介.................................................... 3 2、DTMF 信号的产生 ..................................................................... 4 3、DTMF 信号的检测、接收部分原理 ........................................... 5 四、程序设计、调试与结果分析 ....................................................... 7 1、DTMF 信号的发送程序.............................................................. 7 2、DTMF 信号的检测程序.............................................................10 四、调试与结果分析 .........................................................................20 五、设计(安装)与调试的体会 ......................................................23 1、设计安装过程 .........................................................................23 2、调试心得体会 .........................................................................32 六、参考文献: ................................................................................32
基于Matlab的DTMF信号产生与识别实验报告
***学院*****系
实验报告
专业:通信工程班级: 1350331
姓名: ******* 学号:
实验项目名称:基于Matlab的DTMF信号产生与识别
实验项目类型:综合性□设计性■基础性□
实验课程名称:信号与系统课程代码: 2010495
实验室名称:仪器系公共机房402
指导教师: ****
实验完成时间: 2016年5月15日 / 2015~2016学年二学期实验成绩给定说明
1.综合性实验:
实验成绩总分以100分计,其中实验准备占10%,实验操作占40%,实验结论(数据或图表、程序等)占30%,实验报告占10%、考勤及其它占10%。
2.设计性实验:
实验成绩总分以100分计,其中实验设计(方案制订)占20%,实验准备占10%,实验操作占20%,实验结论(数据或图表、程序等)占30%,实验报告占10%、考勤及其它占10%。
3.基础性实验
实验成绩总分以100分计,其中实验准备占10%,实验操作占40%,实验结论(数据或图表、程序等)占30%,实验报告占10%、考勤及其它占10%。
4.实验报告评分参考标准:
(1)实验准备充分(10分,设计性无此项)
(2)实验操作(或过程)完整,对步骤及实验中间产生的实验现象有详细描述(20分,综合性实验此项40分)。
(3)实验结论有原始数据或图表、程序等,且结论准确(30分)
(4)实验设计方案或流程等合理,方案制订详细清晰(20分,综合性无此项)
(5)实验报告内容完整,无空白,能独立完成报告、书写工整、认真(10分)。
(6)考勤及其它(10分)
号进行频谱分析,要检测的8个频率,相邻间隔最小的是第一个和第二个频率,间隔是73 Hz,要求DFT至少能够分辨相隔73Hz的两个信号,即要求Fmin=73Hz。
DTMF信号的产生及检测要点
DTMF信号的产生及检测要点
1.频率生成:产生DTMF信号的关键是生成两个不同的频率。一般采
用频率合成器,如计数器、D/A转换器等来产生。其中,高频系列对应的
频率为1209Hz、1336Hz、1477Hz和1633Hz;低频系列对应的频率为
697Hz、770Hz、852Hz和941Hz。
2.频率叠加:将产生的高频和低频信号进行叠加,从而形成DTMF信号。叠加可以通过电容或电感来实现,使得两个频率的波形在同一时间段
内同时存在。
3.声音接口:将产生的DTMF信号转换为声音信号,一般通过耳机、
扬声器等设备进行输出。
1.频率分离:DTMF信号检测的第一步是将输入的混合信号分离成高
频和低频两个信号。这可以通过滤波器、带通滤波器等实现,将不同频段
的信号分离出来。
2. 频率识别:分离后的高频和低频信号需要进行频率识别,找出它
们所对应的频率。常用的方法有傅里叶变换、Goertzel算法等。将识别
结果与预设的DTMF频率进行比对,判断输入的信号是哪个数字、字母或
符号。
3.信号解码:识别出的频率对应了DTMF信号的一个组合,需要将其
解码为实际的数字、字母或符号。一种常用的解码方法是根据频率识别结
果在一个查找表中查找对应的数字、字母或符号。
4.抗干扰:在DTMF信号的检测过程中,还需要考虑到信号的抗干扰性。DTMF信号可能会受到来自外界的噪声或干扰信号的影响,因此需要
采取一些抗干扰的措施,如滤波、去噪等,以提高信号的可靠性和鲁棒性。
DTMF信号的生成
2 2 j j
1 2j
DTMF信号生成
z sin( 2 z 2 z cos(T ) 1 Cz 2 z Az B
上式在|Z|>1时成立;
A 2cos(; B 1; C sin(
DTMF信号生成
0≤sample(n)≤4A n n位转换电路最大表示值为2 -1 samplemax(n) =4A= 2 -1 n n-2 A= (2 -1)/4,取整为2 -1 16bit D/A时,A=16383
n
ຫໍສະໝຸດ Baidu
DTMF信号生成
DSP软件生成DTMF
1. 产生两个数字正弦波,将输出合成;
DTMF信号生成
2 B 15 =-16384=0XC000 2 2 C 15 =17052.35=0X429C 2 2
归一化及定标处理 为防溢出,将所有系数除2 为便于定点DSP处理,将所有系数扩大215 A 15 =27361.28=0X6AE1 2
正弦信号生成程序
SIN: STM STM STM STM STM LOOP1: MPY MAC MAC MAC STM STH STH BANZ RET #3,BK #1,AR0 #H,AR2 #L,AR3 #400-1,AR7 *AR2,*AR3,A *AR2+0%,*AR3+,A *AR2,*AR3,A *AR2+0%,*AR3+,A #L,AR3 A,*AR2 A,*AR5+ LOOP1,*AR7;循环缓冲区长度为3,针对AR2 ;在AR0中放一个常数1 ;AR2指向y(N-1)处 ;AR3指向A/2处 ;循环计算400个样点 ;因为系数是A/2,所以要做两次运算 ;A*Y(N-2) ;因为系数是B/2,所以要做两次运算 ;B*Y(N-1) ;更新Y(N)的值 ;保存y(n) ;AR7不等于0,跳转至LOOP1
DTMF信号的产生及检测
D T M F信号的产生及检测 Last updated on the afternoon of January 3, 2021
DSP课程设计
实验报告
DTMF信号的产生及检测院(系):电子信息工程学院-通信工程
设计人员:周钰哲学号:08211052
苗祚雨08212075
目录
一、设计任务书 (2)
二、设计内容 (2)
三、设计方案、算法原理说明 (3)
四、程序设计、调试与结果分析 (6)
五、设计(安装)与调试的体会 (16)
六、参考文献 (16)
一设计任务要求
双音多频DTMF(DualToneMultiFrequency)是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,分别抽出一个频率进行组合就可以组成16种DTMF编码,分别记作0~9、*、#、A、B、C、D。如下图1所示。
图1 DTMF信令的编码
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1、基本部分:
(1)使用C语言编写DTMF信号的发生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
(2)使用C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。
2、发挥部分:
利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指标,使每秒内传送的DTMF编码越多越好。
DTMF信号产生的Matlab实现
DTMF信号产生的Matlab仿真
1、DTMF的相关介绍
DTMF(Dual Tone Multi Frequency,双音多频)由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信号有16个编码,。利用DTMF信令可选择呼叫相应的对讲机,因而作为电话系统中电话机与交换机之间的一种用户信令,用于发送被叫号码。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频(如上图),在双音多频电话机中,有16个按键,其中10个数字键(0~9)6个功能键(*、#、A、B、C、D)。每按一个键就发送一个高频和低频的正弦信号组合,比如'1'相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。
2、DTMF信号实现方法由于语音频率范围为300—3400Hz,根据奈奎斯特取样定理,取样频率fs应大于或等于原信号最高频率fc的两倍,即fs≥2fc才能保证取样后的信号不失真,此处fc通常取为4KHz,所以电话音频信号在数字信号处理时,取样频率fs为2×fc=8KHz。CCITT规定每秒最多按10个键,即每个键时隙最短为100ms,其中音频实际持续时间至少为45ms,不大于55ms,时隙的其他时间内保持静默,因此按键产生双音频信号时,相继的两个信号间隔一段时间;而解码器则是利用这个时间识别出双音频信号,并转换成对应的数字信息。这里,
每个数字信号持续时间为100ms,后面加上100ms的间隔时间(用0表示)。DTMF的编译码定义可用式f(t)=Asin(2*pi*fh*i/fs)+Bsin(2*pi*fl*i/fs) 表示,式中两项分别表示i时刻高、低音频的幅值,A和B分别表示高音群和低音群的样值量化基线,而且两者幅值比为K=B/A (0.7<K<0.9)。因此,上述DTMF信号产生方法可描述为:(1)建立拨号数字的表矩阵,用查表法求用户所按数字键对应的高、低频音。(2)产生相应的DTMF信号及间隔时间。由于fs=8KHz,各信号持续时间为100ms,因此在程序中每个信号取800点,抽样间隔时间为0.125ms,结果存入数组中。(3)画图并监听产生的DTMF信号。
DTMF信号的产生与识别
DTMF 信号的产生与识别 实验报告
1、 DTMF信号的产生 DTMF 编码器基于两个二阶数字正弦波振荡器,一个 用于产生行频,一个用于 产生列频。向 DSP 装入相应的系数 和初始条件,就可以只用两个振荡器产生 所需的八个音频信 号。典型的 DTMF信号频率范围是700~1700Hz,选 取 8000Hz 作为采 样频率,即可满足 Nyquist条件。DTMF双音频信号由两个二阶 数字正弦振荡器产生,一个用来产生行音频信号,另个一产生列音频信号。其系 统函数为:
当持续时间没有完毕时,时间变量减 1,然后产生静音样本再返回。
DTMF 信号的产生与识别 实验报告
while(timer!=0)
{ while(1)
{if(i>127) break;
/* 将 data[i]输出到 D/A */ while (!MCBSP_XRDY(HANDSET_CODEC)) {}; /* write sample to handset codec */ *(volatile u16*)DXR1_ADDR(HANDSET_CODEC) = data[i++]; } timer=timer-1;} 当持续时间完毕时,持续时间变量复位,然后切换任务标志为 1,装入下一 个数字,初始化新数字的振荡器系数与初始化条件,最后返回。 while(timer==0)
{ task=1; a=find1(n);
DTMF信号的产生与检测-实验报告
DSP课程设计实验报告DTMF信号的产生与检测
指导老师:
时间:
1 设计任务书
双音多频DTMF(Dual Tone Multi Frequency)信号是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,据CCITT的建议,国际上采用的这些频率为697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz 和1633Hz等8种。在每组频率中分别抽出一个频率进行组合就可以组成16种DTMF编码,从而代表16种不同的数字或功能键,分别记作0~9、*、#、A、B、C、D。如下图所示。
图1-1 双音多频信号编码示意图
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1.1 实验目的
掌握DTMF信号的产生和检测的DSP设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对DSP 信号处理器及D/A和A/D转换器的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。
1.2 技术指标及设计要求
1.2.1 基本部分
1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、
D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
2)使用C语言编写DSP下DTMF信号的检测程序,检测到的DTMF编码在CCS调试窗口
DTMF信号的生成
A0:直流分量; AL:低频正弦波振幅; AH:高频正弦波振幅; fL:低频群频率; fH:低频群频率; fs:采样频率;
DTMF信号生成
采样频率fs :由于DTMF频率为697-1633Hz。 fs取8K即可。 采样精度8bit时: sample(n) =128+63*sin(n*2PI*fL/8000) +63*sin(n*2PI*fH/8000) 采样精度16bit时: sample(n) =32768+16383*sin(n*2PI*fL/8000) +16383*sin(n*2PI*fH/8000)
DTMF信号生成
2 B 15 =-16384=0XC000 2 2 C 15 =17052.35=0X429C 2 2
归一化及定标处理 为防溢出,将所有系数除2 为便于定点DSP处理,将所有系数扩大215 A 15 =27361.28=0X6AE1 2
正弦信号生成程序
SIN: STM STM STM STM STM LOOP1: MPY MAC MAC MAC STM STH STH BANZ RET #3,BK #1,AR0 #H,AR2 #L,AR3 #400-1,AR7 *AR2,*AR3,A *AR2+0%,*AR3+,A *AR2,*AR3,A *AR2+0%,*AR3+,A #L,AR3 A,*AR2 A,*AR5+ LOOP1,*AR7;循环缓冲区长度为3,针对AR2 ;在AR0中放一个常数1 ;AR2指向y(N-1)处 ;AR3指向A/2处 ;循环计算400个样点 ;因为系数是A/2,所以要做两次运算 ;A*Y(N-2) ;因为系数是B/2,所以要做两次运算 ;B*Y(N-1) ;更新Y(N)的值 ;保存y(n) ;AR7不等于0,跳转至LOOP1
DTMF信号的产生与识别
DTMF 信号的产生与识别 实验报告
i=0;
当持续时间没有完毕时,时间变量减 1,然后产生双音样本再返回 while(timer!=0)
{while(1)
{if(i>127) break;
/* 将 dacdata[i]输出到 D/A */ while (!MCBSP_XRDY(HANDSET_CODEC)) {}; /* write sample to handset codec */ *(volatile u16*)DXR1_ADDR(HANDSET_CODEC) = data[i++]; } timer=timer-1; } 当持续时间完毕时,持续时间变量复位,然后切换任务标志为 0,然后返回。 while(timer==0) {task=0; timer=45; } } 2、DTMF 信号的识别
采用CODEC的ADC和DAC实现数据的发送和接收。将DSP产生的数字信号 通过ADC发送,将产生的DTMF信号通过DAC送入DSP,进行检测。
TI公司的TMS320C5402系列的DSP芯片非常适合于快速运算,DTMF的产 生和检测计算复杂程度不高,采用Goertzel 算法使软件检测速度快、精度高,并 可以灵活的修改参数。能满足算法的精度及时间的要求。
双音多频 DTMF(Dual Tone Multi-FrequencyFra Baidu bibliotek信 令,逐渐在全世界范围内 使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话 机使用的拨号脉冲信令。近年来 DTMF 也应用在交互式控制中,诸如语言菜单、 语言邮件、电话银行和 ATM 终端等。将 DTMF 信令的产生与检测集成到任一 含有数字信号处理器(DSP)的系统中是一项较有价值的工程应用。
DTMF信号的产生与检测—开题报告
DTMF信号的产生及检测
一、概述
随着DSP 芯片及相关技术的发展,DSP 得到了人们的日益关注和越来越广泛的应用。德州仪器(TI)公司推出的TMS320VC54x 系列具有高性能、低功耗等优良性能,受到用户的欢迎,已广泛地应用于有线和无线通讯、仪器仪表、雷达、图像处理、工业控制、语音处理等领域。
双音多频DTMF(Dual Tone Multi-Frequency)信令,逐渐在全世界范围内使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来DTMF 也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM 终端等。将DTMF 信令的产生与检测集成到任一含有数字信号处理器(DSP)的系统中是一项较有价值的工程应用。
DTMF ( 双音多频) 技术是DSP 技术中的一种。DTMF信号是音频电话的拨号信号。有美国ATT 贝尔实验室开发。这种拨号方法取代了脉冲拨号,每一个号码由两个音频信号组成,该双音频由按键所在的行和列对应的频率决定。电话中的双音多频信号有两种作用:一是用于双音多频信号的拨号,去控制交换机接同被叫的用户电话机;二是利用双音多频信号控制电话机各种动作。这些功能的实现离不来DTMF 信号的正确的产生和识别,专用数字处理信号芯片(DSP)的出现,使这个问题得到轻松的解决,这里给出的是基于TMS3205402产生和识别DTMF 信号的方法。DTMF 信号的产生及识别都要以相关算法为基础。在此我们提出采用Goertzel 算法来实现DTMF 信号的产生及检测,并详细推导了利用该算法实现滤波器组的方法及用仿真软件进行模拟设计的过程。
DTMF信的产生与检测实验报告
1 设计任务书 双
音多频
DTMF
(Dual
Tone
Multi
Freque
ncy )信
号是在
按键式
电话机
上得到
广泛应
用的音
频拨号信令,一个DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,据CCITT 的建议,国际上采用的这些频率为697Hz 、770Hz 、852Hz 、941Hz 、1209Hz 、1336Hz 、1477Hz 和1633Hz 等8种。在每组频率中分别抽出一个频率进行组合就可以组成16种DTMF 编码,从而代表16种不同的数字或功能键,分别记作0~9、*、#、A 、B 、C 、D 。如下图所示。
DSP 课程设计实验报告 DTMF 信号的产生与检测 指导老师: 申艳老师 时 间: 2014年7月18日
图1-1 双音多频信号编码示意图
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1.1 实验目的
掌握DTMF信号的产生和检测的DSP设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对DSP 信号处理器及D/A和A/D转换器的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。
1.2 技术指标及设计要求
1.2.1 基本部分
1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、D
河北大学数字信号处理实验一报告
班级 学号 姓名
实验二 离散时间系统的时域分析
一、实验目的
(1)加深对时域信号抽样与恢复的基本原理的理解; (2)掌握应用线性卷积求解离散时间系统响应的基本方法;
(3)掌握求解离散时间系统冲击响应和频率响应程序的编写方法,了解常用子
函数。 二、实验内容
1. 已知一个连续时间信号()t f t f t f 00π6sin 3
1
π2sin +=,Hz 10=f ,取最高有限带宽频率05f f h =。分别显示f (t )的波形和()h s h s h s f f f f f f 2,32==>选,
()h s h s f f f f =<选2三种情况下抽样信号波形,并尝试用内插公式重建原信号。
(内插恢复参考程序如示例所示) 程序代码: f0=1; t0=1/f0;
t=0:0.01:3*t0;
f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); %产生连续时间信号 subplot(7,1,1); plot(t,f);
fh=5*f0; %最高有限带宽频率 for i=1:3 fs=i*fh; ts=1/fs; n=0:ts:3*t0;
f1=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); %采样
subplot(7,1,i+1); %利用循环,分别画fs=3fh,fs=2fh,fs=fh 的波形 stem(n,f1,'filled');
f=interp1(n,f1,t,'spline'); %调用内插函数以恢复连续时间信号 subplot(7,1,i+4); plot(t,f); end
DTMF信号的产生与检测-实验报告
DSP 课程设计实验报告
DTMF 信号的产生与检测
指导老师:
申艳老师 时 间: 2014年7月18日
1 设计任务书
双音多频DTMF(Dual Tone Multi Frequency)信号是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,据CCITT的建议,国际上采用的这些频率为697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz 和1633Hz等8种。在每组频率中分别抽出一个频率进行组合就可以组成16种DTMF编码,从而代表16种不同的数字或功能键,分别记作0~9、*、#、A、B、C、D。如下图所示。
图1-1 双音多频信号编码示意图
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
1.1 实验目的
掌握DTMF信号的产生和检测的DSP设计可使学生更加透彻的理解和应用奈奎斯特采样定理,与实际应用相结合,提高学生系统地思考问题和解决实际问题的能力。通过对DSP 信号处理器及D/A和A/D转换器的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。
1.2 技术指标及设计要求
1.2.1 基本部分
1)使用C语言编写DSP下DTMF信号的产生程序,要求循环产生0~9、*、#、A、B、C、
D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DTMF信号的产生
DTMF(Double Tone Multi Frequency,双音多频)作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,广泛应用于电话通信系统中。
DTMF是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术。两个单音频的频率不同,代表的数字或实现的功能也不同。这种电话机通常有16个按键,其中有10个数字键和6个功能键。按照组合原理,一般应具有8中不同的单音频信号,即可采用的频率有8种,因此成为“多频”;又因为它从8种频率中任意抽出2中进行组合来进行编码,所以又称之为“8中取2”的编码技术。
根据CCITT建议,16种不同的数字或功能键的具体组合如下所示:
根据AT&T技术规范:
(1)数字号码的最大传输速度为每秒10个,即每个号码占100ms时间片;
(2)在100ms时间片内双音多频信号持续不少于45ms,且不多于55ms。
根据信号频率范围,选取8000Hz作为采样频率,取t=50ms作为双音多频信号标准持续时间。
请大家根据上述信息,用MATLAB编程产生DTMF信号,并显示信号图形。
(例如,输入为保定本地7位号码:5079000)
clear all;clc;
tm=[1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68]; % DTMF信号代表的16个数N=205;K=[18,20,22,24,31,34,38,42];
f1=[697,770,852,941]; % 行频率向量
f2=[1209,1336,1477,1633]; % 列频率向量
TN=input('键入6位电话号码= '); % 输入6位数字
TNr=0; %接收端电话号码初值为零
for l=1:6;
d=fix(TN/10^(6-l));
TN=TN-d*10^(6-l);
for p=1:4;
for q=1:4;
if tm(p,q)==abs(d);
break,end % 检测码相符的列号q
end
if tm(p,q)==abs(d); break,end % 检测码相符的行号p
end
n=0:1023; % 为了发声,加长序列
x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双频信号sound(x,8000); % 发出声音
pause(0.1) % 接收检测端的程序
X=goertzel(x(1:205),K+1); % 用Goertzel算法计算八点DFT样本
val = abs(X); % 列出八点DFT向量
subplot(3,2,l);
stem(K,val,'.');grid;xlabel('k');ylabel('|X(k)|') % 画出DFT(k)幅度axis([10 50 0 120])
limit = 80; %
for s=5:8;
if val(s) > limit, break, end % 查找列号
end
for r=1:4;
if val(r) > limit, break, end % 查找行号
end
TNr=TNr+tm(r,s-4)*10^(6-l);
end
disp('接收端检测到的号码为:') % 显示接收到的字符disp(TNr)