如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
2008年第8期大众科技No.8,2008 (总第108期)DAZHONGKEJI(CumulativelyNo.108) 双音多频DTMF信号的产生与检测 苑毅,黄珍 (甘肃联合大学理工学院,甘肃兰州730000) 【摘要】文章讨论一种双音多频DTMF信号产生和解码的设计方法。通过静音信号对双音频信号区分编码,解码中采用 Goertzel算法,在输入输出中提出缓存概念,采用改进的增益控制,省去了溢出检查,从而提高了速度。 【关键词】DTMF;Goertzel算法;缓存概念 【中图分类号】TN911.7【文献标识码】A【文章编号】1008-1151(2008)08-0055-02 (一)引言ω0=2π*f0/fs,fs为采样频率,f0为输出正弦波的频率,A 所谓双音多频(DTMF),就是用两个频率——行频和列频为输出正弦波的幅度。该式初值为y(-1)=0,y(-2)=-Asinω0。 来表示电话机键盘上的一个数字。DTMF电话的指令正在迅速利用差分方程由频率表计算出相应的系数和初始条件装入 的取代脉冲指令。除了在电话呼叫信号中使用外,DTMF还广DSP,按叠代算法得到正弦序列输出,将2个输出叠加即可得 泛的使用在交互式控制应用,例如电话银行、电子邮件甚至到双音频的输出。从而仅需要2个振荡器,就能够产生所需 家电远程控制等,用户可以从电话机发送DTMF信号来做菜单要的8个音频信号。典型的DTMF频率范围是700~1700HZ, 选择。本文讨论一种利用DSP对DTMF信号产生和解码的设计选取8kHZ作为采样频率,满足采样条件。DTMF编解码器的工 方法。为了产生DTMF信号,DSP用软件产生两个正弦波叠加作就是将一串键盘的输入(数字)转换成为一串适当持续时 在一起后发送,解码时DSP则采用改进的Goertzel算法,从间的音频信号对;由解码器检测该音频信号对,并确认相应 频域搜索两个正弦波的存在。的数字。 (二)DTMF信号的产生 开始 电话键盘上的每一个键,都由其行频和列频唯一的确定, 频率图如下所示。 静音信号信号选择择音频信号 表1电话键盘频率表 列1209133614771633查询时间 行中断 697123A 查询时间 770456B新数字中断 852789C 941*0#D 解包音频样本 DTMF编解码器的音频信号产生部分是基于两个二阶的数静音样本返回 字正弦波振荡器,一个产生行频,一个产生列频。振荡器的 框图如下。 图2DTMF编解码器流程图 从而数字与数字之间必须要有适当长度的静音信号以作 区分。因此程序的设计要产生两个信号:双音频信号和静音 信号,一个音频和静音信号对表示一个数字。由定时器变量 指定信号的持续时间,每个数字信号传送结束后,立即从数 字缓存中调出一个新的数字并解包。将该数字映射到行/列音 频信号并装入指针,指向振荡器属性表的相应地址。 整个程序流与接收中断服务子程序同步,提供准确的时 图1振荡器框图钟,用于实时处理和恒定的样本输出。在中断服务子程序完 从而数字振荡器二阶系统函数的差分方程为:成后,就按照发送顺序输出信号。查询方式检查定时器变量 y(n)=-a1*y(n-1)-a2*y(n-2),其中a1=-2cosω0,a2=1,决定发送时间是否终了:控制继续发送或者发送完毕初始化 【收稿日期】2008-05-19 【作者简介】苑毅(1979-),男,湖北武汉人,甘肃联合大学理工学院电信系教师,从事自动控制以及电子技术教学;黄 珍(1980-),女,湖北黄冈人,甘肃联合大学理工学院电信系教师,从事计算机软硬件教学。 -55- 下一个信号的传输。 (三)DTMF信号的检测开始 主要任务是在输入信号中检测DTMF信号,并将其转换为 实际的数字。解码过程本质上是连续的过程,需要在输入的缓存器查询 数据流中连续的搜索DTMF信号的存在。为了保证检测的有效 缓存器接收 性,降低算法的复杂度,可以采用Goertzel算法。计算数字 信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF 衰减强信号 解码时,采用Goertzel算法要比FFT更快。通过FFT可以计 算得到信号所有谱线,了解信号整个频域信息,而对于DTMFGoertzel滤波 信号只用关心其8个行频/列频及其二次谐波信息即可(二次 谐波的信息用于将DTMF信号与声音信号区别开)。此时有效性检查 Goertzel算法能更快速的在输入信号中提取频谱信息。 返回 DTMF解码器的实现,采用与编码器类似的任务安排,与 接收中断服务子程序同步完成。输入数据缓存器接收数据, 图3DTMF信号检测流程图 一旦装满就将输入数据状态字置1。通过查询输入数据状态字 调用初始化函数来初始化DTMF检测过程。然后将输入数据缓(四)结束语
my****25
实名认证
内容提供者
最近下载