微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 双音多频DTMF技术在DSP系统的实现

双音多频DTMF技术在DSP系统的实现

时间:08-31 来源:互联网 点击:
2.2 DTMF检测器流程

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


                                                 图 5

按图5所示流程得到DTMF信令检测程序。整个程序作为C54x的McBsp接收串口中断服务子程序,从而可以实时分析来自A/D转换器的DTMF信令信号。

3 性能分析

基于上述原理与算法代码,在TI公司的DSP开发环境Code Composer Studio(CCS)下,分析上述整个DTMF信令的产生与检测方案的性能。

(1)由CCS给出的如下内存印象文件报告,DTMF的产生(gen_dtmf.obj)与DTMF的检测(de_dtmf.obj)这两段核心代码分别占用3e6H和1e0H个字(16bit word),即约占1K字的存储器空间,消耗系统资源极低;

(2)DTMF信令的产生与检测程序均放置于C54x的McBSP中断服务子程序内,由CCS的代码剖析工具分析代码执行时间,当 C54x 运行在主频100MHz时,DTMF产生中断服务子程序interrupt transmit()最大消耗283个时钟周期,即2.83μs,DTMF检测中断服务子程序interrupt receive()最大消耗6148个时钟周期,约61μs。因此该方案能够实时产生与检测DTMF信令,还可保证有时间冗余度,与其他程序在用户系统中并发执行。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top