聲波通訊原理及原始碼
目前聲波通訊已經在iphone和android中廣泛的應用起來了,涉及到資料和檔案傳輸,以及支付等眾多領域。比如iphone中的chirp,android中的茄子快傳,支付寶的聲波支付,小米快傳等。這些傳輸技術大多都是使用聲波作為握手訊號,然後使用wifi或其他通道傳輸資料。比如茄子快傳可能的實現為,接收方先建立wifi熱點,然後將熱點名稱通過聲波傳送出去,傳送方在收到聲波後解碼出wifi熱點名稱,然後自動連結熱點並傳輸檔案,整個過程不需要人工干預。這些程式的核心技術和難點在於聲波通訊,下面講解聲波通訊原理。
聲波通訊的原理其實比較簡單,主要是用單頻率聲音訊號對資料進行編碼,然後播放這些單頻率聲音,接收方在收到聲音後,識別出頻率,然後根據頻率解碼出資料。比如:我們可以將1500HZ的正弦波對應數字1,1600HZ的正弦波對應數字2,1700HZ的正弦波對應數字3。那麼數字串3123就對應4段正弦波,規定每段正弦波持續100ms,則3123對應400毫秒的聲音段。接收方錄製聲音,對收到的聲音進行解析,識別出1700HZ,1500HZ,1600HZ,1700HZ四段正弦波頻率,然後查詢碼本,解碼出的數字就是3123。
說了這麼多,大家可能還會覺得比較抽象,沒關係,大家可以下載聲波通訊的原始碼自己理解,csdn下載地址:點選開啟連結。
http://download.csdn.net/detail/jcgu/7503955
大家可能都用過支付寶的聲波支付,即兩個終端同時開啟該功能,一個終端作為傳送端send,一個終端作為接收端get,send將本終端上發出的請求資訊按照約定規則的演算法進行聲音編碼,並播放出來,get端接收到send發來的聲音資料,按照約定規則進行解碼,即獲得了相應的資訊。
原理如上,其實很簡單,就是用單頻率聲音訊號對資料進行編碼,然後播放這些單頻率聲音,接收方在收到聲音後,識別出頻率,然後根據頻率解碼出資料。
最簡單的方法就是把0-9賦予特定的頻率,將需要傳輸的資料轉成十進位制的數,分別賦予特定的頻率,然後發出聲音。
get端則接收該聲音,進行解碼,得到相應的真實資料即可。
在實際應用中,需要對所傳輸的資料按照需求設計合理的資料格式,並統一到接收端,必要的時候需要加入加密演算法。
在應用中實現需要用到以下幾個部分
send:資料組合、編碼(加密)、發聲
get:接收聲音、解碼(解密)、資料拆分
有一個工程大家可以參考,我傳到了csnd下載中,直接可以執行聲波通訊原始碼
http://download.csdn.net/detail/zpf8861/7538859