欢迎来到天天文库
浏览记录
ID:47036843
大小:241.51 KB
页数:18页
时间:2019-07-03
《DTMF信号的产生及检测》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DSP课程设计实验报告DTMF信号的产生及检测院(系):电子信息工程学院-通信工程设计人员:周钰哲学号:08211052苗祚雨0821207517目录一、设计任务书……………………………………………………………2二、设计内容………………………………………………………………2三、设计方案、算法原理说明……………………………………………3四、程序设计、调试与结果分析…………………………………………6五、设计(安装)与调试的体会…………………………………………16六、参考文献………………………………………………………………1617一设计任务要求双音多频DTMF(DualToneMultiFreq
2、uency)是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,分别抽出一个频率进行组合就可以组成16种DTMF编码,分别记作0~9、*、#、A、B、C、D。如下图1所示。图1DTMF信令的编码要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。1、基本部分:(1)使用C语言编写DTMF信号的发生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对
3、DTMF信号规定的指标。(2)使用C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。2、发挥部分:利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指标,使每秒内传送的DTMF编码越多越好。3、要求完成的任务(1)编写C语言程序,并在CCS集成开发环境下调试通过。(2)实现设计所要求的各项功能。(3)按要求撰写设计报告。二、设计内容DTMF发生器基于两个二阶数字正弦振荡器,一个用于产生行频,一个用于产生列频。在输入信号中检测DTMF信号,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。整个检测过程分两步:首先采用Goertzel17算法在输入信号中提
4、取频谱信息;接着作检测结果的有效性检查。Goertzel算法实质是一个两极点的IIR滤波器。三、设计方案、算法原理说明要用DSP产生DTMF信号,只要通过两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。(1)DTMF信号的产生DTMF编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向DSP装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的DTMF信号频率范围是700~1700Hz,选取8000Hz作为采样频率,即可满足Nyquist条件。DTMF数字振荡器对的二阶系统函数的差分方程为: 其
5、中,,,为采样频率,为输出正弦波的频率,为输出正弦波的幅度。该式初值为,。用sin函数产生离散的正弦值,生成DTMF的公式为:buffer[t]=sin(t*2*pi*f1/fs)+sin(t*2*pi*f2/fs)其中t为采样序数,由0开始递增;f1,f2为生成DTMF信号的两个正弦波的频率;fs为采样频率;buffer[t]为序数t时的得出的采样值。将这些数据转换为Q15格式然后通过codec发送出去。CCITT对DTMF信号规定的指标是,传送/接收率为每秒10个数字,即每个数字100ms。代表数字的音频信号必须持续至少45ms,但不超过55ms。100ms内其他时间为静音,以便区别连
6、续的两个按键信号。我们使用8000Hz的采样频率(电话信号的典型抽样频率为=8kHZ),即1秒采样8000个点,则100ms采样800个点,我们设置800个点的缓存,其中用400个存产生的DTMF信号值,即音频信号必须持续50ms,另外400个存0值,即静音信号。(2)DTMF信号的检测DTMF检测是对进入解码端的信号进行检测,并把双音频信号转换成对应的数字信息。它是一个比DTMF产生更加复杂过程。由于数据流是连续的,为了保证DTMF检测的实时性,因此要求检测过程必须是实时连续的。17在输入信号中检测DTMF信号,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。整个检测过程分两步
7、:首先采用Goertzel算法在输入信号中提取频谱信息;接着作检测结果的有效性检查。DTMF解码时在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只需关心其8个行频/列频及其二次谐波信息即可,二次谐波的信息用于将DTMF信号与声音信号区别开。此
此文档下载收益归作者所有