标签:
手机超声波通信,指利用超声波技术在手机间传递信息,比如大家熟知的支付宝的声波支付就是典型的超声波通信技术。其原理很简单,一句话就是把一段时长的频率作为一种信号,发送方把信号编码成很多段等长的频率,通过播音设备发射出去;接收方通过录音设备录制声音,然后将等长的频率识别出来,最后还原成对应的信号。这样就做到了声波传输,比如现在我们的编码是32进制的(0-31),对应的频率我们设定为1k-4.1k,每个信号对应的时长为100ms,如果我们发射信号3,2,10,30则对应的频率为1.3k,1.2k,2k,4k,每段频率的时长为为100ms,接受端识别器的主要作用就是识别这些100ms的频率,然后还原成信号。声波传输是利用声音实现文件的快速传输的一套技术解决方案:采用跨平台的技术,实现任何能够发送声波与接收声波的智能设备之间的数据传输。
声波传输技术由两部分组成:音频协议与网络协议。音频协议将待传数据编码为一系列选定频率的音调;网络协议则将数据以键值形式存入服务器,其中键为与数据唯一对应的10个字符。
音频协议的原理很简单,易于实现。建立一个含有32个字符([0-9,a-v])的表,并将每个字符映射到频率表。频率表是根据乐理,通过伴音的计算生成。
0 = 1760hz
1 = 1864hz
…
v = 10.5khz
一个完整的声波包包含20个音(即20个字符),每87.2毫秒发一个音 。前两位为信息头,采用“hj”,用以通知接收端开始接收。中间10位为有效的信息位,是有效的传输信息,即Key值经过映射后的频率信息。最后8位为RS(Reed-Solomon)校验位,通过RS校验算法,对中间10位进行计算,生成8位的校验信息。。如下图:
校验主要用来处理由于噪声干扰造成的信息接收错误。通过RS校验,可以纠正25%的错误信息。
发送端设备只需能够发送1.7khz到10.5khz的正弦声波即可。为了将发送出的声波变得更好听,可以对声音进行一些美化处理,比如在我们的例子中,采用了椭圆形窗对声波进行了音量上的优化。
接收端需要记录声音,并将其进行解码以及容错处理。其对算法的要求相对较高,降噪及容错处理对能否得到正确的解码信息是至关重要的。所以接收端需要一定的数字运算能力,对设备的硬件配置有一定的要求。对于算法的细节,我们会逐步的公开并开源。
支付宝作为支付相关的应用的代表,相信声波支付功能很多人都用过,但对其原理不一定都了解。
实现原理:声波支付听起来好像都是咻咻的声音,其实咻咻声并不是信息的载体,真正的信息是通过超声波传输的。比如A手机发起咻咻声(此时A也是不停的在循环发送信息),售货机B则在不停的监听。A手机在发送信息前,会先和后台服务器交互,把各种关键的交互信息上传到服务器,然后将要发送的信息加密(支付者的id信息),把加密后的信息转换成超声波,然后再叠加咻咻声,最后发送出去。B在正确收到A的信息后,解码成功后,就连接服务器,确认本次交易,确认成功后,支付生效。
关键点:
chirp和茄子快传是最典型用于在手机间快速传递大量信息(不需要互联网)的应用,比如文件,视频等。茄子快传和chirp都可以传输大文件,但原理上有比较大的区别。
实现原理:A手机发送文件给B手机。B是接收者,B首先建立wifi热点,然后建立sockt通道,最后把wifi用户名和密码通过声波发送出去(用户名和密码在10字符左右)。A处于监听状态,在收到声波,解码出wifi用户名和密码后,连接wifi热点,连接成功后,通过socket把文件发送给B。茄子快传和chirp的根本不同在于chirp高度依赖于互联网;而茄子快传则不需要互联网,仅需要wifi。
关键点:
chirp是最典型的应用,比如两个应用之间直接传输少量的文本或者其他信息,原理和上面的差不多,我就不啰嗦了
标签:
原文地址:http://www.cnblogs.com/SensenCoder/p/5134643.html