王曉輝,徐文淵,吳燕靜
(浙江大學 電氣工程學院,浙江 杭州310027)
隨著普適計算、物聯網概念的深入,智能手機傳感器應用得到越來越多的關注,研究的范圍覆蓋諸多領域,如,行為感知、情景識別、室內定位和環境監測等[1]。如何綜合這些傳感器的數據,拓寬手機的使用場景,仍然是一個開放的問題。風速風向測量廣泛應用于氣象、海洋、機場等多領域,目前普遍使用超聲波測風儀測量風速風向[2]。
手機是人出行必備設備,完成的功能也越來越多。當前已經存在利用手機測量風速的應用,例如:Wind Meter[3]可以根據麥克風輸出聲音信號的特點,測量氣流吹向麥克風的速度。借助于外置的配件,Vaavud[4]可以測算出當前的實時風速。但是對于風向信息的測量還沒有得到應有的重視。本文提出了基于智能手機的麥克風和姿態傳感器測量風向的方法。首先,通過模型分析和實驗驗證,建立了風吹向麥克風產生的風噪聲和風的入射角度的關系;然后設計算法從風噪聲數據中識別出風向;最后在Matlab 上完成算法仿真和性能分析。
智能手機上普遍采用的聲音傳感器是MEMS 麥克風。MEMS 麥克風內傳感部分(transducer)的實質是一個可變電容器,其結構如圖1 所示。傳感原理利用了固定板(backplate)和可動板(diaphragm)聯接形成的電容的變化。氣流通過背板的音孔,振動膜板,改變電容兩極之間的氣隙,引起電容的變化。
姿態傳感器通過三個角度和一個時間戳(timestamp)描述手機各個時刻的姿態,這三個角度分別為方位(azimuth)角,俯仰(pitch)角和翻滾(roll)角。通過這三個角度,可以得到手機相對于地球參考系的姿態。其中,三個角度的定義如下:

圖1 MEMS 麥克風傳感部分構造和手機參考系Fig 1 Structure of sensing part of MEMS microphone and reference system of smartphone
1)方位(azimuth)角,手機圍繞z 軸的轉動度數。這是地磁北極和設備的y 軸之間的夾角。例如:如果手機的y軸與地磁北極對準,此值是0°,如果y 軸指向南,這個值是180°。同樣,當y 軸指向東這個值是90°,當它指向西這個值是270°。
2)俯仰(pitch)角,手機圍繞x 軸的轉動度數。當手機z 軸正向朝向y 軸正方向轉動時,俯仰角為正,當z 軸正向朝著y 軸負方向轉動時,此值為負。俯仰角的范圍為180°~180°。
3)翻滾(roll)角,手機圍繞y 軸的轉動度數。當z 軸正向朝向x 軸正向轉動時,這個值是正的,當z 軸正向朝向x 軸負方向轉動時,它是負值。翻滾角的范圍為90°~90°[5]。
本文通過方位(azimuth)角推算手機的指向,并依此確定風源所在方向。
聲波并不是唯一能使麥克風產生輸出的振動源[6]。由麥克風的傳感原理可知,振動引起的麥克風內兩極板間間隙的改變是產生輸出信號的原因。當風吹向麥克風時,氣流同樣可以引起可動膜板的振動,進而產生輸出信號。本文中稱這種由氣流直接引起的輸出信號為風噪聲。
氣流進入麥克風口的角度(入射角如圖2)影響風噪聲的特性,通過實驗發現了風噪聲和入射角的關系。

圖2 氣流入射角示意圖Fig 2 Illustration of airflow incident angles
1)風噪聲的強度隨著入射角的變化而變化,且最大值所對應的入射角不固定。當入射角為0°,即風正向吹向麥克風時,產生的噪聲強度并不一定總是最大。在風速較小條件下,風產生的噪聲在入射角為0°時達到最大。但當風速較大時,0°傾角產生的噪聲并不是最大。這個結論表明,通過噪聲最大值確定風向的辦法不可行。
2)風噪聲的波形呈現對稱性,且對稱軸的位置對應于風源。在風速不變情況下,當入射角的度數相同時,風從左側和從右側吹向麥克風產生的噪聲相似。當風從一側均勻變化到另一側吹向麥克風口時,麥克風產生的噪聲的波形呈現對稱的特性,稱這個現象為風噪聲的對稱性,如圖3 描述了空調作為風源時,三種不同風速下,風噪聲在各個入射角下的波形圖和頻譜圖(spectrogram)。觀察波形,發現對稱軸的位置對應于風源所在的方向角。這個結論表明,可以通過定位對稱軸的角度,計算出風源的方向。

圖3 風噪聲的時域波形和頻譜圖Fig 3 Time domain waveforms and spectrograms of wind noise
為了實現手機測量風向,設計了Wind Compass 系統。圖4 描述了Wind Compass 的工作流程。
開始測量后,一邊轉動手機,一邊記錄數據。手機將會同時記錄環境中的聲音(包括風噪聲和其他聲音)和手機的姿態數據。數據預處理包括兩個步驟:提取風噪聲特征信息和恢復風噪聲對稱性。由于麥克風可能記錄風噪聲以外的聲音,而對稱性分析的是風噪聲和入射角的關系,所以,需要將代表風噪聲的特征量提取出來。其次,預處理將時間均勻變化的聲音信號采樣成為入射角度均勻變化的聲音信號。接著,根據本文提出基于循環卷積的循環自卷積(circular auto-convolution,CAC)算法,計算出風噪聲信號的對稱軸。最后,通過對稱軸的時間戳,確定手機在該時刻的方向角,計算出風向。

圖4 Wind Compass 的工作流程Fig 4 Workflow of Wind Compass
風噪聲信號的對稱軸對應于風向,因此,測量風向的核心是定位出風噪聲信號的對稱軸。由于噪聲信號波形的多樣性和其它噪聲的干擾,通過個別點確定對稱軸位置的誤差會很大。因此,設計了CAC 算法。最基本的思想是,當兩個相似的信號完全重疊時,卷積的值最大。
卷積是通過兩個函數f 和g 生成第三個函數的一種數學算子,表征函數f 與經過翻轉和平移的g 的重疊部分的面積[7]。對于定義在離散域的函數,卷積定義為

自卷積即定義中的f 和g 為同一個函數,循環卷積指f和g 中有一個函數是周期性延拓的。
卷積的大小量化了平移過程中,原始信號和翻轉信號重疊部分面積的大小。重疊部分面積越大,卷積的值越大。循環卷積是為了確保平移過程中重疊的點數始終相同。自卷積是為了得到信號本身兩部分間的相似程度。一個給定信號的循環自卷積值的大小,只和信號本身的相似程度有關。如果信號是近似對稱的,無論對稱軸位于信號中哪個位置的,信號本身的波形如何,那么,一定是兩個信號的對稱軸重合時重疊部分的面積最大,卷積的值最大。
圖5 列舉了3 組原始信號序列和相對應的循環自卷積序列。選擇的3 組原始信號分別代表風噪聲三種典型的波形。三種情況中,原始信號的對稱軸都位于N=60°的位置。原始信號的波形沒有包含完整一周(0° ~360°)的信息,且對稱軸不是在序列的中間位置。但三種情況下,CAC算法都成功定位出對稱軸的位置,并用虛線表示在原始信號中。
在Matlab 上實現CAC 算法,并用實驗中的聲音數據分析算法的有效性。圖6 描述了其中一個樣本的結果。圖6(a)描述了時域內取絕對值后的聲音信號,圖6(b)是計算出來的卷積序列。圖6(a)中的橫軸,既是聲音信號的時間軸,也表示手機轉動的時間。手機勻速轉動下,風的入射角度和時間線性相關。數據中,當手機轉動到第8 s 時,麥克風正指向風源。圖6(b)的卷積序列中,最大值是序列中的第Xm個點,由粗實線標出。根據算法推出聲音信號的對稱軸在Xa位置,用虛線表示,并在聲音信號中用實線標出。觀察可知,標記的對稱軸和風源的位置重合。因此,算法有效地定位出了風源的方向角。

圖5 利用CAC 算法定位對稱軸的示意圖Fig 5 Illustration of symmetry axis locating by CAC algorithm

圖6 利用CAC 定位聲音序列對稱軸實例Fig 6 Example of symmetry axis of sound sequence locating by CAC
測試了60 組實驗數據,并統計了測量結果和誤差,如圖7 所示。60 組數據的平均誤差是3°,最大誤差是10°。

圖7 測量結果Fig 7 Results of measurement
本文提出了使用智能手機來測量風向的方法Wind Compass。Wind Compass 利用手機的麥克風和姿態感應器分別記錄風噪聲和方向數據。風噪聲是指氣流振動麥克風膜板產生的聲音信號。通過實驗,發現氣流在對稱入射角下產生的噪聲相似。入射角均勻變化下的風噪聲波形具有對稱特性,對稱軸的角度對應于風向。本文首次提出通過定位噪聲序列中對稱軸確定風向的方法。然后設計了基于卷積的CAC 算法定位序列的對稱軸。在Matlab 上完成算法仿真,并分析了實際的聲音數據。60 組數據的平均誤差是3°,最大誤差是10°。
[1] 李文洋.基于智能手機傳感器的行為識別算法研究[D].長春:吉林大學,2014.
[2] 程啟明,汪明媚.風力發電中風速測量技術的發展[J].自動化儀表,2010,31(7):11-13.
[3] Goingapps.iphone windmeter[EB/OL].[2013—10—12].http:∥www.goingapps.com/pages/default.aspx.
[4] Vavuud.phone accessory[EB/OL].[2013—10—16].http:∥vaavud.com/.
[5] Google.Android API[EB/OL].[2014—09—18].http:∥developer.android.com/reference/android/hardware/SensorEvent.html.
[6] Staple B W,Schladt G A,Holmes M E.Wind noise and vibration noise reducing microphone:U S,5,288,955[P].1994—02—22.
[7] 維基百科.卷積[EB/OL].[2014—06—15].http:∥zh.wikipedia.org/wiki/%E5%8D%B7%E7%A7%AF.