【正文】
關(guān)函數(shù)計(jì)算時(shí)延程序設(shè)計(jì) 34 本章小結(jié) 35第6章 聲源定位系統(tǒng)測(cè)試 36 硬件電路數(shù)據(jù)采集測(cè)試 36 對(duì)時(shí)延估計(jì)算法的測(cè)試 38 本章小結(jié) 39結(jié)論 40參考文獻(xiàn) 42致謝 錯(cuò)誤!未定義書(shū)簽。關(guān)鍵詞 麥克風(fēng)陣列;實(shí)驗(yàn)估計(jì);聲源定位;STM32F103RBT6AbstractIn recent years, source localization system based on microphone array is being widely used in the videoconference, teleconference, speech enhancement, hearing aids. So it has been received a growing interest and bee a very hot area. In various source location method, time difference of arrival (TDOA)based on the double step method is the most widely used, which has simple principle, low calculated amount, high precision, and can realize realtime in practice. The paper also focuses on this method.Firstly, the hardware design of the source localization system based on microphone array is been presented. Multichannel microphone signal can be sampled at a certain sampling frequency in the same time in this design. Secondly, based on the single chip SingleChip microputer of STM32F103RBT6, standard and advanced munication interfaces. These features make the STM32F103 line microcontroller family suitable for a wide range of applications. The critical section of the system software is the double step sound source location method based on time difference of arrival (TDOA).Finally, do a great amount of experiment test, the experiment all results show that the hardware performance of this is good, and the software localization algorithm has simple implementation, little putation and high accuracy, so it can be used in real time positioning system.Keywords Microphone array。系統(tǒng)軟件部分的核心算法采用了基于達(dá)到時(shí)延估計(jì)雙步定位。接下來(lái),以STM32F103RBT6為硬件平臺(tái),設(shè)計(jì)了一個(gè)可以在二維平面內(nèi)對(duì)聲源進(jìn)行實(shí)時(shí)定位的實(shí)驗(yàn)系統(tǒng)。 本文首先給出了麥克風(fēng)陣列聲源定位系統(tǒng)的硬件設(shè)計(jì)。摘要本科畢業(yè)設(shè)計(jì)(論文)基于STM32單片機(jī)聲源方向識(shí)別器設(shè)計(jì)與實(shí)現(xiàn)摘要近年來(lái),基于麥克風(fēng)陣列的聲源定位系統(tǒng)被廣泛地應(yīng)用于電話(huà)會(huì)議、視頻會(huì)議、語(yǔ)音增強(qiáng)、助聽(tīng)器等系統(tǒng)中,因此受到了越來(lái)越多的關(guān)注,已經(jīng)成為一大研究熱點(diǎn)。在各種聲源定位方法中,基于到達(dá)時(shí)延估計(jì)的雙步定位法原理簡(jiǎn)單,運(yùn)算量小,精度相對(duì)較高,有利于實(shí)時(shí)實(shí)現(xiàn),因此它的應(yīng)用也最為廣泛,本文著重研究了該方法。該硬件電路實(shí)現(xiàn)了在一定的采樣率下對(duì)多個(gè)麥克風(fēng)通道進(jìn)行同步采樣。STM32F103系列豐富的外設(shè)配置,使得STM32系列微型控制器適合于多種應(yīng)用場(chǎng)合。 最后,對(duì)系統(tǒng)進(jìn)行大量測(cè)試,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)硬件性能良好,軟件算法實(shí)現(xiàn)簡(jiǎn)單,運(yùn)算量小,精度較高,可適用于實(shí)時(shí)定位系統(tǒng)中。 sound source localization。附錄1 45附錄2 錯(cuò)誤!未定義書(shū)簽。附錄4 錯(cuò)誤!未定義書(shū)簽。對(duì)聲音信號(hào)的處理研究伴隨著聲學(xué)的研究發(fā)展而進(jìn)行。早在20世紀(jì)七八十年代,就已經(jīng)開(kāi)始將麥克風(fēng)陣列應(yīng)用于語(yǔ)音信號(hào)處理的研究中,進(jìn)入90年代以來(lái),基于麥克風(fēng)陣列的語(yǔ)音信號(hào)處理算法逐漸成為一個(gè)新的研究熱點(diǎn)。1987年Silverman將麥克風(fēng)陣列引入到語(yǔ)音識(shí)別系統(tǒng),1992年又將陣列信號(hào)處理用于移動(dòng)環(huán)境下的語(yǔ)音獲取,后來(lái)將其應(yīng)用于說(shuō)話(huà)人識(shí)別。1996年Silverman和BrandstEin開(kāi)始將其應(yīng)用于聲源定位中,用于確定和實(shí)時(shí)跟蹤說(shuō)話(huà)人的位置。系統(tǒng)通過(guò)傳聲器陣列接收聲源信息,然后進(jìn)行數(shù)字信號(hào)處理,得到聲源的位置信息。先前人們對(duì)智能機(jī)器人技術(shù)的發(fā)展主要是集中在移動(dòng)系統(tǒng)和視覺(jué)系統(tǒng)上,缺少人機(jī)之間的交流和溝通,因此在人類(lèi)與機(jī)器人之間建立一個(gè)有效的溝通方式是非常必要的[3]。機(jī)器人的聽(tīng)覺(jué)注意機(jī)制可以對(duì)外界的聲音首先發(fā)起響應(yīng),進(jìn)而引導(dǎo)機(jī)器人對(duì)聲音目標(biāo)進(jìn)行觀察,聽(tīng)覺(jué)系統(tǒng)還可以引起機(jī)器人的其他感官的注意,這種多信息融合技術(shù)已經(jīng)成為一個(gè)重要的研究方向[4,5]。當(dāng)一個(gè)機(jī)器人的使用者和智能機(jī)器人進(jìn)行語(yǔ)言的交流時(shí),機(jī)器人能很快發(fā)現(xiàn)這個(gè)使用者或是找到這個(gè)聲源的位置。在人機(jī)交互設(shè)備中,聽(tīng)覺(jué)系統(tǒng)水平的高低已經(jīng)成為智能化水平的重要標(biāo)志之一。聲源定位技術(shù)還為發(fā)現(xiàn)和跟蹤隱身飛機(jī)提供了一種簡(jiǎn)單的方法,相比于紅外和雷達(dá)設(shè)備,可降低設(shè)備的造價(jià)[8]。(3)視頻、電話(huà)會(huì)議系統(tǒng) 目前大多數(shù)的視頻、電話(huà)會(huì)議系統(tǒng)均使用了麥克風(fēng)陣列技術(shù),使用麥克風(fēng)陣列技術(shù)不僅可以判定出當(dāng)前發(fā)言人的位置,而且可以自動(dòng)的將麥克風(fēng)陣列的波束方向?qū)?zhǔn)發(fā)言人的位置,屏蔽其他方位的噪聲,提高了視頻、電話(huà)會(huì)議系統(tǒng)的效果。而采用麥克風(fēng)陣列的技術(shù),通過(guò)對(duì)發(fā)言人進(jìn)行聲源定位,可以將陣列的波束方向?qū)?zhǔn)發(fā)言人的位置,并隨著發(fā)言人的移動(dòng)調(diào)整波束方向,非常方便。(6)工業(yè)降噪 應(yīng)用聲源定位技術(shù),我們還可以對(duì)機(jī)械設(shè)備的不同區(qū)域進(jìn)行降噪處理。圖12 聲波陣列望遠(yuǎn)鏡圖13 汽車(chē)不同部位的噪聲能量分析(7)智能手機(jī)去噪 目前已有智能手機(jī)已經(jīng)采用麥克風(fēng)陣列技術(shù)進(jìn)行去噪,一般選用多個(gè)麥克風(fēng)分別對(duì)準(zhǔn)不同的方向,通過(guò)陣列信號(hào)處理的技術(shù),去除環(huán)境噪聲,僅放大說(shuō)話(huà)人的聲音。在電視電話(huà)會(huì)議上,聲源定位系統(tǒng)可以將攝像頭對(duì)準(zhǔn)正在發(fā)言的人,使遠(yuǎn)方的與會(huì)人員也可以看見(jiàn)視頻另一端的說(shuō)話(huà)人,這樣會(huì)使虛擬會(huì)議的真實(shí)感增強(qiáng)[9]。隨著聲源定位技術(shù)的發(fā)展,其應(yīng)用領(lǐng)域?qū)⒃絹?lái)越廣,更加接近人們的日常生活。但是其設(shè)備本身不具備對(duì)視頻內(nèi)容的分析判斷能力,需要人工完成。如果能夠開(kāi)發(fā)一種更加智能化的監(jiān)控系統(tǒng),彌補(bǔ)現(xiàn)有系統(tǒng)的不足,有著很大的實(shí)用價(jià)值。通過(guò)視覺(jué)、聽(tīng)覺(jué)、嗅覺(jué)等等,綜合判斷必定比單純的一種信息得到的結(jié)論更準(zhǔn)確。即監(jiān)控過(guò)程分兩步進(jìn)行,聲源定位系統(tǒng)不斷檢測(cè)環(huán)境中的聲音信號(hào),若檢測(cè)到有異常聲音時(shí),立即定位該聲源,然后控制攝像機(jī)對(duì)聲源所在區(qū)域進(jìn)行視頻采集,同時(shí)發(fā)出警報(bào)提醒監(jiān)控人員。在軍事領(lǐng)域,聲源定位技術(shù)也起著極其重要的作用。定位系統(tǒng)通過(guò)接收這兩種聲波,確定狙擊手的位置。美國(guó) BBN 公司開(kāi)發(fā)的“槍彈定位器”聲測(cè)系統(tǒng)。另外,試設(shè)想一下多媒體教室,若在傳統(tǒng)的麥克風(fēng)中置入聲源定位系統(tǒng),使得該麥克風(fēng)不僅可以接收、擴(kuò)大聲音,而且可以對(duì)說(shuō)話(huà)人的方位進(jìn)行實(shí)時(shí)檢測(cè)和跟蹤,即麥克風(fēng)始終對(duì)準(zhǔn)講話(huà)人的方向。聲音給人們帶來(lái)了方便,豐富了人們的生活。事實(shí)證明,聲源定位系統(tǒng)是一個(gè)很有意義的研究課題,隨著聲源定位技術(shù)的發(fā)展,其應(yīng)用領(lǐng)域?qū)⒃絹?lái)越廣,越來(lái)越貼近人們的日常生活[11]。其基本原理就是根據(jù)收到的音頻信號(hào),確定聲源的位置。該方法是在 1996 年,由 Silverman 和 Brandstein 兩人首先將其應(yīng)用于說(shuō)話(huà)人位置識(shí)別的定位系統(tǒng)中的。國(guó)外對(duì)聲源定位技術(shù)的研究起步較早,目前的研究成果比也較多。除軍事領(lǐng)域外,其他領(lǐng)域的聲源定位技術(shù)的研究成果也很多,如日本HONDA研究院研制的實(shí)時(shí)跟蹤多聲源的系統(tǒng)。這兩個(gè)陣列分別采用基于加權(quán)延時(shí)-累加波束成形法和自適應(yīng)波束成形器法來(lái)定位多聲源位置。近年來(lái),國(guó)內(nèi)的許多大學(xué)和研究所也對(duì)聲源定位技術(shù)進(jìn)行了研究。該方法解決了“左右舷模糊”問(wèn)題,提高了處理增益,及對(duì)實(shí)際水聲信號(hào)的適用性[14]。安徽理工大學(xué)電氣與信息工程學(xué)院,設(shè)計(jì)了一種智能視頻監(jiān)控系統(tǒng)。另外,如何實(shí)現(xiàn)低成本的小型聲源定位系統(tǒng)已成為目前研究的一個(gè)熱點(diǎn)。文獻(xiàn)[17]設(shè)計(jì)了一套基于單片機(jī)的聲音導(dǎo)引系統(tǒng),該系統(tǒng)通過(guò)檢測(cè)聲音信號(hào)到達(dá)任意兩個(gè)探測(cè)器的時(shí)間差實(shí)現(xiàn)移動(dòng)聲源方位的估計(jì),從而控制小車(chē)的運(yùn)動(dòng)方向,并引導(dǎo)小車(chē)到達(dá)指定位置。文獻(xiàn)[19]設(shè)計(jì)了一套以 STM32 芯片為硬件的移動(dòng)聲源實(shí)時(shí)定位系統(tǒng)。其中,包括麥克風(fēng)陣列、音頻放大電路的設(shè)計(jì)、A/D轉(zhuǎn)換的電路設(shè)計(jì)及其相關(guān)程序的設(shè)計(jì),聲源定位算法的程序設(shè)計(jì)。在最后對(duì)整個(gè)系統(tǒng)進(jìn)行軟硬聯(lián)調(diào),對(duì)系統(tǒng)進(jìn)行大量聲源定位實(shí)驗(yàn),測(cè)試系統(tǒng)的精確程度以保證系統(tǒng)能夠應(yīng)用于實(shí)際環(huán)境中。第2章主要介紹整個(gè)聲源定位系統(tǒng)硬件基礎(chǔ)知識(shí)。其次介紹了現(xiàn)有的3 類(lèi)基本聲源定位技術(shù)。第3章主要對(duì)聲源定位算進(jìn)行了介紹,包括當(dāng)下集中主要的聲源定位算法,時(shí)延估計(jì)算法中的基本互相關(guān)函數(shù),對(duì)時(shí)延估計(jì)算法誤差的分析和改進(jìn)。第5章主要介紹如何設(shè)計(jì)相關(guān)程序以實(shí)現(xiàn)STM32單片機(jī)的采樣和A/D轉(zhuǎn)換,聲源定位算法的程序設(shè)計(jì)。分析系統(tǒng)誤差并且提出改進(jìn)的方法。第2章 聲源定位系統(tǒng)的技術(shù)基礎(chǔ)第2章 聲源定位系統(tǒng)的技術(shù)基礎(chǔ) 麥克風(fēng)陣列聲源定位系統(tǒng)整體結(jié)構(gòu)麥克風(fēng)陣列聲源定位系統(tǒng)主要包括四大部分:麥克風(fēng)陣列部分、音頻放大部分、采樣和A/D轉(zhuǎn)換部分以及聲源定位算法處理部分。如圖 21 聲源定位系統(tǒng)框圖(1)麥克風(fēng)陣列 麥克風(fēng)陣列的設(shè)計(jì)涉及到麥克風(fēng)種類(lèi)的選擇、麥克風(fēng)陣列結(jié)構(gòu)的選擇、陣元間距和陣元數(shù)目這些因素。本系統(tǒng)采用兩個(gè)麥克風(fēng)以一定的間距并列放置,用于配合接下來(lái)的基于時(shí)延估計(jì)聲源定位的計(jì)算方法。由于所選擇的麥克風(fēng)頻率范圍為20~16KHz,為保證放大電路在麥克風(fēng)的頻率范圍內(nèi)都能正常工作,所選擇的運(yùn)算放大器應(yīng)有足夠?qū)挼膸?。本系統(tǒng)的運(yùn)算放大器選用的是德州儀器TL084C,該放大器滿(mǎn)足了系統(tǒng)所要求的增益和帶寬要求,同時(shí)具有較寬的電源電壓工作范圍,保證了放大電路有著很寬的線性工作區(qū)。將麥克風(fēng)接到放大器的輸入端,經(jīng)放大后與單片機(jī)相連,作為模擬信號(hào)的輸入端。該模塊的作用就是對(duì)模擬信號(hào)進(jìn)行等間隔采樣,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),為接下來(lái)的定位計(jì)算提供可用數(shù)據(jù)。 STM32單片機(jī)簡(jiǎn)介STM32F103系列微處理器是首款基于ARMv7 M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)RISC (精簡(jiǎn)指令集)處理器, 提供很高的代碼效率, 在通常8位和16位系統(tǒng)的存儲(chǔ)空間上發(fā)揮了ARM 內(nèi)核的高性能。作為最新一代的嵌入式ARM 處理器, 它為實(shí)現(xiàn)MCU 的需要提供了低成本的平臺(tái)、縮減的引腳數(shù)目、降低的系統(tǒng)功耗,同時(shí)提供了卓越的計(jì)算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)。每個(gè)端口都可以由軟件配置成輸出(推挽或開(kāi)漏)、輸入(帶或不帶上拉或下拉) 或其它的外設(shè)功能口。具有雙采樣和保持功能。(3)靈活的7路通用DMA 可以管理存儲(chǔ)器到存儲(chǔ)器、設(shè)備到存儲(chǔ)器和存儲(chǔ)器到設(shè)備的數(shù)據(jù)傳輸,無(wú)須CPU任何干預(yù)。DMA控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_(dá)緩沖區(qū)結(jié)尾時(shí)所產(chǎn)生的中斷。(4)內(nèi)部包含多達(dá)7個(gè)定時(shí)器。STM32 的通用定時(shí)器是一個(gè)通過(guò)可編程預(yù)分頻器(PSC)驅(qū)動(dòng)的 16 位自動(dòng)裝載計(jì)數(shù)器(CNT)構(gòu)成。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。如圖22為定時(shí)器的框圖,其功能包括: (1)16位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器(TIMx_CNT)。 (3)4個(gè)獨(dú)立通道(TIMx_CH1~4),這些通道可以用來(lái)作為: (邊緣或中間對(duì)齊模式) (TIMx_ETR)控制定時(shí)器和定時(shí)器互連(可以用 一個(gè)定時(shí)器控制另外一個(gè)定時(shí)器)的同步電路。在模擬信號(hào)需要以數(shù)字形式處理、存儲(chǔ)或傳輸時(shí),ADC必不可少。它有多達(dá)18個(gè)通道,可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中,其框圖如圖23所示。當(dāng)?shù)谝淮卧O(shè)置A/DON位時(shí),它將ADC從斷電狀態(tài)下喚醒。通過(guò)清除A/DON位可以停止轉(zhuǎn)換,并將ADC置于斷電模式。ADC的時(shí)鐘控制器ADCCLK時(shí)鐘和PCLK2(APB2時(shí)鐘)同步,ADC的輸入時(shí)鐘不得超過(guò)14MHz。STM32同樣具有雙ADC模式和單ADC模式,只有一個(gè)ADC工作時(shí),具有單次轉(zhuǎn)換和連續(xù)轉(zhuǎn)換以及掃描模式三種模式;雙ADC模式具有同步規(guī)則模式等多種模式。表22 ADC外部觸發(fā)TIM1_CC3事件來(lái)自片上定時(shí)器的內(nèi)部信號(hào)010TIM2_CC2事件011TIM3_TRGO事件100TIM4_CC4事件101信號(hào)經(jīng)過(guò)音頻放大器進(jìn)行放大,被ADC采集、轉(zhuǎn)換,然而ADC轉(zhuǎn)換得到的數(shù)據(jù)如何轉(zhuǎn)移到內(nèi)存從而進(jìn)行下一步的時(shí)延計(jì)算呢?這里我們使用DMA用來(lái)“搬運(yùn)”這些數(shù)據(jù)。當(dāng)CPU初始化這個(gè)傳輸動(dòng)作,傳輸