基于麥克風(fēng)陣列聲源定位系統的FPGA實(shí)現
2.4 本幀互功率譜模塊
第一路信號FFT結果與第二路信號FFT結果的共軛相乘得到本幀互功率譜。
若第一路是r1+i1,第二路是r2+i2,其共軛為r2-i2,相乘時(shí)可用式(6),式(7)所示的計算方法,這樣可以減少一次乘法運算,節省內部資源

其中,R和I是本幀互功率譜的實(shí)部和虛部;r1和r2是FFT結果的實(shí)部;i1和i2是FFT結果的虛部。
2.5 頻域加權模塊
本幀互功率譜乘以存放在ROM中的加權函數,使互相關(guān)函數峰值更加突出。調用內部乘法器模塊即可完成。
2.6 功率譜平滑模塊
對加權模塊結果,進(jìn)行連續數幀的累加以平滑互功率譜,使峰值便于檢測。調用內部加法器模塊即可完成。
2.7 反FFT模塊
對平滑結果進(jìn)行反FFT運算,求得互相關(guān)函數。根據FFT原理,反FFT運算可借助于FFT模塊計算。即將FFT運算中旋轉因子取倒數,最后的輸出乘以1/N就可以用來(lái)計算反FFT。為防止運算過(guò)程中發(fā)生溢出,可將1/N分配到每一級蝶形運算中。由于1/N=(1/2)M,所以每級的每個(gè)蝶形輸出支路均有一相乘因子1/2,即右移一位即可。
2.8 峰值檢測模塊
對FFT結果求模即是求

2.9 定位算法模塊
根據角度距離定位法,聲源相對原點(diǎn)的水平角θazimuth為

其中,a是麥克之間的間距;d是聲源到麥克對的距離差。
聲源相對原點(diǎn)的仰角φelevation為

其中,a是麥克之間的間距;d是聲源到麥克對的距離差。
由上可知,需要計算反余弦函數值確定出相應的角度值。反余弦函數是超越函數,可以用泰勒級數近似計算這個(gè)函數,但較為麻煩且精度不高,而CORDIC算法是由移位和加減運算組成,所以比較適合FPGA的實(shí)現,速度較快且具有較高的迭代精度。本系統使用高速9級流水線(xiàn)結構實(shí)現CORDIC算法。迭代關(guān)系如下

式(10)是迭代的初始條件,式(11)是根據本次坐標值判定下次迭代方向,式(12)~式(14)是下次迭代公式。
算法經(jīng)過(guò)數次迭代后θ的值即是*****。實(shí)際中使用9級迭代,可以得到7位精度。最小角度精度為0.111 905。
3 模塊仿真和綜合報告
Quartus II是Altera公司開(kāi)發(fā)的綜合性PLD軟件,內嵌綜合器和仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。而且具有運行速度快、界面統一、功能集中、易學(xué)易用等特點(diǎn)。
本設計使用Quartus II8.0對各個(gè)模塊進(jìn)行仿真驗證。通過(guò)仿真,驗證了各個(gè)系統模塊可以準確的工作,并完成了整個(gè)設計功能。選取Alte-ra公司Cyclone II系列中的EP2C35F484C8器件對整個(gè)程序進(jìn)行時(shí)序仿真,其主要資源消耗為:總邏輯單元為3740/3 3216,總存儲單元為74 240/483 840,總管腳為387/475??偝朔ㄆ鳛?6/35。仿真結果表明,本文所述實(shí)現方法結構可行,可以獲得良好的性能,其最高速率可以達到87.3 MHz,完全滿(mǎn)足系統要求。
4 結束語(yǔ)
本設計通過(guò)FPGA來(lái)實(shí)現整個(gè)系統,充分利用了Altera公司FPGA產(chǎn)品高速大容量開(kāi)發(fā)靈活方便等優(yōu)點(diǎn),并使用QuartusⅡ開(kāi)發(fā)環(huán)境所提供的庫資源,同時(shí)最大限度地利用和發(fā)揮了FPGA的優(yōu)勢,從而簡(jiǎn)化了系統設計,縮短了設計周期。本文引用地址:http://dyxdggzs.com/article/191197.htm
評論