zoukankan      html  css  js  c++  java
  • 超声波

    手机超声波通信技术介绍:

    手机超声波通信,指利用超声波技术在手机间传递信息,比如大家熟知的支付宝的声波支付就是典型的超声波通信技术。其原理很简单,一句话就是把一段时长的频率作为一种信号,发送方把信号编码成很多段等长的频率,通过播音设备发射出去;接收方通过录音设备录制声音,然后将等长的频率识别出来,最后还原成对应的信号。这样就做到了声波传输,比如现在我们的编码是32进制的(0-31),对应的频率我们设定为1k-4.1k,每个信号对应的时长为100ms,如果我们发射信号3,2,10,30则对应的频率为1.3k,1.2k,2k,4k,每段频率的时长为为100ms,接受端识别器的主要作用就是识别这些100ms的频率,然后还原成信号。声波传输是利用声音实现文件的快速传输的一套技术解决方案:采用跨平台的技术,实现任何能够发送声波与接收声波的智能设备之间的数据传输。

    手机超声波通信功能介绍:

    1. 声波传输支持一对一传输,也支持一对多的传输。
    2. 支持字母、数字、符号传输。
    3. 在安静情况下,有效传输距离可以达到5米左右,在一般应用场景下也能达到很可观的识别距离。
    4. 使用特殊的降噪算法,对噪声有很好的抑制作用,在汽车行驶过程中、公交车、食堂、大马路、办公场所等都可以达到良好的识别率。
    5. 在一般应用场景下数据传输正确率达到98%以上。程序中添加了自动纠错算法,可以在一定程度上自动纠正传输中发现的错误,同时也能在一定程度上保证收到数据的正确性。
    6. 支持的平台。目前该声波传输技术已经在iOS、OSX、Android、Windows、Linux、以及嵌入式平台(mips和arm指令集)上成功运行,并都有成功的商业案例。
      7 .嵌入式特殊定制和优化。随着嵌入式智能设备的大量兴起(比如车载设备、智能摄像机、智能路由器等等),目前有大量的嵌入式应用需要集成声波传输功能,针对嵌入式平台我们专门对内存占用和运算效率作了优化,内存占用10K以内,cpu主频150M就可以顺利运行声波传输模块。
    7. 可定制性强,比如对不同的频率、不同的声音、音量等等进行定制。
    8. 超声波传输支持。我们可以为用户提供超声波传输版本,也即,在传输过程中听不到声音。
    9. 还可以为用户提供声音的叠加功能,比如类似支付宝的咻咻功能,也可以为用户添加其他特殊的声音,比如狗叫、猫喵等等。比如发送一段信息,发出的是狗叫,对方收到的是信息。

    声波传输如何工作?

    声波传输技术由两部分组成:音频协议与网络协议。音频协议将待传数据编码为一系列选定频率的音调;网络协议则将数据以键值形式存入服务器,其中键为与数据唯一对应的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的正弦声波即可。为了将发送出的声波变得更好听,可以对声音进行一些美化处理,比如在我们的例子中,采用了椭圆形窗对声波进行了音量上的优化。

    接收端(解码器)

    接收端需要记录声音,并将其进行解码以及容错处理。其对算法的要求相对较高,降噪及容错处理对能否得到正确的解码信息是至关重要的。所以接收端需要一定的数字运算能力,对设备的硬件配置有一定的要求。对于算法的细节,我们会逐步的公开并开源。

    超声波通信技术应用场景:

    1.声波支付

    支付宝作为支付相关的应用的代表,相信声波支付功能很多人都用过,但对其原理不一定都了解。

    实现原理:声波支付听起来好像都是咻咻的声音,其实咻咻声并不是信息的载体,真正的信息是通过超声波传输的。比如A手机发起咻咻声(此时A也是不停的在循环发送信息),售货机B则在不停的监听。A手机在发送信息前,会先和后台服务器交互,把各种关键的交互信息上传到服务器,然后将要发送的信息加密(支付者的id信息),把加密后的信息转换成超声波,然后再叠加咻咻声,最后发送出去。B在正确收到A的信息后,解码成功后,就连接服务器,确认本次交易,确认成功后,支付生效。

    关键点:

    1. 发送的是支付者的id信息,一般10个字符以内。
    2. 发送信息的手机在不停的发送支付者的id。

    2.传输文件

    chirp和茄子快传是最典型用于在手机间快速传递大量信息(不需要互联网)的应用,比如文件,视频等。茄子快传和chirp都可以传输大文件,但原理上有比较大的区别。

    实现原理:A手机发送文件给B手机。B是接收者,B首先建立wifi热点,然后建立sockt通道,最后把wifi用户名和密码通过声波发送出去(用户名和密码在10字符左右)。A处于监听状态,在收到声波,解码出wifi用户名和密码后,连接wifi热点,连接成功后,通过socket把文件发送给B。茄子快传和chirp的根本不同在于chirp高度依赖于互联网;而茄子快传则不需要互联网,仅需要wifi。

    关键点:

    1. 发送的信息为10个字符左右的用户名和密码。
    2. 接收者不停的在发送wifi用户名和密码。
    3. 真正的信息传输是通过wifi传输的,声波作为握手的工具。

    3.传输少量信息

    chirp是最典型的应用,比如两个应用之间直接传输少量的文本或者其他信息,原理和上面的差不多,我就不啰嗦了

  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/SensenCoder/p/5134643.html
Copyright © 2011-2022 走看看