双音多频dtmf技术在dsp系统中的实现

双音多频dtmf技术在dsp系统中的实现

ID:25411502

大小:53.50 KB

页数:6页

时间:2018-11-20

双音多频dtmf技术在dsp系统中的实现_第1页
双音多频dtmf技术在dsp系统中的实现_第2页
双音多频dtmf技术在dsp系统中的实现_第3页
双音多频dtmf技术在dsp系统中的实现_第4页
双音多频dtmf技术在dsp系统中的实现_第5页
资源描述:

《双音多频dtmf技术在dsp系统中的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、第1内容显示中  DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。机键盘上每一个键通过由图1所示的行频与列频唯一确定。DTMF的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。  由图1可知,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号。为了产生DTMF信号,DSP

3、用软件产生两个正弦波叠加在一起后发送,解码时DSP则采用改进的Goertzel算法,从频域搜索两个正弦波的存在。本文即讨论DTMF编解500)this.style.ouseg(this)">码在TI公司定点DSP芯片TMS320C54x(以下简称为C54x)系列上的实现。1DTMF信号的产生  DTMF编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向DSP装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的DTMF信号频率范围是700~1700Hz,选取

4、8000Hz作为采样频率,即可满足Nyquist条件。  由图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。1

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

6、0与y(-2)=-Asinω0。  该流程图可采用C语言实现,双音信号的产生则由54x汇编代码实现。整个程序作为C54x的多通道缓冲串口(McBsp)的发射串口中断服务子程序,由外部送入的8000Hz串口时钟触发中断,可实时处理并通过D/A转换器输出DTMF信令信号。(具体程序略,有兴趣的读者可在《今日电子》网站.epc..的“网刊互动”栏目中查阅本文全文)2DTMF信号的检测  在输入信号中检测DTMF信号,并将其转换为实际的数字,这一解码过程本质是连续的过程,需要在输入的数据信号流中连续地搜索DTM

7、F信号频谱的存在。整个检测过程分两步:首先采用Goertzel算法在输入信号中提取频谱信息;接着作检测结果的有效性检查。  2.1Goertzel算法  DTMF解码即是在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goer

8、tzel算法能更加快速的在输入信号中提取频谱信息。500)this.style.ouseg(this)">  Goertzel算法实质是一个两极点的IIR滤波器,其算法原理框图如图4。  如图知,DFT计算可以等价为:  由于在DTMF检测中,输入的信号是实数序列,并不需要检测出8个行频/列频的相位,只需要计算出其幅度平方即可。对于实序列x(n),Goertzel算法所需的内部变量vk(n)也为实数。因此计算|X(k)|2如下:  用上式的计算取代式(3)即可完全避免复数运算。  2.2DTMF检测器流

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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。