《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的實時互相關(guān)運算器
基于FPGA的實時互相關(guān)運算器
羅玉平 林 森 趙建華
摘要: 對無源雷達的直通信號和反射信號進行互相關(guān)運算可以檢測目標(biāo)是否存在。本文介紹了基于FPGA流水線操作的陣列運算器,該運算器有32個并行乘加運算單元時分,完成256個探測距離的互相關(guān)值計算,在128MHz的時鐘下,能夠?qū)Χ沸盘栠M行實時互相關(guān)處理。
Abstract:
Key words :

  摘  要:無源雷達的直通信號和反射信號進行互相關(guān)運算可以檢測目標(biāo)是否存在。本文介紹了基于FPGA流水線操作的陣列運算器,該運算器有32個并行乘加運算單元時分,完成256個探測距離的互相關(guān)值計算,在128MHz的時鐘下,能夠?qū)Χ沸盘栠M行實時互相關(guān)處理。

  關(guān)鍵詞: 互相關(guān)運算器  現(xiàn)場可編程邏輯門陣列(FPGA)  硬件描述語言  無源雷達

 

  同傳統(tǒng)雷達相比,無源雷達利用民用照射源(如FM調(diào)頻廣播,頻率在100MHz左右)作為發(fā)射源,使雷達成本大幅度下降,并且體積小、重量輕、耗電小,具有抗隱身和自身隱身等眾多優(yōu)點。但無源雷達最大的缺點就是對直通信號和反射信號做實時自相關(guān)運算需要巨大的運算能力。當(dāng)用500kHz的采樣頻率對無源雷達的二路信號進行采樣時,若距離分辨率為600m、探測距離為0~150km,則至少需要4GHz復(fù)數(shù)乘加/秒的計算能力才能實時地對二路信號做互相關(guān)處理。對信號處理所需的巨大運算量限制了無源雷達的發(fā)展,而數(shù)字處理技術(shù)的發(fā)展,使無源雷達的實現(xiàn)成為可能。

  本文重點介紹了基于FPGA的實時互相關(guān)運算器的實現(xiàn)方案?;ハ嚓P(guān)運算器要計算的信號是直通信號(來自FM調(diào)頻廣播電臺)和反射信號(飛行器或者其他運動的目標(biāo)反射FM調(diào)頻信號的反射信號),二路信號通過32個并行運算單元的計算,流水線式地計算出每一時刻的256個互相關(guān)值,并把互相關(guān)值送往高速DSP處理器做進一步處理,檢測出目標(biāo)在哪個距離上出現(xiàn)。

1  互相關(guān)運算法則

  計算目標(biāo)的位置,關(guān)鍵在于找到時延參數(shù)Δt取何值時,二路信號的互相關(guān)值最大。時延參數(shù)Δt的計算方法描述如下。

  x(t)和y(t)分別為接收到的直通信號和反射信號:

  

式(1)中:a是衰減系數(shù),s(t)是源信號,Δt是時延量,n1(t)、n2(t)為零均值平穩(wěn)白噪聲過程。在這個模型中,噪音信號是附加的。假設(shè)n1(t)、n2(t)與s(t)是相互獨立的變量,則二路信號的互相關(guān)運算公式可以描述為:

2 互相關(guān)運算器的硬件結(jié)構(gòu)

  互相關(guān)運算器的框架結(jié)構(gòu)如圖1所示?;ハ嚓P(guān)運算器由量化模塊(其中包括RAM部分)、控制模塊、互相關(guān)運算模塊以及峰值查找模塊組成。量化模塊對直通信號x(t)和反射信號y(t)進行A/D采樣,得到1路2位(包括實部和虛部)和1路12位(包括實部和虛部)的數(shù)字信號送往SRAM中,再由控制模塊把SRAM所存的數(shù)據(jù)按照一定的邏輯送給互相關(guān)運算模塊(對FPGA編程實現(xiàn))做互相關(guān)運算。互相關(guān)運算模塊把每一時刻t0的所有互相關(guān)值,按A(t0,0)、A(t0,1)……A(t0,R)的順序送往峰值查找模塊中的雙端口異步FIFO中。以FIFO作為FPGA與DSP的接口,最后峰值查找模塊的DSP從FIFO中取出時刻t0的所有互相關(guān)值。比較這些值找出時刻t0有目標(biāo)出現(xiàn)的r,并把結(jié)果送往顯示終端顯示。峰值查找模塊由高速DSP來完成。

 

 

3 互相關(guān)運算模塊的實現(xiàn)

  若需要探測距離為0~150km的所有目標(biāo),距離分辨率為600m,則每一時刻需要計算256個互相關(guān)值。如果窗口T取32,采樣模塊的采樣頻率F設(shè)為1MHz,互相關(guān)運算器的運算能力需要達到F×T×R=500kHz×32×256=4GHz復(fù)數(shù)乘加/秒。這就決定FPGA芯片在不太高的工作頻率下需要并行盡可能多的運算單元。圖2是本文所設(shè)計的互相關(guān)運算模塊結(jié)構(gòu)圖。它有32個復(fù)數(shù)乘加運算單元,每一個運算單元都是相互獨立的,因此每個時鐘能進行32次復(fù)數(shù)乘加運算,在128MHz的工作頻率下,能夠達到128MHz×32=4GHz的復(fù)數(shù)乘加/秒的運算能力。

 

 

  若把方程式(4)映射到一個具有32個并行運算單元的循環(huán)陣列,循環(huán)T次就可計算出32個距離上的互相關(guān)值,順序計算8個這樣的距離塊就可以完成256個單元的計算。把上述結(jié)構(gòu)映射到FPGA上實現(xiàn),則FPGA上并行32個運算單元,且每1個運算單元具有1個與其他運算單元獨立的復(fù)數(shù)乘加模塊、寄存器組和1個互相關(guān)值輸出鎖存寄存器。這種并行結(jié)構(gòu)的最大優(yōu)點在于:使運算模塊中的存儲單元獨立于32個運算模塊之外,簡化了FPGA的外圍電路,極大地方便了硬件的實現(xiàn)。

二路信號在接收信噪比條件下量化成直通信號x(t)和反射信號y(t)。在本系統(tǒng)中直通信號x(t)和反射信號y(t)的量化位寬分別是6位和1位,二路信號都是復(fù)變量,因此數(shù)據(jù)通路的寬度分別是12位和2位。由于反射信號僅需要1位量化,因此可以用組合加法操作代替乘法操作。加法的實現(xiàn)比乘法簡單得多,在FPGA中占用的資源也比乘法器少得多,因而能夠在1塊50萬門左右的FPGA中實現(xiàn)32個運算單元或者更多的運算單元。為了使窗口值T取128時計算的結(jié)果不會溢出,運算器選取了26位位寬的加法器。在數(shù)據(jù)流上,直通信號x(t)傳送到32級距離的運算單元,反射信號y(t)以逐步右移鎖存的方式送往每一個運算單元上。x(t)和y(t)都由一個15位地址計數(shù)器來控制SRAMs,讀出所需要的數(shù)據(jù)。

  為了消除計算不同時刻之間以及相同時刻不同距離塊之間互相關(guān)值所需要的額外時間,使FPGA中的計算資源不會因為準(zhǔn)備運算數(shù)據(jù)而閑置,本設(shè)計采用了一個寄存器組給每一個復(fù)數(shù)乘加模塊加載運算數(shù)據(jù),其寄存器組的結(jié)構(gòu)如圖3所示。

 

 

  每一個寄存器組由4個寄存器和7個2路復(fù)用器組成。寄存器組工作時的時序圖如圖4所示。4個寄存器分成2個小組,小組1:Reg1;Reg2,小組2:Reg3、Reg4。每次小組1動作,小組2則預(yù)裝;反之亦然。圖4中第1階段為全部寄存器組的預(yù)裝(預(yù)裝t1時刻的數(shù)據(jù));從第2階段起開始計算互相關(guān)值,這時小組1動作,計算t1時的互相關(guān)值,

 

 

  小組2預(yù)裝并計算t2時刻所需要的數(shù)據(jù);第3階段,小組1繼續(xù)動作,直到計算完成256個互相關(guān)值,小組2不動作;第4階段,小組2動作,小組1預(yù)裝并計算t3時刻所需要的數(shù)據(jù);第5階段,小組2繼續(xù)動作,小組1不動作,直到計算完成t2時刻的256個互相關(guān)值后,整個寄存器組轉(zhuǎn)往第2階段。

  在圖2中,復(fù)數(shù)乘法模塊根據(jù)Y寄存器組的輸出值對RegX傳送過來的值進行累加。當(dāng)Y寄存器組的輸出值為0時,CM送0值給累加器,這時累加器把當(dāng)前累加值與0相加,并把結(jié)果鎖存;當(dāng)Y寄存器組的輸出值為1時,CM送RegX傳送過來的值給累加器,累加器則把當(dāng)前累加值與RegX傳送過來的值相加,并把結(jié)果鎖存。累加器進行T(本文中T=32)次累加之后,把累加結(jié)果鎖存到互相關(guān)值輸出鎖存器(見圖2)對應(yīng)的寄存器中,這時發(fā)出reset命令把結(jié)果鎖存器清零,為計算下一個互相關(guān)值做初始為零的準(zhǔn)備工作。

  當(dāng)屬于某一時刻t0上32個互相關(guān)值計算完畢之后,控制邏輯模塊發(fā)出鎖存信號把這32個互相關(guān)值送往互相關(guān)值輸出鎖存寄存器組中。假設(shè)從n0時鐘開始計算t0時刻的某32個互相關(guān)值,在n0+31時刻下32個互相關(guān)值計算完成,這時的結(jié)果同時鎖存到互相關(guān)值輸出鎖存器中。在計算t0時刻下一組32個互相關(guān)值或者t0+1時刻0~31個互相關(guān)值時,輸出鎖存寄存器組把計算結(jié)果加上幀的標(biāo)志(由控制邏輯模塊給出,如果t0時刻為0,則t0+1時刻為1,用于區(qū)分當(dāng)前互相關(guān)值是屬于前一時刻的互相關(guān)值還是屬于后一時刻的互相關(guān)值,便于峰值查找模塊的實現(xiàn))。數(shù)據(jù)按照A(t0,32k+0)、A(t0,32k+1)……A(t0,32k+31)(k=0~7)的順序送往峰值查找模塊的FIFO中。互相關(guān)值輸出鎖存寄存器的時序如圖5所示。

 

 

  互相關(guān)運算器中的FPGA模塊采用的是1片Xilinx 2v500fg256芯片,500 000門的規(guī)模。其VHDL語言實現(xiàn)代碼已在Xilinx 2v500fg256上通過了Xilinx ISE5.1的仿真、綜合布局及布線?;ハ嚓P(guān)運算模塊加上地址控制單元和邏輯控制單元總共占用了2317個Slices(75%),2952個Slice Flip Flops(48%),2792個4輸入查找表(Look-Up-Table,LUT)s(45%)和1個全局時鐘(7%)等。從互相關(guān)運算器的結(jié)構(gòu)可以得到:FPGA芯片上集成的并行運算單元越多,數(shù)據(jù)處理能力就越強,但FPGA芯片的規(guī)模限制不能集成太多的并行運算單元。

4  結(jié)  論

  本文闡述了無源雷達系統(tǒng)中基于FPGA的實時互相關(guān)運算器的一種實現(xiàn)方案。該運算器由1塊500 000門的FPGA芯片完成2路信號的互相關(guān)運算(或積分運算)。經(jīng)實驗?zāi)M,在探測距離為0~150km、距離分辨率為600m時,互相關(guān)運算器能夠?qū)崟r完成直通與反射2路信號的互相關(guān)運算。該運算器還可以擴展到和其他的接收機相連,處理其他的數(shù)據(jù),例如目標(biāo)的方位角等。

 

參考文獻

1  Tuan T,Figueroa M,Lind F et al.An FPGA-Based Array  Processor for an Ionospheric-Imaging Radar.California: 

   Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines.Napa Valley. 2000 

2  Sahr J D,Gidner D M,Zhou C et al.Passive VHF radar for  Ionospheric Physics.Journal of Atmospheric and Solar-Terrestrial Physics,2001;(63) 

3  George P,Kostas E,Li Yiqi et al.Development of a Passive  Acoustic System for Realime Source Detection,Tracking and  Recognition.In:Proceedings of the IEEE International  Symposium.Industrial Electronics,1992;(1) 

4  唐小明,何友,夏明革.基于機會發(fā)射的無源雷達系統(tǒng)發(fā)展評述.現(xiàn)代雷達,2002;24(2) 

5  Xilinx Inc.Xilinx 5 Software Manuals Online.2002 

6  盧毅,賴杰.VHDL與數(shù)字電路設(shè)計.北京:科學(xué)出版社,2001 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。