声波通讯的原理
聲波傳輸是利用聲音作為傳輸方式的一種數據通訊方法。用戶聲音傳輸信號其實我們每天都會用到,比如說我們說話其實就是一個使用聲波進行信號傳輸的典型例子,說話過程可以理解成把信號編碼成聲音的過程,而我們聆聽的過程就相當于把音頻信號解碼成語言文字的過程,而我們使用的中文文字與拼音之間的對應關系就相當于該通訊過程的音頻協議。而音樂可以同樣理解成一種聲波通訊的方式,只是其音頻協議與說話不一樣,音樂的音頻協議可以理解成是樂譜,而演奏就是把樂譜編碼成聲音的過程。而我們古代戰爭中戰鼓實際上也是一種聲波傳輸的一種方式,戰鼓的不同敲擊方式代表著進攻、退兵等等章法細節就是其音頻協議。
所以利用聲波來傳輸其實我們并不陌生,不但我們天天會用上,而且古而有之。
但我們今天所說的聲波通訊的音頻協議一般來自chirp的技術文檔,其應用場景也一般是指電腦、android\iphone等智能手機、各種單片機設備、或者其它各種能發聲的設備之間的信息傳播。
chirp描述了一個智能設備之間依靠聲音進行數據通訊的技術細節,但其實聲波通訊的音頻協議是可以任意自己設計,比如說把chirp音頻協議中的聲音改成雙頻音、甚至是多頻音,以加大單位時間內的信息容量,從而提高傳輸速度,這都是可以的,只要是有這個應用需求。
chirp的音頻協議技術細節是這樣的:
建立一個含有32個字符([0-9,a-v])的表,并將每個字符映射到頻率表。頻率表是根據樂理,通過伴音的計算生成。
0?=?1760hz
1?=?1864hz
…
v?=?10.5khz
一個完整的聲波包包含20個音(即20個字符),每87.2毫秒發一個音?。前兩位為信息頭,采用“hj”,用以通知接收端開始接收。中間10位為有效的信息位,是有效的傳輸信息,即Key值經過映射后的頻率信息。最后8位為RS校驗位,通過RS校驗算法,對中間10位進行計算,生成8位的校驗信息。。如下圖:
| 2位 | 10位 | 8位 |
| hj | 數據 | rs校驗碼 |
校驗主要用來處理由于噪聲干擾造成的信息接收錯誤。通過RS校驗,可以糾正25%的錯誤信息。
接收端需要記錄聲音,并將其進行解碼以及容錯處理。其對算法的要求相對較高,降噪及容錯處理對能否得到正確的解碼信息是至關重要的,其解碼端的難點也就是在這里。
聲波通訊的應用場景:
這里也把現在市場上的一些應用到了聲波的先列一下:支付寶的聲波支付,微信的聲波雷達加好友,QQ音樂中的歌曲的聲波分享,茄子快傳,蛐蛐兒等等,國外的apple,google對聲波通訊也都有應用。
聲波實際上可以看成是一種比二維碼可友好的傳輸方式,二維碼能實現的功能與聲波有很大的相似性,但聲波使用時會更友好。做以上這些功能的時候,基本上都是只要靠近在手機上點一下/劃一下/推一下/甩一下/搖一下(這是你自己定的)就可以了,而不需要像二維碼一樣還要打開攝像頭、對準去拍那樣比較麻煩。相比來說,聲波傳輸更像刷卡一樣方便簡單,可以理解為類似NFC的一種近場通訊技術。
比如說你可以用聲波支付,聲波會員卡,聲波券票,聲音名片,聲波簽到,聲波排隊,做wifi和密碼共享或者設定,做文件/圖片、你App里面的任何項目分享,用聲波關注微博、微信等等。
聲波支付的流程前面有講過,實際上有可能稍微復雜一點,但大概是這樣的思路。
聲波會員卡是指用戶到店鋪后不需要帶物理卡了,而是手機代替了所有的會員卡,在商家一碰,會員信息就自動顯示出來了。
聲波券票也很簡單,比如說一張電子團購券,電子電影券,可以設置成一個唯一的編碼,到場后與錄音設備一碰,系統就能識別到這張券票
聲波簽到是指在固定位置安裝簽到軟件,用戶到達后,可以快速完成簽到操作。?
聲波分享以文件/圖片、或者你App里面的任何項目為例:比如A要把一張圖片發送給B,那么A點擊一下共享按鈕(或者一推一丟都行),這時手機通過聲音把這個圖片的編號發送出去,當B收到這個標志時,馬上從你平臺的服務器上下載這張圖片。最后的效果就是A在要分享的圖片上一點,B就能收到該張圖片,非常的方便快捷。
??
聲波通訊的傳輸效率不是很高,所以對大數據傳輸一般采用如下流程:
微信小程序版演示,請點這里(效果超牛的聲波通信,聲音指紋識別)。
詳情可查看:http://blog.csdn.net/softlgh
作者: 夜行俠 微信號:softlgh, QQ:3116009971, 郵件:3116009971@qq.com
android/iphone/windows/linux/微信 聲波通信庫及源碼:
百度盤下載:https://pan.baidu.com/s/1co0TaQ5KAFFc-MBdrIA6MA
CSDN下載
相關參考:
效果超牛的基于聲波通信和聲音指紋的微信互動平臺(微信小程序版)
聲波通訊的原理
3分鐘為你的應用添加聲波通訊功能
android/iphone/windows/linux聲波通訊庫
Android/iphone手機通過聲波初始化智能設備的WIFI信息
總結
- 上一篇: git第一次提交代码至远程仓库步骤
- 下一篇: win10开启oracle服务器配置,W