本發(fā)明涉及雷達(dá)信號(hào)處理技術(shù)領(lǐng)域,特別是一種高效的FPGA通用MTI實(shí)現(xiàn)方法。
背景技術(shù):
雷達(dá)探測(cè)的運(yùn)動(dòng)目標(biāo)如飛機(jī)、導(dǎo)彈、艦艇、車輛等周圍存在各種背景,包括不動(dòng)的地物和運(yùn)動(dòng)的云雨、海浪或金屬絲干擾等?,F(xiàn)有的動(dòng)目標(biāo)顯示就是一個(gè)濾波器,濾去這些背景產(chǎn)生的雜波,從而能夠取出運(yùn)動(dòng)目標(biāo)的回波,該目標(biāo)顯示方法就是脈沖對(duì)消。
現(xiàn)有的動(dòng)目標(biāo)顯示技術(shù)中大部分都采用了DSP實(shí)現(xiàn)動(dòng)目標(biāo)顯示,也有使用GPU來(lái)實(shí)現(xiàn)的,這些方法均為串行的工作方式,即使多核并行,往往運(yùn)算控制機(jī)制也不夠完善,工作效率不及并行運(yùn)算的FPGA,在實(shí)時(shí)性較強(qiáng)的雷達(dá)信號(hào)處理場(chǎng)景中有較大的劣勢(shì)。在使用FPGA實(shí)現(xiàn)的方法中,有的方法在對(duì)脈沖進(jìn)行緩存時(shí)使用的是緩存芯片,此方法對(duì)需要較多脈沖數(shù)對(duì)消的場(chǎng)景搭建成本高,且靠外置芯片緩存不夠靈活;有的方法在數(shù)據(jù)緩存時(shí)使用了FPGA內(nèi)的RAM核,在多脈沖對(duì)消時(shí)無(wú)法完全流水處理,效率會(huì)受影響,同時(shí)占用FPGA資源相對(duì)較多,并且很難適應(yīng)不同雜波背景需要不同數(shù)量脈沖對(duì)消的情況。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供了一種高效的FPGA通用MTI實(shí)現(xiàn)方法,通過(guò)FPGA芯片的FIFO核來(lái)搭建處理框架,提供對(duì)消脈沖數(shù)可控的MTI實(shí)現(xiàn)方法,解決了不同雜波背景下對(duì)消脈沖數(shù)通常不同的問(wèn)題,可以適用于對(duì)消脈沖數(shù)變化的情況,滿足了多種雜波背景下的雷達(dá)信號(hào)處理需求。
本發(fā)明的技術(shù)解決方案是:一種高效的FPGA通用MTI實(shí)現(xiàn)方法,包括如下步驟:
(1)獲取當(dāng)前動(dòng)目標(biāo)顯示所需要處理的最大對(duì)消脈沖數(shù)N、脈沖最大點(diǎn)數(shù)M,然后在FPGA中生成N-1個(gè)深度不小于M的FIFO核、N個(gè)復(fù)乘核,將N-1個(gè)FIFO核分別記為FIFO_1、FIFO_1、FIFO_1,…,F(xiàn)IFO_N-1,將N個(gè)復(fù)乘核分別記為第1復(fù)乘核、第2復(fù)乘核、第3復(fù)乘核,…,第N復(fù)乘核,其中,N、M為正整數(shù),每個(gè)復(fù)乘核均對(duì)應(yīng)一個(gè)階數(shù)因子;
(2)讀取雷達(dá)探測(cè)動(dòng)目標(biāo)得到的回波模擬數(shù)據(jù),然后進(jìn)行采集、下變頻、幅度相位校正、速度補(bǔ)償,得到回波模擬數(shù)據(jù)對(duì)應(yīng)的多脈沖數(shù)據(jù);
(3)將多脈沖數(shù)據(jù)劃分成N個(gè)數(shù)據(jù)并分別記為Pulse_1、Pulse_2、Pulse_3、…、Pulse_N,然后將Pulse_1延時(shí)一個(gè)PRT后送至FIFO_1、第1復(fù)乘核,同時(shí)將Pulse_2開始延時(shí)一個(gè)PRT;所述的PRT為多脈沖數(shù)據(jù)的脈沖重復(fù)周期;
(4)將Pulse_1送至FIFO_2、第2復(fù)乘核,將Pulse_2送至FIFO_1、第1復(fù)乘核,同時(shí)將Pulse_3開始延時(shí)一個(gè)PRT;
(5)將Pulse_1送至FIFO_3、第3復(fù)乘核,將Pulse_2送至FIFO_2、第2復(fù)乘核,將Pulse_3送至FIFO_1、第1復(fù)乘核,同時(shí)將Pulse_4開始延時(shí)一個(gè)PRT;
(6)將Pulse_1送至FIFO_k、第k復(fù)乘核,將Pulse_2送至FIFO_k-1、第k-1復(fù)乘核,…,將Pulse_k送至FIFO_k-(k-1)、第k-(k-1)復(fù)乘核,同時(shí)將Pulse_k+1開始延時(shí)一個(gè)PRT,其中,k的初始值為4;
(7)k=k+1直至k=N,其中,當(dāng)k為N時(shí),不將Pulse_N+1開始延時(shí)一個(gè)PRT;
(8)分別獲取N個(gè)復(fù)乘核對(duì)應(yīng)的對(duì)消系數(shù),并分別記為coef_1、coef_2、coef_3,…,coef_N,在第k個(gè)復(fù)乘核中對(duì)coef_k、Pulse_k進(jìn)行相乘,得到復(fù)乘結(jié)果fac_k,遍歷所有的k,k=1,2,3,…,N;
(9)獲取第k個(gè)復(fù)乘核中脈沖數(shù)據(jù)的Pulse_N+1-k的位寬,使用第k個(gè)復(fù)乘核的階數(shù)因子與Pulse_N+1-k進(jìn)行按位與;
(10)將步驟(9)得到的N個(gè)按位與結(jié)果進(jìn)行疊加運(yùn)算,得到運(yùn)算結(jié)果,完成動(dòng)目標(biāo)MTI。
所述的最大對(duì)消脈沖數(shù)為N在進(jìn)行地面動(dòng)目標(biāo)顯示時(shí)取值范圍為[2-4],在進(jìn)行海面動(dòng)目標(biāo)顯示時(shí)取值范圍為[4-6],M不大于8192。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
(1)本發(fā)明方法通過(guò)構(gòu)建流水模型,解決了DSP或GPU實(shí)現(xiàn)過(guò)程中串行運(yùn)算效率低與多核運(yùn)算控制不力的問(wèn)題,具有并行運(yùn)算效率高,運(yùn)算過(guò)程好控制的優(yōu)點(diǎn);
(2)本發(fā)明方法通過(guò)控制數(shù)據(jù)流經(jīng)FPGA片內(nèi)FIFO,解決了使用RAM資源無(wú)法完全實(shí)現(xiàn)流水操作影響效率、使用數(shù)據(jù)緩存芯片硬件搭建成本高、使用不夠靈活的問(wèn)題,具有流水操作效率高,緩存空間使用靈活的優(yōu)點(diǎn);
(3)本發(fā)明方法通過(guò)提取N脈沖對(duì)消系數(shù)并相乘,解決了以前的方法使用場(chǎng)景受限的問(wèn)題,具有參數(shù)可控,對(duì)消系數(shù)可更換的優(yōu)點(diǎn);
(4)本發(fā)明方法通過(guò)脈沖和階數(shù)因子進(jìn)行按位與操作,解決了之前方法很難適應(yīng)不同雜波背景需要不同數(shù)量脈沖對(duì)消的問(wèn)題,利用階數(shù)因子的不同賦值完成不同階數(shù)脈沖的對(duì)消,具有對(duì)不同應(yīng)用場(chǎng)景通用性強(qiáng)的優(yōu)點(diǎn)。
附圖說(shuō)明
圖1為本發(fā)明一種高效的FPGA通用MTI實(shí)現(xiàn)方法原理圖。
具體實(shí)施方式
當(dāng)前主流FPGA集成了大量乘法器和IP核,可以并行處理多路數(shù)據(jù),已經(jīng)廣泛應(yīng)用于雷達(dá)信號(hào)處理器中,本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出一種高效的FPGA通用MTI(動(dòng)目標(biāo)顯示,Moving Target Indication)實(shí)現(xiàn)方法,充分利用FPGA并行處理和FIFO核的先入先出的流水特性,實(shí)現(xiàn)了不同雜波背景下的MTI算法,本發(fā)明實(shí)現(xiàn)方法如圖1所示。
(1)構(gòu)建流水模型
如果處理要求多種MTI對(duì)消模式,則按所需最大對(duì)消脈沖數(shù)與每個(gè)脈沖最大點(diǎn)數(shù)構(gòu)建處理模型,設(shè)最大對(duì)消脈沖數(shù)為N,每個(gè)脈沖最多為M個(gè)點(diǎn),根據(jù)實(shí)際工程經(jīng)驗(yàn),處理地雜波的N值為2-4,處理海雜波的N值為4-6,M的值在實(shí)際應(yīng)用時(shí)一般都在8192之內(nèi)。FPGA中需生成N-1個(gè)深度大于等于M的FIFO核,N個(gè)復(fù)乘核,從ROM讀取N個(gè)復(fù)乘系數(shù),設(shè)定N個(gè)階數(shù)因子相與,并完成N個(gè)脈沖的疊加,由此完成脈沖的對(duì)消。
(2)數(shù)據(jù)流經(jīng)FPGA片內(nèi)FIFO
①讀取回波模擬數(shù)據(jù),通過(guò)采集緩沖、下變頻、幅相校正、速度補(bǔ)償?shù)雀鱾€(gè)信號(hào)處理模塊,得到重排后的多脈沖數(shù)據(jù)送入MTI模塊;
②重排后的數(shù)據(jù)是一幀多脈沖數(shù)據(jù),將其可以劃分成Pulse_1-Pulse_N。將Pulse_1送入delay模塊,delay模塊的延時(shí)正好是一個(gè)PRT(脈沖重復(fù)周期);
③將delay模塊的輸出數(shù)據(jù)送入下一級(jí)復(fù)乘模塊同時(shí)送入下一個(gè)FIFO,Pulse_1此時(shí)一邊從delay模塊輸出一邊進(jìn)入FIFO_1;
④輸入的Pulse_2進(jìn)入delay模塊,同時(shí)Pulse_1進(jìn)入FIFO_1模塊。一個(gè)PRT之后,Pulse_2從delay模塊輸出進(jìn)入下一級(jí)復(fù)乘模塊,同時(shí)進(jìn)入FIFO_1,此時(shí)控制FIFO_1的讀使能將Pulse_1數(shù)據(jù)送入下一級(jí)復(fù)乘模塊同時(shí)流入FIFO_2;
⑤如此流水下去,輸入的Pulse_3進(jìn)入delay模塊,同時(shí)Pulse_2進(jìn)入FIFO_1模塊。一個(gè)PRT之后,Pulse_3從delay模塊輸出進(jìn)入下一級(jí)復(fù)乘模塊,同時(shí)進(jìn)入FIFO_1,此時(shí)控制FIFO_1的讀使能將Pulse_2數(shù)據(jù)送入下一級(jí)復(fù)乘模塊同時(shí)流入FIFO_2。此時(shí)控制FIFO_2的讀使能將Pulse_1數(shù)據(jù)送入下一級(jí)復(fù)乘模塊同時(shí)流入FIFO_3;
⑥最終控制FIFO_1-FIFO_N-1的讀使能使Pulse_1的數(shù)據(jù)從FIFO_N-1流出,Pulse_2的數(shù)據(jù)從FIFO_N-2流出,……,Pulse_N-1的數(shù)據(jù)從FIFO_1流出,Pulse_N的數(shù)據(jù)從delay模塊流出,所有的數(shù)據(jù)都流向下一級(jí)的復(fù)乘模塊。
(3)提取N脈沖對(duì)消系數(shù)并相乘
①?gòu)腇PGA內(nèi)部的ROM核資源中讀出事先根據(jù)工程實(shí)際產(chǎn)生的N個(gè)對(duì)消系數(shù)coef_1-coef_N;
②對(duì)消系數(shù)coef_1-coef_N與Pulse_N-Pulse_1分別利用FPGA核資源對(duì)應(yīng)相乘;
③將N個(gè)結(jié)果分別送入下一級(jí)按位與的模塊。
(4)脈沖和階數(shù)因子進(jìn)行按位與操作
①根據(jù)需求與數(shù)據(jù)位寬給階數(shù)因子賦值,階數(shù)因子位寬與上一級(jí)流出的數(shù)據(jù)位寬相同,假設(shè)需要的對(duì)消脈沖數(shù)為X(X≤N),則給fac_1-fac_X置全’1’,剩下的階數(shù)因子置全’0’,由此階數(shù)因子賦值完成。
②上一階段與對(duì)消系數(shù)相乘完成的數(shù)據(jù)分別和對(duì)應(yīng)的階數(shù)因子進(jìn)行按位與的操作,將結(jié)果輸出至下一級(jí)模塊。
(5)N個(gè)脈沖進(jìn)行對(duì)消
將N個(gè)脈沖利用FPGA內(nèi)部的核資源進(jìn)行逐脈沖逐點(diǎn)疊加運(yùn)算,運(yùn)算結(jié)果輸出至后續(xù)MTD模塊。
本發(fā)明說(shuō)明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。