- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于双音多频信号传输的双音重提式电话查询系统
计算机语音处理技术的出现使信息服务系统和办公室系统能够自动接收必要的信息,并进行各种远程控制。在实际操作过程中,首次拨号一般由程控交换机识别,并完成主叫与被叫设备的的连接。二次乃至多次拨号的识别及响应则由用户系统完成。图1是基于PC机的电话查询系统。系统的主要功能是识别用户的拨号,根据用户的拨号进行查询并将查询的结果用语音的形式交给用户。其中的关键技术就是语音信号的传输和双音多频信号(DTMF)的识别。目前,对双音多频信号进行检测和识别均采用专门的硬件进行解码,例如采用双音多频解码芯片MT8880,但这样会提高产品的成本。本文提出一种利用市面上比较常见的Voice/Fax/Data Modem传输语音信号和识别双音多频信号的方法,可以降低硬件成本。
1 语音采样系统的设计
要在计算机中实现通过Modem传输语音信号必须使用Windows95/98中提供的电话应用程序编程接口(TAPI)和低级音频函数。支持实时音频数据的电话驱动程序所支持的设备类型有:comm、comm/datamodem、wave/in和wave/out等。将设备类型指定为wave/in,通过TAPI的函数lineGetID就能返回1个设备ID,在低级音频函数waveInOpen中使用它打开该设备用于音频的输入。将设备类型指定为wave/out,通过TAPI的函数lineGetID能返回1个设备ID,在低级音频函数waveOutOpen中使用它打开该设备用于音频的输出。在本系统中语音的采样格式为WAVE_FORMAT_PCM、单声道、采样频率为8kHz,样本量化率为16位,即每秒的语音数据有16kB。在一般的Modem中对语音信号只支持这样的采样格式。通过上述方法就能实现语音信号的输入和输出。
电话语音信号的带宽约在300~3400Hz之间,而双音多频信号的频率恰好也在该带宽内。因此可以通过Modem对双音多频信号进行采样,然后利用计算机进行数字信号处理,从而完成信号的识别和检测。由于计算机的处理速度非常快,用软件进行DTMF解码,完全能满足速度的要求。图2(a)为通过Modem采样的双音多频信号‘1’,图2(b)为该信号的幅频。
2 通信模式和多频率信号的特点
普通电话的拨号方式一般分为二种:脉冲拨号方式和DTMF拨号方式。
2.1 开关控制二代电路设计
脉冲拨号是由接在旋转拨盘位置上的开关或电子开关控制二线电路的通与断。拨出的数字每一位都有一串唯一的电流脉冲与之对应。利用脉冲拨号方式,话机发送1个10位长的号码大约需要7秒。
2.2 双音多频号码的信号特性
当采用DTMF拨号方式时,号码的每一位数字用一对音频表示。话机中共有8个单音频,分为2组。通过按键号盘选择拨号时,各位数字由触键开关数输入,与其对应的那个频率对(高频和低频)同时被传输,图2所示为各频率对应位置。DTMF拨号方式中每一位数字的传输时间为40ms,2位数字之间的间隔亦为40ms。双音多频拨号每秒可发送12个数字。很显然,DTMF的拨号方式的速度比脉冲拨号方式快10倍。DTMF拨号方式缩短了拨号时间,而且发出的信号抗干扰能力要大大高于脉冲拨号方式。此外,DTMF方式比脉冲拨号方式多6种状态:“#”、“觹”、“A”、“B”、“C”和“D”,使拨号更加灵活。
3 gortzel算法
在双音多频通信系统中,高频音与低频音的1个组合表示1个特定的数字或字符“觹”和“#”。如表1所示8个频率共组合出16个字符,其中“A”、“B”、“C”、“D”4个是保留字符以备进一步扩展用。
检测算法可以使用快速傅立叶变换FFT算法的离散傅立叶变换DFT,或使用一组滤波器实现。当要检测的音频数较少时,用滤波器组实现更有效。N点数据系列邀x(n)妖的DFT为:
如果用FFT算法实现该DFT计算,计算量(复数法和加法)是Nlog2N,则立即得到DFT的所有N个值。然而如果希望计算DFT的M点,且Mlog2N,则直接计算DFT更有效。下面介绍Goertzel,该算法实质上是计算DFT的一种线性滤波方法,它提供了直接计算之外的另一种方法。
G oertzel算法利用相位因子的周期性,能将DFT运算表示为线性滤波运算。由于,因此可用该因子去乘DFT,则:
如果定义系列yk(n)为:
则yk(n)显然是有限长输入系列x(n)与具有如下系统函数的滤波器的卷积。该滤波器在n=N点的输出就是X(k)的值。
将具有一对复共轭极点的谐振器组合在一起,就可以避免出现复数乘法和加法运算。这样就导出了具有如下形式的系统函数的双极点的滤波器:
该系统所对应的差分方程为:
初始条件为υk(-1)=υk(-2)=0。这就是Goertzel算法。
公式(5)中的递推关系对n=0、1……N重复N+1次,但公
文档评论(0)