(轉(zhuǎn)載)基于TDOA聲源定位算法仿真–MATLAB仿真
轉(zhuǎn)載自:https://blog.xxcxw.cn/archives/28
聲源定位算法是利用麥克風(fēng)陣列進(jìn)行聲音定位,屬于寬帶信號榨为,傳統(tǒng)的MUSIC和DOA算法并不適用該場景牙勘,本仿真主要用TDOA算法進(jìn)行定位绰咽。
常用的陣列信號定位算法主要有三大類:基于高分辨率譜估計的定位技術(shù)、基于可控波束形成(Beamforming)的定位技術(shù)和基于TDOA的定位技術(shù),以上三種算法在陣列信號處理中轮傍,尤其是移動通信的陣列信號處理中都有廣泛的應(yīng)用轧粟。但是聲音信號與傳統(tǒng)的電磁波信號存在許多的不同策治,主要包括以下幾點:
帶寬不同:麥克風(fēng)陣列處理的多是寬帶信號,頻率范圍一般在 300Hz到 3KHz 之間兰吟;傳統(tǒng)的陣列信號處理的多是窄帶信號通惫。
信號的平穩(wěn)性:麥克風(fēng)陣列處理的多是非平穩(wěn)的語言信號,傳統(tǒng)陣列處理的對象多是平穩(wěn)信號混蔼。
干擾噪聲不同:傳統(tǒng)的陣列處理的信號中的噪聲一般為不相關(guān)的高斯噪聲履腋,麥克風(fēng)陣列處理的信號中既有相關(guān)的高斯噪聲,也有非高斯噪聲惭嚣。
由于聲音信號與電磁波信號存在上述幾點不同遵湖,尤其是信號帶寬問題和信號的平穩(wěn)性問題,因此傳統(tǒng)的基于高分辨率譜估計的定位技術(shù)晚吞、基于可控波束形成(Beamforming)的定位算法不太適用于聲源定位算法延旧,
基于TDOA的聲源定位算法具有運算量小、算法簡單易實現(xiàn)槽地、定位精度較高迁沫、硬件成本低的特點,使得該算法在實際中的應(yīng)用非常廣泛捌蚊,而且可以實現(xiàn)實時定位弯洗。基于 TDOA 的聲音定位算法實現(xiàn)原理簡單逢勾,一般分為延時估計和聲源定位兩個部分牡整,時延估計的精確度直接決定了聲源定位的精度,所以時延估計精度是該算法的核心部分溺拱。本章分別介紹基于 TDOA 的聲源定位算法中的時延估計的方法和基于得到的時延信息進(jìn)行聲源定位的方法逃贝,并對算法進(jìn)行仿真。
傳統(tǒng)的時延估計方法有很多迫摔,傳統(tǒng)的時延估計算法主要有基于相關(guān)分析的時延估計方法沐扳,基于相位譜估計的時延估計方法,基于參數(shù)估計的時延估計方法等句占,應(yīng)用最廣泛的方法主要為基于相關(guān)分析的時延估計方法中的廣義互相關(guān)函數(shù)法(GCC)和基于自適應(yīng)濾波器的延時估計方法中的最小均方自適應(yīng)濾波法(LMS)沪摄。
廣義互相關(guān)法
廣義互相關(guān)法的基本原理是在傳統(tǒng)的通過互相關(guān)來求時延的算法的基礎(chǔ)上,對接收到的信號進(jìn)行濾波處理,對信號和噪聲進(jìn)行白化處理杨拐,增強(qiáng)信號中信噪比較高的頻率成分祈餐,從而到達(dá)抑制噪聲功率的目的,使得相關(guān)函數(shù)取得尖銳的峰值哄陶,提高時延估計的精度帆阳,因此和上述的LMS算法相比,廣義互相關(guān)法可以取得更好的時延估計性能屋吨。 因為廣義互相關(guān)法的基礎(chǔ)仍然是互相關(guān)算法蜒谤,因此首先簡單介紹下互相關(guān)算法,互相關(guān)算法的基本原理公式如下式所示至扰,其中h(n)即對應(yīng)時延為t的沖激響應(yīng)鳍徽,且R(k)的幅度峰值應(yīng)該位于k=t的位置。 廣義互相關(guān)法為了解決上述問題敢课,對上述得互相關(guān)結(jié)果R(K)進(jìn)行了頻域得均衡處理旬盯,這樣就只保留了互相關(guān)得相位信息,即時延信息翎猛,去除了音頻信號本身得影響,再進(jìn)行反傅里葉變換得到R(k)即可得到一個峰值非常陡峭的沖擊信號接剩,其峰值位置正好對應(yīng)的就是時延差的位置切厘,。由于實際音頻信號的采樣率有限懊缺,為了進(jìn)一步提高時延估計得分辨率疫稿,還需要對廣義互相關(guān)的結(jié)果進(jìn)行進(jìn)一步的差值處理,得到更加精確的時延信息鹃两,因此處理流程如下所示遗座。
本仿真中主要采用了廣義互相關(guān)算法作為時延信息得提取算法。 利用廣義互相關(guān)算法得到時延信息之后俊扳,就需要根據(jù)麥克風(fēng)陣列的幾何信息估計聲源的方位途蒋,進(jìn)而估計出目標(biāo)的位置。在本文的場景聲源于目標(biāo)的關(guān)系可以近似當(dāng)作是遠(yuǎn)程聲源進(jìn)行處理馋记。主要考慮使用二維L型陣列進(jìn)行接收号坡,L型陣列的X軸和Y軸的陣元可以分別視為一個一維的線型陣列,然后可以分別估計聲源來向的水平角度和垂直角度梯醒。因此在接下來的內(nèi)容中將簡單介紹聲源方位估計得算法宽堆。分別估計得到水平陣列的角度θ1和垂直陣列的角度θ2之后,由于本文中的聲源目標(biāo)是豬茸习,因此目標(biāo)的高度維度坐標(biāo)肯定是0畜隶,得到目標(biāo)的二維角度之后即可推算出目標(biāo)的三維位置
注意點
聲源使用從網(wǎng)上下載了一段豬語音(wav文件)作為聲源生成麥克風(fēng)接收信號。
實現(xiàn)了單目標(biāo)聲源定位(包括方位和目標(biāo)位置,根據(jù)場景目標(biāo)應(yīng)該在地上)
該程序采用了TDOA聲源定位算法(可以參考《基于FPGA的聲源定位系統(tǒng)軟硬件設(shè)計》4節(jié)籽慢、《基于麥克風(fēng)陣列的聲源定位系統(tǒng)硬件設(shè)計與算法研究1》第4章)
文檔下載:鏈接:https://pan.baidu.com/s/1Hgk_y2FE-Ic04iEkIDAVBw
提取碼:h76w
程度下載:鏈接:https://pan.baidu.com/s/1AurO823CuifsXeH_Po-ItQ
提取碼:bcy9