一種基于FPGA的復(fù)數(shù)浮點(diǎn)協(xié)方差矩陣實(shí)現(xiàn)
O 引言
協(xié)方差矩陣的計(jì)算是信號(hào)處理領(lǐng)域的典型運(yùn)算,是實(shí)現(xiàn)多級(jí)嵌套維納濾波器、空間譜估計(jì)、相干源個(gè)數(shù)估計(jì)以及仿射不變量模式識(shí)別的關(guān)鍵部分,廣泛應(yīng)用于雷達(dá)、聲吶、數(shù)字圖像處理等領(lǐng)域。采用FPGA(Field Programmable Gate Array)可以提高該類數(shù)字信號(hào)處理運(yùn)算的實(shí)時(shí)性,是算法工程化的重要環(huán)節(jié)。但是FPGA不適宜對(duì)浮點(diǎn)數(shù)的處理,對(duì)復(fù)雜的不規(guī)則計(jì)算開發(fā)起來也比較困難。故目前國內(nèi)外協(xié)方差運(yùn)算的FPGA實(shí)現(xiàn)都是采用定點(diǎn)運(yùn)算方式。
在所有運(yùn)算都是定點(diǎn)運(yùn)算的情況下,每次乘法之后數(shù)據(jù)位寬都要擴(kuò)大一倍。若相乘后的數(shù)據(jù)繼續(xù)做加減運(yùn)算,為了保證數(shù)據(jù)不溢出,還必須將數(shù)據(jù)位寬擴(kuò)展一位,而協(xié)方差矩陣的運(yùn)算核心就是乘累加單元,隨著采樣點(diǎn)數(shù)的增加,位寬擴(kuò)展呈線性增加。最終導(dǎo)致FPGA器件資源枯竭,無法實(shí)現(xiàn)設(shè)計(jì)。為了保證算法的實(shí)現(xiàn),必須對(duì)中間運(yùn)算數(shù)據(jù)進(jìn)行截?cái)?,將每次累加的結(jié)果除2(可以通過移位運(yùn)算來實(shí)現(xiàn)),以避免溢出。
此外,在應(yīng)用MUSIC算法時(shí),各種計(jì)算都是復(fù)數(shù)運(yùn)算。為達(dá)到減少算法的計(jì)算量,提高M(jìn)USIC算法處理速度的目的,許多文獻(xiàn)致力于研究陣列的結(jié)構(gòu)特點(diǎn),在保證測角精度的前提下,尋找一種簡單而有效的數(shù)據(jù)預(yù)處理方法,將復(fù)數(shù)矩陣轉(zhuǎn)化為實(shí)數(shù)矩陣,把復(fù)矢量用一個(gè)實(shí)矢量來代替,從而將復(fù)數(shù)運(yùn)算轉(zhuǎn)化為實(shí)數(shù)運(yùn)算。
接收陣元模型可分為任意離散陣、均勻圓弧陣、均勻圓陣和均勻線陣。在實(shí)際應(yīng)用中,比較常見的是均勻線陣和均勻圓陣。每種陣列模型都有各自的特點(diǎn),加之陣元數(shù)目的取值不同,也會(huì)導(dǎo)致陣列流型的對(duì)稱性變化。針對(duì)不同的陣元模型和陣元數(shù),數(shù)據(jù)預(yù)處理的方法也會(huì)有所不同。
對(duì)于數(shù)據(jù)預(yù)處理的研究,目前已經(jīng)有了一些比較成熟的算法。對(duì)于一個(gè)偶數(shù)陣元的對(duì)稱陣列(包括均勻線陣和均勻圓陣),相關(guān)研究表明,可利用其對(duì)稱性,分成兩個(gè)完全對(duì)稱的子陣,選擇合適的參考點(diǎn),構(gòu)造互為共軛對(duì)稱的方向矩陣,進(jìn)而構(gòu)造一個(gè)線性變換矩陣,即可達(dá)到將復(fù)數(shù)矩陣轉(zhuǎn)化為實(shí)數(shù)矩陣的目的。
對(duì)于奇數(shù)陣元的均勻線陣,也有相關(guān)研究成果表明,通過構(gòu)造一個(gè)酉矩陣,也可以達(dá)到數(shù)據(jù)預(yù)處理的目的。
由于均勻圓陣的陣列流型矩陣不是Vandermonde矩陣,即不具備旋轉(zhuǎn)不變性,因此適用于奇數(shù)陣元的均勻線陣的預(yù)處理理論不能直接用于奇數(shù)陣元的均勻圓陣,需要將圓陣先轉(zhuǎn)換到模式空間——虛擬線陣,而轉(zhuǎn)換需要第一類Bessel函數(shù),不適宜用硬件實(shí)現(xiàn)。
以上研究表明,目前除了奇數(shù)陣元的均勻圓陣外,其他常用陣列模型都可以通過預(yù)處理的方法將復(fù)數(shù)運(yùn)算轉(zhuǎn)換為實(shí)數(shù)運(yùn)算。若在某些特定的情況下,必須采用奇數(shù)陣元的均勻圓陣。此時(shí),基于復(fù)數(shù)運(yùn)算的協(xié)方差矩陣的實(shí)現(xiàn)就成為一種必然。
因此,在充分應(yīng)用FPGA并行處理能力的同時(shí),為了擴(kuò)展數(shù)據(jù)處理的動(dòng)態(tài)范圍,減少數(shù)據(jù)溢出機(jī)率,避免數(shù)據(jù)截?cái)嗨a(chǎn)生的誤差,提高協(xié)方差矩陣的運(yùn)算精度以及擴(kuò)展該運(yùn)算的通用性。本文以空間譜估計(jì)作為研究背景,研究了復(fù)數(shù)據(jù)運(yùn)算和浮點(diǎn)運(yùn)算的特點(diǎn),提出了一種適用于任何陣列流型、任意陣元的基于復(fù)數(shù)浮點(diǎn)運(yùn)算的協(xié)方差矩陣的FPGA實(shí)現(xiàn)方案。
評(píng)論