欢迎来到天天文库
浏览记录
ID:12721374
大小:751.01 KB
页数:23页
时间:2018-07-18
《dtmf信号的产生与检测 通信 程志超-崔航》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DSP课程设计实验报告DTMF信号的产生及检测学院:电子信息工程学院设计人员:程志超学号:08211028崔航0821102922目录一、设计任务书……………………………………………………………2二、设计内容………………………………………………………………3三、设计方案、算法原理说明……………………………………………3四、程序设计、调试与结果分析…………………………………………5五、设计(安装)与调试的体会…………………………………………13六、参考文献………………………………………………………………2122一、设计任务书简介双音多频(DTMF)技术,是用两个特定的单音频组合信号来代表数字
2、信号以实现其功能,已被广泛用于电话的音频拨号,实现电话号码快速可靠的传输。此外,DTMF拨号和解码也广泛应用在通信系统其他方面,如语言邮件、电话银行和ATM终端等。同时,随着数字信号处理芯片(DSP)硬件结构和性能的不断完善,DSP嵌入式系统已在工业控制、影像视频、宽带、无线通信、图像采集等方面得到了广泛而有效地应用,已成为电子产品更新换代的决定因素。因此,开发基于DSP的DTMF实验系统有其重大的现实意义,而DTMF的编解码方案无需过多的计算量,可以很容易在DSP系统中与其他任务并发执行。双音多频DTMF(DualToneMultiFrequency)是在按键式电话机上得到广泛应用的音频
3、拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,分别抽出一个频率进行组合就可以组成16种DTMF编码,分别记作0~9、*、#、A、B、C、D。如下图1所示。图1DTMF信令的编码要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域搜索两个正弦波的存在。l设计要求及目标Ø基本部分:(1)使用C语言编写DTMF信号的发生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。(2)使用
4、C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。Ø发挥部分:利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指22标,使每秒内传送的DTMF编码越多越好。要求完成的任务(1)编写C语言程序,并在CCS集成开发环境下调试通过。(2)实现设计所要求的各项功能。(3)按要求撰写设计报告。二、设计内容使用C语言编写DTMF信号的发生程序,通过发送端实现0-9、*、#、A、B、C、D对应的DTMF信号的产生,并且符合CCITT对DTMF信号规定的指标,再由接收端接收到发送端所发送的相应信号,实现双机通信。三、设计方案、算法原理说明DTMF信号的产生DTMF发生器基于
5、两个二阶数字正弦振荡器,一个用于产生行频,一个用于产生列频。DSP只要装载相应的系数和初始条件,就可以只用两个振荡器产生所需的八种音频信号。典型的DTMF信号频率范围是700~1700Hz,选取8000Hz作为采样频率,即可满足奈奎斯特定理。在100ms内采样800个点,我们设置800个点的缓存,其中用400个存产生的DTMF信号值,即音频信号必须持续50ms,另外400个存0值,即静音信号。方案一:数字正弦振荡产生DTMF信号DTMF信号的数学表达式可写为:S(t)=Asin()+Asin()(1)式中,A为低频信号振幅;为低频信号频率,选自低频组(697Hz,770Hz,852Hz,9
6、41Hz)中的任意一个频率;A为高频信号振幅;为高频信号频率,选自高频组(1209Hz,1366Hz,1477Hz,1633Hz)中的任意一个频率,对该DTMF时域信号用8kHz进行采样便可以得到DTMF的数字序列。方案二:DTMF数字振荡器对的二阶系统函数的差分方程为:,其中,,,为采样频率,为输出正弦波的频率,为输出正弦波的幅度。该式初值为,。得到振荡器系统的差分方程为:22。DTMF信号的接收在输入信号中检测DTMF信号,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。整个检测过程分两步:首先采用Goertzel算法在输入信号中提取频谱信息;接着作检测结果的有效性检查。DT
7、MF解码时在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只需关心其8个行频/列频及其二次谐波信息即可,二次谐波的信息用于将DTMF信号与声音信号区别开。此时Goertzel算法能更加快速的在输入信号中提取频谱信息。Goertzel算法原理框图
此文档下载收益归作者所有