關(guān)鍵詞:聲源定位;麥克風(fēng)陣列;STM32;信號處理
中圖分類號:TN929.11 文獻標(biāo)識碼:A
0 引言
近年來,隨著多媒體和信號處理技術(shù)的快速發(fā)展,聲源定位算法也日益成熟[1]。聲源定位在軍事[2]、視頻電視會議、智能交通以及智能機器人等領(lǐng)域的應(yīng)用越來越廣泛。因此,在復(fù)雜環(huán)境中如何準(zhǔn)確定位聲源位置已成為人們研究的關(guān)鍵問題[3]。
傳統(tǒng)的聲音信號精確實時定位的主要方法是麥克風(fēng)陣列,又稱為陣列信號處理技術(shù)。它具有隱蔽性好、語音噪聲消除、抗干擾性強、聲源跟蹤和定位準(zhǔn)確等優(yōu)點[4],在多個領(lǐng)域中被廣泛應(yīng)用。麥克風(fēng)陣列根據(jù)定位原理可分為3 類:基于麥克風(fēng)接收信號的加權(quán)和相位定位[5]、基于麥克風(fēng)接收信號的幅值和頻率定位[6] 以及基于不同麥克風(fēng)接收信號的時間差定位[7]?;邴溈孙L(fēng)接收信號的加權(quán)和相位定位技術(shù)需要對采集的信號進行加權(quán)分析,計算耗費時間長,并且需要預(yù)分離處理聲音信號和噪聲?;邴溈孙L(fēng)接收信號的幅值和頻率定位方法可以精確定位,但數(shù)據(jù)處理的復(fù)雜度高?;诓煌溈孙L(fēng)接收信號的時間差定位技術(shù)具有計算復(fù)雜度較低、速度較快等特點,但國內(nèi)相關(guān)產(chǎn)品較少,且大多仍處于仿真階段。因此,研究以嵌入式STM32 微處理器為核心的聲源定位系統(tǒng)具有重要意義。
本文采用了最新的STM32 作為核心處理器,開發(fā)了一種基于到達時間差(time difference of arrival,TDOA)的聲源定位裝置。該裝置能夠?qū)崟r定位并顯示聲源的位置。定位系統(tǒng)由聲音采集模塊接收聲音信號,利用STM32 微處理器對采集的信號進行處理,最終實現(xiàn)聲源位置的定位和實時顯示功能。
1 TDOA工作原理
本文主要利用了基于不同麥克風(fēng)接收信號的TDOA 定位技術(shù)。這種技術(shù)分為兩個主要步驟:首先,估計聲音的TDOA,從中獲得傳聲器陣列中陣元之間的聲延遲;其次,利用獲取的聲音時間差,結(jié)合已知的傳聲器陣列的空間位置,進一步確定聲源的位置。這種方法的計算量通常較小,且有利于實時處理,因此在語音信號的聲源定位中具有重要作用。
2 硬件電路設(shè)計
本文以STM32 作為核心處理器,開發(fā)了一種基于不同麥克風(fēng)接收信號的時間差的實時聲源定位裝置。聲源定位裝置結(jié)構(gòu)框圖如圖2 所示。
本文的硬件系統(tǒng)包括電源、聲源、麥克風(fēng)、前置電路、輸入接口、微控制器和顯示。電源為整個電路系統(tǒng)提供所需的電能;麥克風(fēng)采集聲源信號,并經(jīng)過前置電路處理后傳送至微控制器;微控制器對接收到的信號進行數(shù)據(jù)處理和分析,以確定聲源的位置;微控制器將聲源的具體位置實時顯示在有機發(fā)光二極管(organic light-emitting diode,OLED)顯示屏上,實現(xiàn)聲源的定位功能。
2.1 電源電路
電源電路是開發(fā)板的生命線,為整個系統(tǒng)提供能量,這是其正常運行的基礎(chǔ)。本設(shè)計的電源電路如圖3 所示。聲源定位裝置采用USB 接口供電,電源的引腳將與5 V 電壓連接,點亮電源指示燈。5 V電壓通過低壓差線性穩(wěn)壓芯片(LD39050PU33R)轉(zhuǎn)換為3.3 V 的電壓,向STM32 芯片及外圍電路供電。LD39050PU33R 是低壓差線性穩(wěn)壓器(lowdropout regulator,LDO)的芯片,固定輸出3.3 V 電源,最大輸出電流為500 mA。在穩(wěn)壓芯片的輸入端和輸出端接有4 個電容進行濾波,分別濾除高頻和低頻信號的干擾,確保輸出電壓的穩(wěn)定。
2.2 麥克風(fēng)陣列設(shè)計
麥克風(fēng)可以將聲音信號轉(zhuǎn)換成電信號,然后以電壓的形式輸出,其性能直接影響輸出信號的質(zhì)量。本文選取駐極式小話筒,它具有體積小、靈敏度高、成本低、噪聲低等特點,頻率響應(yīng)范圍為20 ~16 000 Hz,能夠滿足設(shè)計精度和穩(wěn)定性的要求。
2.3 前置電路模塊
由于麥克風(fēng)采集的輸出信號的電壓是毫伏級的,并且相鄰兩個采樣點之間的信號變動較小,因此必須使用放大電路對麥克風(fēng)的輸出信號進行放大,使放大后的信號處在模擬數(shù)字轉(zhuǎn)換器(analogto digital converter,ADC)的信號采集范圍內(nèi)。
本文選用了LM386 放大電路,它是一種功率放大器集成電路,專門用于低功耗電源。LM386 內(nèi)置的增益為20 dB,但通過適當(dāng)選擇pin1 和pin8 腳位之間的電容,可以將增益提高至最高200 dB。該芯片將電池作為供電源,電壓范圍為4 ~ 12 V。在沒有輸入信號時,它的靜態(tài)電流僅為4 A,而且失真較低。
2.4 信號采集模塊
信號采集模塊中的信號采集電路是通過引腳PA0、PA1、PA2 接入芯片內(nèi)部的三路ADC 中來采集放大后的聲音信號。
2.5 最小系統(tǒng)
本文中的STM32F411RET6 處理器最小系統(tǒng)包括電源電路、晶振電路、復(fù)位電路以及配置模式電路。電源電路確保供電電壓為3.3 V,5 V 電壓通過低壓差線性穩(wěn)壓芯片(LD39050PU33R)轉(zhuǎn)換為3.3 V 的電壓。晶振電路采用8 MHz 外部晶振提供穩(wěn)定的時鐘信號。復(fù)位電路采用低電平、上電復(fù)位的設(shè)計。配置模式電路可以選擇STM32 的啟動方式。
2.6 顯示模塊
顯示電路采用OLED 模塊, 模塊內(nèi)部集成了顯示驅(qū)動芯片SD1306, 顯示尺寸為0.96 in(1 in ≈ 2.54 cm),顯示分辨率為128×64。為了提高顯示屏的刷新率,采用了串行外圍設(shè)備接口(serial peripheral interface,SPI) 與STM32芯片連接的方式。對應(yīng)的引腳為PA4、PA5、PA6、PA7,引腳PB7 作為復(fù)位信號,引腳PC7 作為命令/數(shù)據(jù)選擇信號。
3 軟件算法設(shè)計
本文以STM32F411RET6 處理器為核心,設(shè)計了麥克風(fēng)陣列聲源定位裝置的軟件。軟件設(shè)計結(jié)構(gòu)框圖如圖4 所示,其中,DMA 為直接存儲器訪問,F(xiàn)FT 為快速傅里葉轉(zhuǎn)換。軟件開發(fā)過程中,使用了意法半導(dǎo)體公司(ST)的STM32CubeMx 和安謀國際科技股份有限公司(ARM)的MDK-ARM 工具。STM32CubeMx 提供了圖形化的芯片配置工具,簡化了目標(biāo)選擇、引腳分配、外設(shè)配置和時鐘配置等步驟,并自動生成了初始化代碼和應(yīng)用程序的工程框架。而MDK-ARM 集成了Keil uVision5,提供了完善的調(diào)試和編譯功能。軟件實現(xiàn)主要包括兩個部分:一是STM32CubeMX 的配置,涉及芯片及外設(shè)的基本設(shè)置;二是MDK-ARM 程序編寫,包括具體的應(yīng)用程序代碼編寫,以實現(xiàn)系統(tǒng)的功能和特性。
3.1 STM32CubeMX 配置
STM32CubeMX 工具大大降低了編程難度。STM32CubeMX 軟件的設(shè)置流程如下:首先,選擇STM32F411RET6 作為主控芯片,并設(shè)置外部高速時鐘源為8 MHz。其次,啟用ST-Link 調(diào)試口,并配置PA13 和PA14 引腳。再次,啟用ADC 功能,以便采集聲音信號,并將相應(yīng)的引腳設(shè)置為PA0、PA1、PA2。最后,開啟SPI1 端口,并配置硬件NSS 端口,以便連接并驅(qū)動OLED 顯示屏,相關(guān)端口設(shè)置為PA4、PA5、PA6 和PA7。
3.2 MDK-ARM 程序編寫
MDK-ARM 提供了源代碼編輯、編譯、下載調(diào)試和仿真等多種功能支持。需編寫的程序主要包括ADC 采集、OLED 顯示、TDOA 算法實現(xiàn)以及Chan 算法實現(xiàn)等模塊,這些模塊的設(shè)計使得系統(tǒng)具備了聲源定位的基本功能。MDK-ARM 的強大功能為開發(fā)者提供了便利,使得軟件開發(fā)工作更加高效和便捷。
4 測試分析
將單片機電源斷開,使用杜邦線將3 個麥克風(fēng)傳感器連接在STM32 單片機的引腳上,3 個麥克風(fēng)的距離固定不變。聲源部分利用細(xì)繩將音響按照規(guī)定路線以一定速度向前移動,開啟單片機電源即可運行麥克風(fēng)傳感器,從而記錄聲源到達不同麥克風(fēng)的時間,計算出時間差。通過STM32 單片機計算角度和距離,最后在顯示屏上顯示出聲源位置。測試結(jié)果如表1 所示,結(jié)果表明該裝置實現(xiàn)了聲源的準(zhǔn)確定位。
5 結(jié)論
本文介紹了一種基于TDOA 的聲源定位裝置的設(shè)計與實現(xiàn)過程。結(jié)果表明,該定位裝置通過傳感器位置和聲音時間差,成功估計聲源的橫坐標(biāo)和縱坐標(biāo)。這一方法在聲源定位領(lǐng)域具有廣泛的應(yīng)用前景,可以提高定位精度。