姚宏偉 吳震東
摘 要:本系統(tǒng)主要使用一種基于聲波通信的技術(shù)實(shí)現(xiàn)手機(jī)認(rèn)證。傳統(tǒng)的簽到方式主要是人工登記,目前的簽到主要使用RFID技術(shù)、指紋識(shí)別。系統(tǒng)包括用于簽到的手機(jī)app、簽到接收端app,簽到服務(wù)器。用于簽到的手機(jī),安裝有簽到系統(tǒng)軟件。文章對近場的通信現(xiàn)狀、系統(tǒng)原理和關(guān)鍵技術(shù)進(jìn)行了分析。
關(guān)鍵詞:聲波認(rèn)證;手機(jī)簽到系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-8937(2015)12-0012-02
本系統(tǒng)主要使用一種基于聲波通信的技術(shù)實(shí)現(xiàn)手機(jī)認(rèn)證。傳統(tǒng)的簽到方式主要是人工登記,目前的簽到方式主要使用RFID技術(shù)、指紋識(shí)別。
系統(tǒng)包括用于簽到的手機(jī)app、簽到接收端app,簽到服務(wù)器。用于簽到的手機(jī),安裝有簽到系統(tǒng)軟件,具體包括本機(jī)信息存儲(chǔ)模塊、錄音模塊、發(fā)聲子系統(tǒng)和接收簽到子系統(tǒng)。簽到終端和簽到手機(jī)相同,安裝有簽到系統(tǒng)軟件,該系統(tǒng)軟件具體包括本機(jī)信息存儲(chǔ)模塊、錄音模塊、發(fā)聲子系統(tǒng)和接收簽到子系統(tǒng)。簽到服務(wù)器內(nèi)置有將用戶標(biāo)識(shí)和位置信息關(guān)聯(lián)的程序,該程序具體包括簽到信息接收模塊、信息檢索模塊、簽到數(shù)據(jù)庫。
1 近場通信現(xiàn)狀
NFC技術(shù)已經(jīng)存在很多年,相對成熟,但是,仍然未能大規(guī)模在手機(jī)上應(yīng)用,支持近場通信需要更換設(shè)備所導(dǎo)致的高成本,一直是推廣近場通信的阻力。今天,幾乎所有售出的智能手機(jī)將采用該技術(shù)兼容。而相比NFC,超聲波方案更以低成本和兼容性顯示了突出的優(yōu)勢,目前市面上幾乎所有的iPhone,android和wphone手機(jī)無需升級改造均可以支持超聲波通信。
印度安全公司SlickLogin研發(fā)了一種使用電腦揚(yáng)聲器產(chǎn)生高頻聲音,通過手機(jī)的麥克風(fēng)接收并解碼的加密方式。2014年,該公司被google收購。除谷歌外,微軟研究院也在2013年8月,展示了類似的聲波技術(shù),主要用于移動(dòng)傳輸文件功能。4年前,shopkick在大型超市實(shí)現(xiàn)了室內(nèi)定位,后被證實(shí)正是應(yīng)用了超聲波技術(shù)。2年前Facebook收購的Tagtile也同樣利用了超聲波技術(shù)實(shí)現(xiàn)royalty的管理系統(tǒng)。
2 系統(tǒng)原理
人能聽到的聲音在大約20~20 kHz范圍內(nèi),此范圍外的任何頻率人類聽覺系統(tǒng)難以察覺?,F(xiàn)有移動(dòng)設(shè)備一般能記錄和再現(xiàn)的聲音峰值頻率達(dá)到22 kHz。此限制是由這些設(shè)備的最大可能輸出采樣率44.1 kHz推得,實(shí)際可記錄范圍比峰值頻率略低。
采樣率表示了每秒對原始信號(hào)采樣的次數(shù),我們常見到的音頻文件采樣率多為44.1 kHz,這意味著什么呢?假設(shè)我們有2段正弦波信號(hào),分別為20 Hz和20 kHz,長度均為1 s,以對應(yīng)我們能聽到的最低頻和最高頻,分別對這兩段信號(hào)進(jìn)行40 kHz的采樣,我們可以得到的結(jié)果是:20 Hz的信號(hào)每次振動(dòng)被采樣了40 K/20=2 000次,而20 kHz的信號(hào)每次振動(dòng)只有2次采樣。顯然,在相同的采樣率下,記錄低頻的信息遠(yuǎn)比高頻的詳細(xì)。
本系統(tǒng)采用采樣率為44.1 kHz,采樣大小為16 bit、雙聲道的PCM編碼,數(shù)據(jù)速率為44.1 k×16×2=1 411.2 kbps。
聲波簽到系統(tǒng)運(yùn)行框圖如圖1所示。
運(yùn)行步驟為:
①簽到終端持續(xù)發(fā)送編碼的聲波(code)。
②當(dāng)簽到端機(jī)靠近簽到終端,手機(jī)端收到聲波,對聲波譯碼,將譯碼后碼字發(fā)送給簽到服務(wù)器認(rèn)證。
③簽到服務(wù)器收到認(rèn)證信息,檢測簽到終端節(jié)點(diǎn)(node)是否存在,如果存在,則向后臺(tái)數(shù)據(jù)庫寫入簽到數(shù)據(jù)、返回確認(rèn),完成簽到。
3 關(guān)鍵技術(shù)
為了減小數(shù)據(jù)處理過程中的延遲現(xiàn)象,采取了實(shí)時(shí)音頻數(shù)據(jù)采集和數(shù)據(jù)處理技術(shù),而不是像某些類似SDK中使用的技術(shù)那樣,先錄音得到一段音頻文件,然后再進(jìn)行數(shù)據(jù)處理。具體到Android平臺(tái)上,使用AudioTrack模塊來搭建PCM音頻數(shù)據(jù)的采集管道,在管道的最后一個(gè)節(jié)點(diǎn)上,對得到的PCM數(shù)據(jù)再進(jìn)行進(jìn)一步的處理。為了進(jìn)一步降低延遲,使用手機(jī)的DSP硬件來進(jìn)行快速傅里葉變換,具體到Android系統(tǒng)上,就是使Native相關(guān)內(nèi)置函數(shù)進(jìn)行音頻信號(hào)處理。
基于標(biāo)準(zhǔn)的2FSK,假如約定用1.6 kHz的音頻信號(hào)表示二進(jìn)制的0,用1.7 kHz的音頻信號(hào)表示二進(jìn)制的1,同時(shí)約定每一個(gè)bit持續(xù)的發(fā)送時(shí)間為100 ms,假設(shè)要發(fā)送一個(gè)8 bit的二進(jìn)制數(shù)據(jù)11 001 010(忽略同步和校驗(yàn)部分的bit),對于發(fā)送端來說,代碼邏輯相對簡單,只需要讓特定頻率的信號(hào)發(fā)送特定的時(shí)間就行了。但是對于接收端來說,代碼就較困難。雖然使用2FSK,但是并沒有專用的硬件來完成調(diào)制解調(diào)過程,所以要完全用代碼來模擬整個(gè)過程。這里面涉及到傅里葉變換、濾波等大量的數(shù)字信號(hào)處理內(nèi)容,經(jīng)上述處理完畢后,音頻信號(hào)轉(zhuǎn)化為二進(jìn)制的0和1序列,進(jìn)入系統(tǒng)通信協(xié)議棧繼續(xù)處理。
舉個(gè)例子,對于十進(jìn)制數(shù)據(jù)12 345 678,轉(zhuǎn)換成頻率值后,可能就會(huì)是這樣的一組值(1.7 kHz,1.8 kHz,1.9 kHz,2.0 kHz,2.1 kHz,2.2 kHz,2.4 kHz,2.5 kHz),因?yàn)槊恳粋€(gè)bit對應(yīng)的頻率值都會(huì)發(fā)生變化,那么接收端就可以忽略每個(gè)bit持續(xù)的時(shí)間,只需要檢測出每一次頻率值發(fā)生變化就行了,每一次變化后得到的數(shù)值,就可以對應(yīng)到當(dāng)前的bit位的值。使用這種調(diào)制解調(diào)的思路,接收端的代碼處理相對容易。
4 結(jié) 語
我們對聲波檢查采樣,提取其中的頻率。在一個(gè)波周期,簽到終端發(fā)送一系列相同頻率的正弦波,并且相對穩(wěn)定誤差較小,波周期與波周期的間隔起伏明顯。
系統(tǒng)簽到端收到聲源信息的結(jié)果如圖2所示。從兩個(gè)手機(jī)截圖可以看出,左側(cè)手機(jī)發(fā)送的信息,被右側(cè)手機(jī)識(shí)別了,識(shí)別后即可進(jìn)行簽到驗(yàn)證。
參考文獻(xiàn):
[1] 王洋洋.基于聲波通信技術(shù)的ATM創(chuàng)新應(yīng)用[J].中國金融電腦,2014,(4).
[2] 鄭子龍.基于聲波通信的無線計(jì)算器設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2010,(6).
[3] 朱寶泉.隨鉆數(shù)據(jù)聲波傳輸系統(tǒng)算法研究[J].科學(xué)技術(shù)與工程,2012,(31).