基于麥克風陣列聲源定位系統的FPGA實現
摘要:論述了基于麥克風陣列的聲源定位技術的基本原理,給出了利用FPGA實現系統各模塊的設計方法。重點介紹了其原理和模塊的電路實現,給出的基于FPGA設計實驗結果表明,系統最大限度發揮了FPGA的優勢、簡化了系統設計、縮短了設計周期、符合設計要求。
關鍵詞:聲源定位;時延估計;FFT;CORDIC
聲源定位,即確定一個或多個聲源在空間中的位置,是一個有廣泛應用背景的研究課題。基于麥克風陣列的聲源定位技術在視頻會議、聲音檢測及語音增強等領域有重要的應用價值。
聲源定位算法目前主要有3類:第一類算法是基于波束形成的方法。這種算法能夠用于多個聲源的定位,但是它存在著需要聲源和背景噪聲先驗知識以及對初始值比較敏感等缺點;第二類算法是基于高分辨率譜估計的方法。這種算法理論上能夠對聲源方向進行有效估計,但是計算量較大,且不適于處理人聲等寬帶信號;第三類算法是基于到達時間差的方法。由于這種方法原理簡單,計算量較小,且易于實現,在聲源定位系統中得到了廣泛應用。根據以上介紹,本文決定選擇第三類即基于到達時間差的定位方法。
基于到達時間差聲源定位算法包括2個步驟:
1)先進行時延估計,從中獲得傳聲器陣列中相應陣元對之間的聲音到達時延。常用的方法有最小均方自適應濾波法、互功率譜相位法和廣義互相關函數法。
2)利用時延估計進行方位估計,主要方法有角度距離定位法、球形插值法、線性插值法和目標函數空間搜索定位法。與其他幾種方法相比,基于廣義互相關函數的方法計算量小、計算效率高。優點明顯,故時延估計采用此方法。方位估計則采用精度適中、易于實現的角度距離定位法。
FPGA具有高速處理能力,而且開發靈活,易于在線系統升級,能較大縮短系統的開發周期。為此,采用Ahera公司的FPGA處理器件實現本系統。
1 系統的基本原理及流程圖
算法的結構流程如圖1所示,首先由麥克1和2獲得說話人的語音信號,再經過A/D采樣和低通濾波器,最后得到待處理輸入語音信號,可以分別記為x1(n)和x2(n)。
對求傅里葉反變換,即可以得到麥克1和2間的廣義互相關函數為
其峰值就是麥克1和2之間的時延。得到多對麥克間的時延后,由角度距離定位法,就可得到聲源位置。
評論