请问如何通过GSM模块获知对方所按数字键?

[复制链接]
6121|18
 楼主| cqcrr 发表于 2008-11-4 17:24 | 显示全部楼层 |阅读模式
网上一般的**都是利用GSM收发短信,打电话等,请问如何通过GSM模块获知对方所按数字键?<br />例如:A拨打B的号码,B接听,A按下“1”键,B如何GSM模块获知对方所按数字键?<br />多谢!
chunyang 发表于 2008-11-4 19:59 | 显示全部楼层

可以通过音频通道接收DTMF信号进行解码实现

模块本身无法实现,需要借助外部资源。
AD9851 发表于 2008-11-4 22:08 | 显示全部楼层

用双音频解码,如外接8870或8880等等
xiaoqing86 发表于 2008-12-1 12:55 | 显示全部楼层

RE

用个DTMF芯片就可以.
dcp 发表于 2008-12-1 14:15 | 显示全部楼层

联通的卡不能发DTMF信号的

  
小猪飞天 发表于 2008-12-1 16:28 | 显示全部楼层

DTMF解码芯片

DTMF信号可以通过专用芯片进行解码,如MT8888,MT8870,只要将音频信号输入这类解码IC就可以输出相应编码,很容易做到,而GSM模块本身大多没有此功能
linqing171 发表于 2008-12-3 13:00 | 显示全部楼层

联通的卡也可以发

DTMF是手机发的,又不是联通的卡发的。<br />一般DTMF可以通过信令发的,如果网络不支持也可以直接混到声音里面发。设置一下音频通路的参数就可以了。
3.3v 发表于 2008-12-5 13:05 | 显示全部楼层

用SC9270接到喇叭上就可以了

  
guosr 发表于 2008-12-9 13:33 | 显示全部楼层

上述方案通通不可行

&nbsp;&nbsp;&nbsp;&nbsp;因为GSM的语音编码是被压缩了的,是有损伤的压缩,并不能恢复出原始的波形,只能恢复出相类似的语音信号。DTMF信号检测则比较严格,通过GSM压缩、传输、解码恢复出来的信号很有可能检测不出来,几率可能高达10%,这是我曾经实际测试的结果,CDMA系统中,情况更糟糕,因为他对语音压缩得更厉害。<br />&nbsp;&nbsp;&nbsp;&nbsp;再说,GSM传输过程中,业务信道可能被临时中断一下,例如信号不好,或者做越区切换,这时候假设碰巧有DTMF信号(例如“1”),那么,“1”的声音被中断一下,分成两截,你作DTMF解码,就认为对方是“11”。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;楼主提的这个问题没有任何解决方案。&nbsp;
chunyang 发表于 2008-12-9 20:36 | 显示全部楼层

楼上言重了

&nbsp;&nbsp;&nbsp;&nbsp;GSM/CDMA的传输带宽完全可以满足DTMF信号传输的需要,解调可靠性只要采取适当措施完全可以在信号场强良好的前提下有保障。当然,借助移动公网的语音信道进行数据传输在多数应用中没有必要,但某些场合下还是有一定用处的。
guosr 发表于 2008-12-10 12:51 | 显示全部楼层

不是语音带宽的问题

&nbsp;&nbsp;&nbsp;&nbsp;而是语音编码对波形的损伤。说白了,GSM和CDMA系统的语音编码并不是以恢复原始波形为目标,而是让人听起来感觉清晰、可懂、可辨识。<br />&nbsp;&nbsp;&nbsp;&nbsp;早在五年前,我所在的公司就想开发一个利用GSM模块收发DTMF的产品,后来实际测试才发现完全不可行,发送的几十个号码,总有一两个收不到,这还是信号条件好的时候,不管你是提高收号芯片的灵敏度,还是想办法做滤波都是无效的。而CDMA则更差劲,错误的比例更高。<br />&nbsp;&nbsp;&nbsp;&nbsp;相比较而言,小灵通倒是可以这样应用,因为小灵通采取的是ADPCM的编码,是可以恢复原始波形的,实际测试,不仅能传输DTMF,甚至还能把低速Modem的信号传过去。
chunyang 发表于 2008-12-10 17:15 | 显示全部楼层

楼上遇到的应是工艺性问题

&nbsp;&nbsp;&nbsp;&nbsp;事实上目前使用基于DTMF接口的设备还是不少的,比如一些声讯台的设备等,支持移动DTMF信号完全没有问题(这算是单向DTMF)。我设计过的一款出租车调度监控系统也应客户要求具有DTMF信道备份,平时使用SMS(当时还没有GPRS)交互,必要时可由主机遥控开启语音通道,在进行车内监听的同时采用DTMF上传GPS数据或接收主机的下达指令(这是双向的DTMF了),测试及实用中并无出现明显的解码问题,楼上可能是在音频接口的设计中存在一定的工艺缺陷,导致失真加大进而误码率上升。<br />&nbsp;&nbsp;&nbsp;&nbsp;DTMF信号的发送一定要采用AT指令,接收则需要良好的音频接口设计包括EMC方面,然后软件上也采取相应措施,这样基于移动语音通道的DTMF小数据量通讯还是可行的,只是GPRS/CDMA出现后,这种方法的性价比就很差了,如果不是为了和有线系统交互或特殊用途,在移动语音通道上附着DTMF确实不值得提倡。
guosr 发表于 2008-12-10 19:40 | 显示全部楼层

我做模拟电路也有年头了,不是音频失真的问题

&nbsp;&nbsp;&nbsp;&nbsp;当年那个产品作少量测试时(研发人员自测),也没感觉有问题。但是在测试部门介入测试后,暴露出很多问题,最后针对这个问题作了大量的测试,甚至专门做了一个工装不停的收发DTMF,来统计误码率。音频电路的设计上也是反复斟酌,提高电路的线性度,抑制失真,抑制噪声,增加MT8880的灵敏度,更换其它品牌的DTMF收号芯片……都是无效的。<br /><br />下面是关于波形编码和声码编码的比较,各位看看就知道了:<br />&nbsp;&nbsp;&nbsp;&nbsp;波形编码器可精确地再现原来的话音波形,话音质量较高,但要求的比特速率相应的较高,在12-16Kbit/s的范围内会造成话音质量恶化,波形编码器硬件上更容易实现,不受时延影响。声源编码是将话音信息用特定的声源模型表示。声码器编码可以是很低的速率,虽然不影响话音的可懂性,但话音质量听起来不自然,很难分辨是谁在讲话。因此GSM系统话音编码器是采用声码器和波形编码器的混合物---&nbsp;混合编码器,全称为线性预测编码-长期预测编码-规则脉冲激励编码器,每话音信道的编码速率为13kbit/s。<br />&nbsp;&nbsp;&nbsp;&nbsp;声码器的原理是模仿人类发音器官喉、嘴、舌的组合,将该组合看作一个滤波器,人发出的声音使声带振动就成为激励脉冲。当然“滤波器脉冲m频率是在不断地变换,但在很短的时间(10ms~30ms)内观察它,则发音器官是没有变换的,因此声码器要做的事是将话音信号分成20ms的声码块,然后分析这一时间段内所相应的滤波器的参数,并提取此时的脉冲串频率,输出其激励脉冲序列。相关的话音段是十分相似的,LTP将当前段与前一段进行比较,相应的差值被低通滤波后进行一种波形编码。故:LPC十LTP参数:3.6&nbsp;kbit/s;RPE参数:9.4kbit/s;因此,话音编码器的输出比特速率是13kbit。<br />
chunyang 发表于 2008-12-11 00:58 | 显示全部楼层

这个问题看来值得商榷,可惜晚来了几年

&nbsp;&nbsp;&nbsp;&nbsp;当年DTMF是唯一的选择,但在GPRS/CDMA普及后重要性明显下降,现在的移动DTMF应用多数是单向的,并不存在楼上所及的问题,至于双向传输时因实验条件的不同确实不好说应用中的普适性绝对没问题,但当年的实验和现场测试中也确实未暴露明显的误码问题,可能是容错设计方面的原因吧,因GPS的遮蔽效应问题,我在软件中过滤了大变化量数据,至于数据变化的原因未做细部分析,只是在实用中并未影响电子地图上的定位,所以严格说我无法否认也无法证实楼上所遇现象,只是在我的设计应用中表现不明显罢了。时过境迁,现在又没有进一步验证的必要,这算是一个悬念吧。
zhaoyu2005 发表于 2008-12-15 10:28 | 显示全部楼层

如果DTMF通讯不可靠的话

那联通和移动的服务台,提示的请按‘*’键,怎么识别呢?他们总不会加特殊的东西吧
chunyang 发表于 2008-12-15 13:04 | 显示全部楼层

楼上所及是单向的,或者称“上行”,基本不存在误码问题

&nbsp;&nbsp;&nbsp;&nbsp;guosr遇到的问题应发生在下行或直接使用外部DTMF发生器的上行,这时音频接口及解码电路的设计有较严格的要求,guosr提到的编码问题也是有道理的,只是设计和测试条件到底对结果的影响有多大存在一定争议或者说未知因素,因为也确实有不少成品设备包括我当年的设计是这么在用的。
xwj 发表于 2008-12-15 14:00 | 显示全部楼层

嗯,关键是GSM对声音的压缩太过分了,声音损伤太大了

<br /><B><font color=#000099>GSM关键技术</font></B><br /><B>3.7&nbsp;&nbsp;话音编码&nbsp;</B><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#000066>由于GSM系统是一种全数字系统,话音或其它信号都要进行数字化处理,因而第一步要把话音模拟信号转换成数字信号(即1和0的组合)。&nbsp;</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#000066>我们对PCM编码比较熟悉,它是采用A律波形编码,分为3步:&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;---&nbsp;采样。在某瞬间测量模拟信号的值。采样速率8kHz/s。&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;---&nbsp;量化。对每个样值用8个比特的量化值来表示对应的模拟信号瞬间值,即为样值指配256(2<SUP>8</SUP>)个不同电平值中的一个。&nbsp;</font><br /><font color=#000066>---&nbsp;编码。每个量化值用8个比特的二进制代码表示,组成一串具有离散特性的数字信号流。&nbsp;</font><br /><font color=#000066>用这种编码方式,数字链路上的数字信号比特速率为64kbit/s&nbsp;&nbsp;&nbsp;&nbsp;(8kbit/s&nbsp;</font><font color=#000066>8)。如果GSM系统也采用此种方式进行话音编码,那么每个话音信道是64kbit/s,8个话音信道就是512kbit/s。考虑实际可使用的带宽,GSM规范中规定载频间隔是200kHz。因此要把它们保持在规定的频带内,必需大大地降低每个话音信道的编码的比特率,这就要靠改变话音编码的方式来实现。&nbsp;</font><br /><font color=#000066>声码器编码可以是很低的速率(可以低于5kbit/s,虽然不影响话音的可懂性,但话音的失真性很大,很难分辨是谁在讲话。波形编码器话音质量较高,但要求的比特速率相应的较高。因此GSM系统话音编码器2是采用声码器和波形编码器的混合物---&nbsp;混合编码器,全称为线性预测编码-长期预测编码-规则脉冲激励编码器(LPC-LTP-RPE编码器),见图3-25所示。LPC+LTP为声码器,RPE为波形编码器,再通过复用器混合完成模拟话音信号的数字编码,每话音信道的编码速率为13kbit/s。&nbsp;</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://vip.6to23.com/wqws/images/yd.files/GSM/GSM-js6.files/g3-6-72.gif">&nbsp;<br /><font color=#000066>图3-25&nbsp;GSM话音编码器框图&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;声码器的原理是模仿人类发音器官喉、嘴、舌的组合,将该组合看作一个滤波器,人发出的声音使声带振动就成为激励脉冲。当然“滤波器”&nbsp;脉冲&nbsp;m频率是在不断地变换,但在很短的时间(10ms~30ms)内观察它,则发音器官是没有变换的,因此声码器要做的事是将话音信号分成20ms的段,然后分析这一时间段内所相应的滤波器的参数,并提取此时的脉冲串频率,输出其激励脉冲序列。相继的话音段是十分相似的,LTP将当前段与前一段进行比较,相应的差值被低通滤波后进行一种波形编码。&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;LPC十LTP参数:3.6&nbsp;kbit/s。&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;RPE参数:9.4kbit/s。&nbsp;</font><br /><font color=#000066>&nbsp;&nbsp;&nbsp;&nbsp;因此,话音编码器的输出比特速率是13kbit。&nbsp;</font>&nbsp;&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部