77范文网 - 专业文章范例文档资料分享平台

DTMF信号的产生及检测

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验名称:电工电子教学基地

DSP课程设计

实 验 报 告

DTMF信号的产生及检测

DTMF信号的产生及检测

一、实验设计内容

基本部分:

1.使用C语言编写DTMF信号的发生程序,可以通过键盘的输入产生0~9对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。

2.使用C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。 发挥部分:

利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指标,使每秒内传送的DTMF编码越多越好。

二、实验目的

1、 了解、掌握DTMF的性质作用。 2、 掌握DTMF的产生和检测的思想和方法。 3、 了解Goertzel算法优化运算过程。

4、 熟练运用C语言进行编程实现DTMF的产生与检测。 5、 熟练使用CCS5402的操作方法和调试检验方式。

三、实验器材

DSP5402开发板两块,CCS软件环境

四、实验原理

双音多频DTMF(Dual Tone Multi-Frequency)信令,逐渐在全世界范围内使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。将DTMF信令的产生与检测集成到任一含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。

DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。电话机键盘上每一个键通过由图1所示的行频与列频唯一确定。DTMF的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。一个DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4 个频率,分别抽出一个频率进行组合就可以组成16 种DTMF 编码,分别记作0~9、*、#、A、B、C、D。 1、 DTMF信号的产生

DTMF编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向DSP装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的DTMF信号频率范围是700~1700Hz,选取8000Hz作为采样频率,即可满足Nyquist

条件。正弦波是任何波形构成的基本单元,产生正弦波的方法一般有:采样回放法、查表法、泰勒级数展开法、数字正弦振荡器法。

我们直接采用sin函数产生离散的正弦值,生成DTMF的公式为:buffer[t]=sin(t*2*pi*f1/fs)+sin(t*2*pi*f1/fs),其中t为采样序数,由0开始递增;f1,f2为生成DTMF信号的两个正弦波的频率;fs为采样频率;buffer[t]为序数t时的得出的采样值。将这些数据转换为Q15格式然后通过codec发送出去。

2、 DTMF信号的检测

在输入信号中检测DTMF信号,并将其转换为实际的数字,这一解码过程本质是连续的过程,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。整个检测过程分两步:首先采用Goertzel算法在输入信号中提取频谱信息;接着作检测结果的有效性检查。

2.1 Goertzel算法

DTMF解码即是在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goertzel算法能更加快速的在输入信号中提取频谱信息。G直接计算DFT,需要很多复系数,即使只计算一点的DFT也需要N个复系数.采用数字信号处理中的Goertzel算法,则可明显地提高速度。

利用二阶复共轭极点可以得到只有一个实系数的差分方程:

1st Harmonics (N = 205) fs = 8 ksps 2nd Harmonics (N=201) fs = 8 ksps k 18 20 22 24 31 34 38 42 frequency (k/N)fs/Hz 702 780 858 936 1210 1326 1483 1639 coefficient cos(2pi k/N) 0.85162 0.81793 0.78115 0.74142 0.58157 0.50442 0.39505 0.27972 k 35 39 43 47 61 67 74 82 frequency (k/N)fs/Hz 1393 1552 1711 1871 2428 2667 2945 3264 coefficient cos(2pi k/N) 0.45886 0.34445 0.22470 0.10141 -0.32974 -0.50000 -0.67606 -0.83740 ?vk(n)?2cos(2k)?vk(n?1)?vk(n?2)?x(n)Nwhere vk(?1)?0 vk(?2)?0 x(n)?input

在实际的DTMF检测中,只需DFT的幅度(本算法为平方幅度)信息就足够了,因此在Goertzel滤波器中,当N点(相当于DFT数据块的长度)样值输入滤波器后,滤波器输出伪DFT值vk(n),由vk(n)即可确定频谱的平方幅度。

2?kkX(k)?y(N)y(N)22? ?vk(N)?vk(N?1)?2cos(2Nk)vk(N)vk(N?1)

Goertzel算法的特点

? Goertzel算法的IIR滤波器结构涉及两个复共轭极点,但对于实际的DTMF音频检

测,只要有幅度信息就够了(实际上使用幅度平方),从而简化为只需要一个实系数参与计算。

? Goertzel算法要比FFT快得多,因为只需要提供8个行/列频和它们的二次谐

波的信息(二次谐波的信息用于将DTMF与话音或音乐区别开来)。

2.2 DTMF检测器流程

把检测程序作为C54x的McBsp接收中断服务子程序,在每一个接收中断到来时,表明采到一个新样点。样点值代入式(2),迭代计算8个行频/列频的中间变量vk(n)(k为8个行频/列频分别对应的数字频率),直到采到N=125个样点(在8kHz采样频率下,约为15ms)。此时再按式(4)计算8个行频/列频的幅度平方|X(k)|2。接下来将|X(k)|2与门限作比较,并作二次谐波检测,判决出有效的音频信号。将音频信号映射为数字信号后,再与上一个检测到的数字信号比较,最终判决出有效的数字信号。

五、实验程序及注释:

1、DTMF信号的产生和发送程序:

/*****************************************************************/

/* DTMFsignal 发送程序 send.c */ /*****************************************************************/ #include #include #include #include #include #include

void send(int num);

HANDLE hHandset; s16 out_buffer[256]; float buffer[256]; s16 n=0; int c=0,a;

float pi=3.1415926;

void main() {

if(brd_init(100)) {

return; }

/* Open Handset Codec */

hHandset = codec_open(HANDSET_CODEC); /* Acquire handle to codec */ /* Set codec parameters */

codec_dac_mode(hHandset, CODEC_DAC_15BIT); /* DAC in 15-bit mode */ codec_adc_mode(hHandset, CODEC_ADC_15BIT); /* ADC in 15-bit mode */

codec_ain_gain(hHandset, CODEC_AIN_6dB); /* 6dB gain on analog input to ADC */

codec_aout_gain(hHandset, CODEC_AOUT_MINUS_12dB); /* -12dB gain on analog output from DAC */

codec_sample_rate(hHandset,SR_8000); /* 8KHz sampling rate */ send(n); }

void send(int n) {

int k=0; int i;

float f1,f2,ff;

ff=2*pi/8000;

i=k;

//键盘输入DTMF信号,每个信号发送40次

while(1)

{ while (!MCBSP_XRDY(HANDSET_CODEC)) {};////如果D/A未准备好,则等待

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库DTMF信号的产生及检测在线全文阅读。

DTMF信号的产生及检测.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1003192.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: