基于并行相關(guān)的實時時差估計器設(shè)計與實現(xiàn)
摘 要: 從相關(guān)時差估計的基本原理出發(fā),提出了一種并行時域相關(guān)結(jié)構(gòu),基于這種并行結(jié)構(gòu)設(shè)計實現(xiàn)了一種簡單高效的時差估計器。與傳統(tǒng)頻域相關(guān)時差估計器相比,這種時差估計器的主要優(yōu)點是提高了運(yùn)算效率,運(yùn)算周期大為縮短,可以滿足實時高精度時差估計的需求,同時結(jié)構(gòu)簡單,硬件資源開銷小,易于設(shè)計實現(xiàn)。實際測試結(jié)果驗證了上述結(jié)論。
關(guān)鍵詞:無源定位;到達(dá)時間差(TDOA);互相關(guān);并行結(jié)構(gòu)
無源時差定位系統(tǒng)利用多個觀察站接收目標(biāo)輻射源的信號,通過估計各個觀察站接收信號之間的到達(dá)時間差,完成對目標(biāo)輻射源的定位,具有作用距離遠(yuǎn)、隱蔽性強(qiáng)、定位精度高等優(yōu)點。通常是通過對各個接收站的中頻信號進(jìn)行互相關(guān),比較接收信號之間的相似性來得到高精度的到達(dá)時間差估計結(jié)果[1-2]。
對于無源時差定位中所處理的雷達(dá)信號,一般可以檢測出脈沖的到達(dá)時間,也就大體知道了到達(dá)時間差[3],從而可通過控制相關(guān)序列的采樣時機(jī),只求解相關(guān)函數(shù)相關(guān)峰附近的相關(guān)值就可獲得時差信息。而相關(guān)函數(shù)的計算一般利用FFT/IFFT快速算法進(jìn)行頻域相關(guān),頻域相關(guān)會同時計算全部相關(guān)信息,在已知粗略時差范圍時效率并不高(對于長度為N的采樣序列,用頻域相關(guān)法估計時差需要進(jìn)行3個2N點FFT/IFFT運(yùn)算和2N次復(fù)數(shù)乘法),而且大點數(shù)FFT/IFFT的工程實現(xiàn)也非常困難,運(yùn)算時間與硬件資源開銷嚴(yán)重,不適于進(jìn)行實時時差估計[4- 5]。
本文利用時域相關(guān)可只求解部分相關(guān)值的優(yōu)勢,設(shè)計實現(xiàn)了一種并行相關(guān)結(jié)構(gòu)的時差估計器,大大縮減了運(yùn)算時間,可以滿足實時時差估計的需求,同時簡化了硬件結(jié)構(gòu)、降低了硬件開銷與實現(xiàn)難度。
1 基本原理[6-8]
假設(shè)輻射源輻射的信號為實信號s(t),被兩個接收機(jī)接收的信號分別為x(t)和y(t),具有不同的噪聲和時間延遲,兩信號可表示為:
由于信號與噪聲互不相關(guān),Rsn1=Rsn2=0,因此可得到:
若需±m(xù)(0mN)范圍內(nèi)的相關(guān)值,可以用2m+1個乘累加器并行計算來減小運(yùn)算時間。不失一般性,以一個N=4,m=2的相關(guān)運(yùn)算為例,將每個乘累加器所需進(jìn)行的乘運(yùn)算列于表1(clk表示乘周期)。
在工程實際中,中頻采樣后的數(shù)據(jù)一般存儲于雙口RAM或FIFO中,每個時鐘沿最多可提供兩個不同地址的數(shù)據(jù)。然而,由式(7)與表1看出,每個乘累加器每個周期所需的輸入數(shù)據(jù)都不一致,要為這些累加器同時提供不同的輸入數(shù)據(jù)幾乎是不可能的,尤其是在時鐘速率與采樣位數(shù)都較高的情況下。
對乘累加器每個周期所進(jìn)行的乘運(yùn)算進(jìn)行調(diào)整,如表2所示。從中可以發(fā)現(xiàn):相關(guān)結(jié)果未發(fā)生變化;每個乘周期所有乘累加器的輸入都相同;第i個乘累加器當(dāng)前周期的x輸入為第i-1個乘累加器上一乘周期的x輸入。由此,可設(shè)計一種并行流水結(jié)構(gòu)來避免多個乘累加器同時工作時對數(shù)據(jù)吞吐率的要求。
如圖1所示,每個乘累加器的y輸入相同,x輸入則由上一個乘累加器的x輸入經(jīng)過一延遲寄存器得到,整個并行相關(guān)器每個周期只需讀入兩個新的輸入數(shù)據(jù),數(shù)據(jù)吞吐率得以大大降低。需注意的是,為了求得±m(xù)(0mN)范圍內(nèi)的相關(guān)值,需要對輸入序列進(jìn)行簡單的調(diào)整,即在y輸入序列之前和x輸入序列之后各補(bǔ)m個零。實際上,只要對x與y輸入序列做出補(bǔ)零或截取這樣的調(diào)整,此結(jié)構(gòu)可以求任意2m+1連續(xù)范圍內(nèi)的相關(guān)值。并且在數(shù)據(jù)輸入完畢后,所有乘累加器同時輸出各自的相關(guān)結(jié)果。
在實際進(jìn)行設(shè)計時,上述流水結(jié)構(gòu)依然面臨難題。在乘累加器較多、時鐘速率與采樣位數(shù)較高的情況下,需要添加復(fù)雜的時序約束,才能保證每個乘累加器的y輸入都接收到正確數(shù)據(jù),而這實現(xiàn)起來是非常困難的,有時是不可能的。為了解決這個問題,參照對x輸入流水化的方法,對y輸入也進(jìn)行流水化處理,改進(jìn)為圖2所示的并行流水結(jié)構(gòu)。此結(jié)構(gòu)在數(shù)據(jù)輸入完畢后,各個乘累加器將依次輸出相關(guān)結(jié)果,且在第一個乘累加器輸出結(jié)果后,做相應(yīng)的清零,就可以進(jìn)行新數(shù)據(jù)的相關(guān)運(yùn)算。
評論