一種基于聲信號的車輛碰撞檢測裝置設計
對于聲音采集模塊采集到的聲音數據,由DSP模塊運行檢測軟件對其進行分析,并判斷外部是否發生了碰撞。DSP模塊還引出一個IO口與報警和通訊模塊相通訊,報警和通訊模塊接收此引腳的信號來判斷是否發生碰撞以決定是否報警。
1.3 存儲器模塊
VC5509支持統一的編址空間,片上內存的總容量為320kB,包括128k×16bit的RAM和32k×16bit的ROM,并可以根據用戶的需要擴展到最大為8M×16bit的片外內存空間。本系統選用的是HY57V64芯片,是一個有4個1M×16bit邏輯陣列的SDRAM芯片。該芯片接收并存儲DSP模塊傳輸過來的聲信號數據,當DSP模塊需要處理數據時也會從該芯片的特定位置讀出相應的數據。
1.4 報警模塊
報警模塊配有GPS和GSM模塊,獲取位置和速度信息并與服務器進行通訊。DSP模塊從報警模塊的GPS模塊獲得車輛的速度和加速度信息并加入聲信號信息進行輔助計算。報警模塊從DSP模塊獲得實時的車輛碰撞信息,一旦檢測到碰撞信號,報警模塊即向服務器報警。
2 軟件和算法設計
我們設計的系統軟件是一個運行于DSP之上的程序,控制系統各模塊工作,并完成算法計算。使用TI公司的CCS集成開發環境,用C語言和匯編語言進行編程。
該軟件首先進行初始化,對VC5509和AIC23的運行參數進行配置。對VC5509芯片的鎖相環配置時,將系統時鐘設置為144kHz。對McBSP進行配置時,打開VC5509的McBSP0并啟動其進行輸入輸出操作。配置DMA0通道,使其工作于兼容模式并在中斷時停止數據的傳輸。配置AIC23的工作模式為DSP模式并使用IIC方式傳輸數據。啟動AIC23對聲信號進行32k采樣速率的采樣。
初始化結束后進行采樣檢測,經過采樣檢測,一旦發現采集到的信號滿足分幀條件,即采集到的聲信號長度足夠1秒時,就執行自動聲檢測算法。
自動聲檢測算法讀出數據并進行判斷,如果檢測到的是非碰撞事件,則繼續執行采樣檢測以等待處理下一秒數據,這時軟件在執行空循環;當自動聲檢測算法檢測到的是碰撞事件,就向通訊模塊傳遞信息,在GPS模塊確認速度和位置信息之后就通過報警模塊報警。此軟件的流程如圖3所示。
軟件流程圖中自動聲檢測算法的設計是核心部分,下面做重點介紹。由于不同聲波信號的幅頻特性和相頻特性不同,不同聲波信號在各個頻率段的幅值也存在一定的差異。因此,可利用各個頻率成分的能量變化來實現目標識別。
自動聲檢測算法包括聲音信號采集和分幀、特征提取、特征降維、特征分類四部分,其具體實現步驟如下:
(1)采集和分幀。將采集到的信號按每2s分為一幀,幀與幀之間有1s的交疊。對32k采樣率的芯片來說,即每一次只對2s的片段65536個點進行處理,在訓練階段兩個片段之間有1/2重復。這樣得到一組數據Datai(1≤i≤65535)。
(2)特征提取。對每一幀信號數據Datai(1≤i≤65535)實施DWT變換以得到頻域信息,然后根據得到的頻域信息統計能量的分布,以此作為識別交通事故的特征。本算法采用DB1小波,對每一幀信號,先進行一層分解,然后高頻系數進行兩層完整的分解,低頻系數進行10層單向分解得到18組數據。計算得到特征分量F=[E1,E2…E18],En的計算公式如下:,其中N為Cn的長度。
(3)特征降維。對特征提取后的信號量實現降維。在提取出的特征分量F的基礎上,本算法采用基于主成分分析(PCA)的異常點檢測算法檢測交通事故碰撞聲。原特征F變換后得到公式為
,其中H為PCA方法得到的投影矩陣。
評論