(转载)基于TDOA声源定位算法仿真–MATLAB仿真
(轉(zhuǎn)載)基于TDOA聲源定位算法仿真–MATLAB仿真
 轉(zhuǎn)載自:https://blog.xxcxw.cn/archives/28
聲源定位算法是利用麥克風(fēng)陣列進(jìn)行聲音定位,屬于寬帶信號(hào),傳統(tǒng)的MUSIC和DOA算法并不適用該場(chǎng)景,本仿真主要用TDOA算法進(jìn)行定位。
常用的陣列信號(hào)定位算法主要有三大類:基于高分辨率譜估計(jì)的定位技術(shù)、基于可控波束形成(Beamforming)的定位技術(shù)和基于TDOA的定位技術(shù),以上三種算法在陣列信號(hào)處理中,尤其是移動(dòng)通信的陣列信號(hào)處理中都有廣泛的應(yīng)用。但是聲音信號(hào)與傳統(tǒng)的電磁波信號(hào)存在許多的不同,主要包括以下幾點(diǎn):
帶寬不同:麥克風(fēng)陣列處理的多是寬帶信號(hào),頻率范圍一般在 300Hz到 3KHz 之間;傳統(tǒng)的陣列信號(hào)處理的多是窄帶信號(hào)。
 信號(hào)的平穩(wěn)性:麥克風(fēng)陣列處理的多是非平穩(wěn)的語(yǔ)言信號(hào),傳統(tǒng)陣列處理的對(duì)象多是平穩(wěn)信號(hào)。
 干擾噪聲不同:傳統(tǒng)的陣列處理的信號(hào)中的噪聲一般為不相關(guān)的高斯噪聲,麥克風(fēng)陣列處理的信號(hào)中既有相關(guān)的高斯噪聲,也有非高斯噪聲。
 由于聲音信號(hào)與電磁波信號(hào)存在上述幾點(diǎn)不同,尤其是信號(hào)帶寬問(wèn)題和信號(hào)的平穩(wěn)性問(wèn)題,因此傳統(tǒng)的基于高分辨率譜估計(jì)的定位技術(shù)、基于可控波束形成(Beamforming)的定位算法不太適用于聲源定位算法,
基于TDOA的聲源定位算法具有運(yùn)算量小、算法簡(jiǎn)單易實(shí)現(xiàn)、定位精度較高、硬件成本低的特點(diǎn),使得該算法在實(shí)際中的應(yīng)用非常廣泛,而且可以實(shí)現(xiàn)實(shí)時(shí)定位。基于 TDOA 的聲音定位算法實(shí)現(xiàn)原理簡(jiǎn)單,一般分為延時(shí)估計(jì)和聲源定位兩個(gè)部分,時(shí)延估計(jì)的精確度直接決定了聲源定位的精度,所以時(shí)延估計(jì)精度是該算法的核心部分。本章分別介紹基于 TDOA 的聲源定位算法中的時(shí)延估計(jì)的方法和基于得到的時(shí)延信息進(jìn)行聲源定位的方法,并對(duì)算法進(jìn)行仿真。
 傳統(tǒng)的時(shí)延估計(jì)方法有很多,傳統(tǒng)的時(shí)延估計(jì)算法主要有基于相關(guān)分析的時(shí)延估計(jì)方法,基于相位譜估計(jì)的時(shí)延估計(jì)方法,基于參數(shù)估計(jì)的時(shí)延估計(jì)方法等,應(yīng)用最廣泛的方法主要為基于相關(guān)分析的時(shí)延估計(jì)方法中的廣義互相關(guān)函數(shù)法(GCC)和基于自適應(yīng)濾波器的延時(shí)估計(jì)方法中的最小均方自適應(yīng)濾波法(LMS)。
廣義互相關(guān)法
廣義互相關(guān)法的基本原理是在傳統(tǒng)的通過(guò)互相關(guān)來(lái)求時(shí)延的算法的基礎(chǔ)上,對(duì)接收到的信號(hào)進(jìn)行濾波處理,對(duì)信號(hào)和噪聲進(jìn)行白化處理,增強(qiáng)信號(hào)中信噪比較高的頻率成分,從而到達(dá)抑制噪聲功率的目的,使得相關(guān)函數(shù)取得尖銳的峰值,提高時(shí)延估計(jì)的精度,因此和上述的LMS算法相比,廣義互相關(guān)法可以取得更好的時(shí)延估計(jì)性能。 因?yàn)閺V義互相關(guān)法的基礎(chǔ)仍然是互相關(guān)算法,因此首先簡(jiǎn)單介紹下互相關(guān)算法,互相關(guān)算法的基本原理公式如下式所示,其中h(n)即對(duì)應(yīng)時(shí)延為t的沖激響應(yīng),且R(k)的幅度峰值應(yīng)該位于k=t的位置。 廣義互相關(guān)法為了解決上述問(wèn)題,對(duì)上述得互相關(guān)結(jié)果R(K)進(jìn)行了頻域得均衡處理,這樣就只保留了互相關(guān)得相位信息,即時(shí)延信息,去除了音頻信號(hào)本身得影響,再進(jìn)行反傅里葉變換得到R(k)即可得到一個(gè)峰值非常陡峭的沖擊信號(hào),其峰值位置正好對(duì)應(yīng)的就是時(shí)延差的位置,。由于實(shí)際音頻信號(hào)的采樣率有限,為了進(jìn)一步提高時(shí)延估計(jì)得分辨率,還需要對(duì)廣義互相關(guān)的結(jié)果進(jìn)行進(jìn)一步的差值處理,得到更加精確的時(shí)延信息,因此處理流程如下所示。
本仿真中主要采用了廣義互相關(guān)算法作為時(shí)延信息得提取算法。 利用廣義互相關(guān)算法得到時(shí)延信息之后,就需要根據(jù)麥克風(fēng)陣列的幾何信息估計(jì)聲源的方位,進(jìn)而估計(jì)出目標(biāo)的位置。在本文的場(chǎng)景聲源于目標(biāo)的關(guān)系可以近似當(dāng)作是遠(yuǎn)程聲源進(jìn)行處理。主要考慮使用二維L型陣列進(jìn)行接收,L型陣列的X軸和Y軸的陣元可以分別視為一個(gè)一維的線型陣列,然后可以分別估計(jì)聲源來(lái)向的水平角度和垂直角度。因此在接下來(lái)的內(nèi)容中將簡(jiǎn)單介紹聲源方位估計(jì)得算法。分別估計(jì)得到水平陣列的角度θ1和垂直陣列的角度θ2之后,由于本文中的聲源目標(biāo)是豬,因此目標(biāo)的高度維度坐標(biāo)肯定是0,得到目標(biāo)的二維角度之后即可推算出目標(biāo)的三維位置
 
 注意點(diǎn)
聲源使用從網(wǎng)上下載了一段豬語(yǔ)音(wav文件)作為聲源生成麥克風(fēng)接收信號(hào)。
 實(shí)現(xiàn)了單目標(biāo)聲源定位(包括方位和目標(biāo)位置,根據(jù)場(chǎng)景目標(biāo)應(yīng)該在地上)
 該程序采用了TDOA聲源定位算法(可以參考《基于FPGA的聲源定位系統(tǒng)軟硬件設(shè)計(jì)》4節(jié)、《基于麥克風(fēng)陣列的聲源定位系統(tǒng)硬件設(shè)計(jì)與算法研究1》第4章)
 文檔下載:鏈接:https://pan.baidu.com/s/1Hgk_y2FE-Ic04iEkIDAVBw
 提取碼:h76w
程度下載:鏈接:https://pan.baidu.com/s/1AurO823CuifsXeH_Po-ItQ
 提取碼:bcy9
解壓密碼可以私信我或者在下面評(píng)論。
總結(jié)
以上是生活随笔為你收集整理的(转载)基于TDOA声源定位算法仿真–MATLAB仿真的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: dhcp协议服务器怎么设置,DHCP服务
 - 下一篇: 社会感悟随笔