DSP的DTMF信令的产生分析与检测

最新更新时间:2013-08-19来源: 21ic关键字:DSP  DTMF信令 手机看文章 扫描二维码
随时随地手机看文章

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

  DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。电话机键盘上每一个键通过由图1所示的行频与列频唯一确定。DTMF的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。

  


 

  图 1

  由图1可知,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号。为了产生DTMF信号,DSP用软件产生两个正弦波叠加在一起后发送,解码时DSP则采用改进的Goertzel算法,从频域搜索两个正弦波的存在。本文即讨论DTMF编解码在TI公司定点DSP芯片TMS320C54x(以下简称为C54x)系列上的实现。

  1、 DTMF信号的产生

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

  

 

  图 2

  由图2数字振荡器对的框图,可以得到该二阶系统函数的差分方程为:

  y(n) = -a1y(n-1) - a2y(n-2) (1)

  其中a1=-2cosω0,a2=1,ω0=2πf0 /fs,fs为采样频率,f0为输出正弦波的频率,A为输出正弦波的幅度。该式初值为y(-1)=0,y(-2)=-Asinω0。

  CCITT对DTMF信号规定的指标是,传送/接收率为每秒10个数字,即每个数字100ms。代表数字的音频信号必须持续至少45ms,但不超过55ms。100ms内其他时间为静音,以便区别连续的两个按键信号。

  

 

  图 3编程的流程如图3所示,由CCITT的规定,数字之间必须有适当长度的静音,因此编码器有两个任务,其一是音频信号任务,产生双音样本,其二是静音任务,产生静音样本。每个任务结束后,启动下一个任务前(音频信号任务或静音任务),都必须复位决定其持续时间的定时器变量。在静音任务结束后,DSP从数字缓存中调出下一个数字,判决该数字信号所对应的行频和列频信号,并根据不同频率确定其初始化参数a1=-2cosω0与y(-2)=-Asinω0。

  该流程图可采用C语言实现,双音信号的产生则由54x汇编代码实现。整个程序作为C54x的多通道缓冲串口(McBsp)的发射串口中断服务子程序,由外部送入的8000Hz串口时钟触发中断,可实时处理并通过D/A转换器输出DTMF信令信号。

  2 DTMF信号的检测

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

  2.1 Goertzel算法

  DTMF解码即是在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goertzel算法能更加快速的在输入信号中提取频谱信息。

  

 

  图 4

  Goertzel算法实质是一个两极点的IIR滤波器,其算法原理框图如图4。由于在DTMF检测中,输入的信号是实数序列,并不需要检测出8个行频/列频的相位,只需要计算出其幅度平方即可。

  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信令,还可保证有时间冗余度,与其他程序在用户系统中并发执行。

关键字:DSP  DTMF信令 编辑:探路者 引用地址:DSP的DTMF信令的产生分析与检测

上一篇:嵌入式时钟管理器的设计方案与实现
下一篇:基于CAN总线的机械电子式制动系统电控单元的实现

推荐阅读最新更新时间:2023-10-12 22:25

基于MCU与DSP的双机压电捷联惯导系统
   引 言   近年来,广大科研工作者研究了各种减小压电捷联惯导系统的误差方法,使压电惯性器件的精度得到了极大的提高 .本文介绍了一种实用的基于DSP实现的压电捷联惯导系统方案。   1 系统的硬件设计   整个压电捷联惯导系统分为三个部分:压电惯性组合部分;由ADS1251与ADuC834组成的信号接口与模数转换单元;由TMS320C54lO等构成的数据处理单元。系统框图如图1所示。   压电惯性组合采用专用压电陀螺及压电加速度计。由TI公司24位,20 kHz的A/D转换器ADSl251完成六路压电陀螺及压电加速度计的信号精确采样,实际采样速率为500 Hz。采用美国模拟器件公司的8位
[应用]
Credo推出Seagull 452系列高性能光DSP芯片——八通道/四通道/双通道DSP
Credo推出Seagull 452系列高性能光DSP芯片——八通道/四通道/双通道DSP 功耗、性能和成本经过优化,契合日益增长的AI需求 加州圣何塞和中国深圳,2023年9月5日—— Credo Technology是一家提供安全、高速连接解决方案的创新企业。Credo致力于为数据基础设施市场提供其所必须的高能效、高速率解决方案,以满足其不断增长的带宽需求 。Credo今日发布Seagull 452系列高性能、低功耗光DSP新品。该系列包括三款光DSP产品:Seagull 452(八通道),Seagull 252(四通道)以及Seagull 152(双通道)。三款产品均集成VCSEL、EML和SiPho驱动。 Cre
[嵌入式]
多路测量信号扩频传输的DSP系统实现
1. 引 言 在测控领域,通常要求对多路检测信号进行传输。信号的传输过程中常受到周围复杂环境的干扰会产生较大的失真。如采用扩频通信传输系统,在发射机中用伪随机序列对所传输信号的频谱进行扩展并利用码分复用实现多路信号的复用;在接收机中再对其解扩,恢复原传输信号。利用扩频通信的扩频增益,可大大提高通信系统的信噪比,增加传输信号的可靠性改善通信质量、提高通信效率。 同时 DSP具有可满足算法控制复杂结构、运算速度高、寻址方式灵活和通信性能强大等需求,可以通过软件修改传输信号参数,因此具有很大的灵活性。本文利用 DSP系统实现多路测量信号扩频传输,结合了扩频通信和 DSP的优点 ,是一种有发展前途的检测信号传输实现方式。
[嵌入式]
基于ARM和DSP架构的多处理器高速通讯协议设计
  目前,建立在宽带网络的多媒体应用日渐增多,高性能的DSP也不断推陈出新,由于DSP具备非常灵活的编程运算能力,针对不同的编码标准,采用不同的编码软件,加上合适的芯片价位,在视频会议终端、视频监控服务器、IP数字机顶盒等产品中已被普遍采用。   虽然DSP具备众多的优点, 但却不适合作系统控制,因为DSP通常没有强大的操作系统,没有完备的网络协议栈和可靠的文件系统,DSP架构在作控制指令时无法并行处理,分支判断和高速缓存没命中(cache miss)都会使运行效率极大降低。而这些正好是嵌入式RISC处理器的强项,比如ARM和MIPS系列,所以现在很多国际知名的半导体公司如PHILIPS和TI都推出了整合了RISC处理器和DSP的S
[单片机]
基于ARM和<font color='red'>DSP</font>架构的多处理器高速通讯协议设计
基于DSP的数字移相器-变压变频器模块的设计与实现
  移相器简介   两个同频信号,特别是工频信号之间的移相,在电力行业的继电保护领域中是一个模拟、分析事故的重要手段。传统的移相方式都是通过三相供电用特殊变压器抽头,以跨相的方法进行移相,可统称为电工式移相。还有一种方法就是在信号衰减后,经模拟电路或数字电路实现移相,再由功放进行放大输出,一般称为电子式移相。工频信号经倍频电路(一般为3600或36000倍频)产生倍频信号送至微CPU,由其经过D/A转换器进行波形重新合成,同时微CPU改变合成波形的起始点时间,再经功放放大输出实现移相,一般称为程控式移相。   现在常用的数字移相器由以下几个功能模块组成:变频单元(变压变频器),变流单元(升流器),移相单元(数字相位表),数字电
[嵌入式]
基于<font color='red'>DSP</font>的数字移相器-变压变频器模块的设计与实现
一种基于DSP与FPGA的高速通信接口设计方案
在雷达信号处理、数字图像处理等领域中,信号处理的实时性至关重要。由于 FPGA 芯片在大数据量的底层算法处理上的优势及 DSP 芯片在复杂算法处理上的优势, DSP + FPGA 的实时信号处理系统的应用越来越广泛。ADI公司的TigerSHARC系列 DSP 芯片浮点处理性能优越,故基于这类。DSP的DSP+ FPGA 处理系统正广泛应用于复杂的信号处理领域。同时在这类实时处理系统中,FPGA与DSP芯片之间数据的实时通信至关重要。 TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益
[嵌入式]
一种基于<font color='red'>DSP</font>与FPGA的高速通信接口设计方案
基于VxWorks的多DSP系统的多任务程序设计
摘要:多DSP信号处理板广泛地运用于工业、军事、通信和医疗等许多方面。本文介绍一种基于VxWorks实时操作系统的ADSP21160的多DSP板设计,以及该板在数字式声纳的实时信号处理系统中的应用,并介绍在VxWorks实时操作系统下的软件算法仿真和实现。 关键词:多DSP阵列 声纳系统 VxWorks 近年来,计算机产品的应用领域越来越广,数字信号处理器的发展表现得尤为明显。DSP芯片制造商和DSP板开发商利用自身的优势不断开发出多DSP结构的产品来满足这种需求。通常的DSP设备是与嵌入式系统相结合,来实时地完成某一特定任务。随着信号采集速度和处理速度的要求越来越高,许多领域都需要进行多处理器运算,其中包括医学、图像处
[嵌入式]
基于TMS320C6000 DSPDSP/BIOS系统的Flash引导自启动设计
摘要: 随着信息技术的发展,DSP在现代电子系统设计中得到了广泛的应用,并且DSP的FLASH自启动在DSP的系统设计中也占有重要的地位,DSP/BIOS是TI推出的嵌入式实时操作系统。 关键词: TMS320C6713;引导启动;DSP/BIOS实时操作系统 FLASH是非易失的重复可读写存储器,其读写速度较慢,常用来存储系统设计的程序,微处理器通过一定的方式将FLASH中的程序读取到处器内部运行,而TI公司的C6000系列的DSP内部没有FLASH,故DSP的程序需要烧到外部的FLASH中,在上电后,DSP会通过二次引导将程序从外部的FLASH读取到DSP内部RAM或SDRAM中,高速执行。TI的C6000 DSP
[嵌入式]
基于TMS320C6000 <font color='red'>DSP</font>及<font color='red'>DSP</font>/BIOS系统的Flash引导自启动设计
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved