王利華
(中國(guó)航空工業(yè)集團(tuán)公司雷華電子技術(shù)研究所,江蘇無(wú)錫214063)
在大多數(shù)雷達(dá)系統(tǒng)的處理架構(gòu)中,一般由數(shù)字中頻接收系統(tǒng)完成模擬中頻信號(hào)模數(shù)變換器(Analog to Digital Converter,ADC)采樣,并基于現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)實(shí)現(xiàn)數(shù)字下變頻和數(shù)據(jù)打包輸出算法,再由信號(hào)處理系統(tǒng)基于數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)實(shí)現(xiàn)基帶信號(hào)數(shù)字脈壓和后續(xù)處理算法。但是DSP芯片處理速度低、實(shí)時(shí)性差且并行處理能力弱,使得基于DSP的數(shù)字信號(hào)處理有著極大的應(yīng)用局限性。
隨著FPGA芯片技術(shù)和集成度的高速發(fā)展,以及FPGA本身具備的處理速度快、適合并行運(yùn)算的特點(diǎn),在雷達(dá)數(shù)字接收系統(tǒng)和信號(hào)處理系統(tǒng)得到越來(lái)越廣泛的應(yīng)用。部分信號(hào)處理算法(如線性調(diào)頻信號(hào)脈壓等)可以前移至數(shù)字中頻接收系統(tǒng)基于FPGA實(shí)現(xiàn),這樣不但能夠有效減輕DSP芯片的處理壓力,也可以優(yōu)化信號(hào)處理系統(tǒng)的算法架構(gòu)。在數(shù)字中頻接收系統(tǒng)中,基于FPGA實(shí)現(xiàn)多通道數(shù)字下變頻、線性調(diào)頻信號(hào)數(shù)字脈壓和數(shù)據(jù)打包算法的綜合設(shè)計(jì),能夠有效提升數(shù)字中頻接收系統(tǒng)的預(yù)處理能力。
線性調(diào)頻信號(hào)的脈壓工程實(shí)現(xiàn)包括時(shí)域卷積和頻域相乘兩種方法。在雷達(dá)窄帶信號(hào)處理系統(tǒng)中[1],線性調(diào)頻信號(hào)脈壓長(zhǎng)度從幾十點(diǎn)到幾千點(diǎn)不等,如果采用時(shí)域卷積的方式進(jìn)行脈壓,匹配濾波器的設(shè)計(jì)較為困難。尤其是脈壓長(zhǎng)度達(dá)到幾千點(diǎn)數(shù)時(shí),無(wú)論如何優(yōu)化設(shè)計(jì),匹配濾波器的階數(shù)都太大,其乘法及加法的運(yùn)算規(guī)??赡軐?dǎo)致FPGA的資源占用過(guò)多而無(wú)法實(shí)現(xiàn)。
頻域相乘[2]的方式主要需要進(jìn)行快速傅里葉變換(Fast Fourier Transform,FFT)和快速傅里葉逆變換(Inverse Fast Fourier Transform,IFFT)運(yùn)算,脈壓匹配過(guò)程是在頻域與匹配系數(shù)進(jìn)行點(diǎn)乘。而目前工程上應(yīng)用較為廣泛的FPGA,其開發(fā)環(huán)境都提供了能夠進(jìn)行FFT和IFFT運(yùn)算的IP核,這使得信號(hào)的時(shí)域-頻域-時(shí)域轉(zhuǎn)換變得不太復(fù)雜。這些IP核支持的轉(zhuǎn)換運(yùn)算長(zhǎng)度可達(dá)64K點(diǎn),能夠滿足雷達(dá)窄帶系統(tǒng)對(duì)絕大多數(shù)線性調(diào)頻信號(hào)脈壓的處理需求,因此基于FPGA的窄帶多通道數(shù)字脈壓更適合采用頻域相乘方式。
設(shè)基帶線性調(diào)頻信號(hào)為x(n),頻域匹配系數(shù)為h(n),那么頻域脈壓運(yùn)算過(guò)程可表示為
將數(shù)字下變頻后的基帶線性調(diào)頻信號(hào)先進(jìn)行FFT運(yùn)算,再在頻域與脈壓匹配系數(shù)進(jìn)行復(fù)乘運(yùn)算,最后進(jìn)行IFFT運(yùn)算即獲得信號(hào)脈壓結(jié)果。
除FFT和IFFT運(yùn)算外,脈壓匹配函數(shù)的系數(shù)計(jì)算也是實(shí)現(xiàn)脈壓的關(guān)鍵,一般可以采用預(yù)先存儲(chǔ)與實(shí)時(shí)計(jì)算兩種方式。預(yù)先存儲(chǔ)是根據(jù)線性調(diào)頻信號(hào)參數(shù),基于Matlab進(jìn)行計(jì)算并將匹配系數(shù)存儲(chǔ)于FPGA的只讀存儲(chǔ)器(Read Only Memory,ROM)中[3]。這種存儲(chǔ)方式對(duì)匹配系數(shù)的處理簡(jiǎn)單,但是設(shè)計(jì)不夠靈活,更適合大帶寬線性調(diào)頻信號(hào)、帶寬種類較少的情況。
而雷達(dá)窄帶多通道處理系統(tǒng)一般包含多種帶寬和脈寬的線性調(diào)頻信號(hào),由此導(dǎo)致脈壓匹配函數(shù)的種類很多,采用匹配系數(shù)存儲(chǔ)方式需要枚舉的數(shù)量太多。本文采用雷達(dá)系統(tǒng)通過(guò)串行通信總線提供回波線性調(diào)頻信號(hào)參數(shù)的方式,在FPGA內(nèi)進(jìn)行實(shí)時(shí)FFT計(jì)算的方式獲得脈壓匹配系數(shù)的頻域形式,這樣的方法更加適合窄帶多通道、多帶寬接收系統(tǒng)的脈壓處理。
雷達(dá)窄帶接收系統(tǒng)中通常采用多個(gè)接收通道的處理模式。以常用的4個(gè)接收通道為例,在窄帶數(shù)字中頻接收系統(tǒng)中,基于單片F(xiàn)PGA不僅實(shí)現(xiàn)窄帶多通道數(shù)字接收、數(shù)字下變頻和數(shù)據(jù)打包處理,在FPGA中增加多帶寬回波信號(hào)數(shù)字脈壓,與原有功能實(shí)現(xiàn)一體化設(shè)計(jì)架構(gòu),如圖1所示。各個(gè)通道獨(dú)立完成ADC采樣、數(shù)字下變頻(Digital Down Conversion,DDC)、脈壓運(yùn)算等,再統(tǒng)一進(jìn)行數(shù)據(jù)打包輸出至處理機(jī)完成雷達(dá)信號(hào)處理系統(tǒng)的后續(xù)處理算法。
圖1 多通道DDC及脈壓一體化設(shè)計(jì)架構(gòu)
采用一體化設(shè)計(jì)架構(gòu),將原本在處理系統(tǒng)中基于DSP芯片實(shí)現(xiàn)的脈壓算法,前移至數(shù)字中頻接收系統(tǒng)中。數(shù)字下變頻后的基帶信號(hào)直接在FPGA內(nèi)完成數(shù)字脈壓,與DDC算法無(wú)縫對(duì)接,優(yōu)化了雷達(dá)系統(tǒng)數(shù)據(jù)處理模式。脈壓后的信號(hào)再進(jìn)行數(shù)據(jù)打包組合,處理系統(tǒng)可以基于此脈壓信號(hào)完成后續(xù)算法,減少一級(jí)脈壓處理,使得基帶數(shù)據(jù)流的運(yùn)算處理更加緊湊。
由于窄帶接收通道包含多種帶寬和脈寬的線性調(diào)頻回波信號(hào),數(shù)字下變頻抽取后根據(jù)信號(hào)帶寬的不同可能包含多種基帶數(shù)據(jù)率,脈壓運(yùn)算每個(gè)PRI周期進(jìn)行一次。FFT的IP核要求運(yùn)算點(diǎn)數(shù)滿足2N,當(dāng)數(shù)據(jù)長(zhǎng)度不滿足FFT運(yùn)算要求的2N時(shí)還需進(jìn)行補(bǔ)零操作。結(jié)合大多數(shù)雷達(dá)窄帶接收系統(tǒng)的回波參數(shù),線性調(diào)頻信號(hào)脈壓的FFT及IFFT計(jì)算長(zhǎng)度可能包含32,64,128,256,512,1K,2K和4K等多種。
單個(gè)接收通道包含多種長(zhǎng)度數(shù)字脈壓的處理架構(gòu)如圖2所示,由于FFT IP核對(duì)運(yùn)算長(zhǎng)度不可重加載設(shè)置,因此每一種長(zhǎng)度的FFT和IFFT均并行平鋪設(shè)計(jì),而無(wú)法多種長(zhǎng)度運(yùn)算共用,這對(duì)FPGA資源的消耗將是很大挑戰(zhàn)。各種匹配系數(shù)的計(jì)算根據(jù)系統(tǒng)提供的脈寬、帶寬和數(shù)據(jù)率等參數(shù)在FPGA實(shí)時(shí)計(jì)算獲得。多通道脈壓算法的線性調(diào)頻信號(hào)FFT和IFFT運(yùn)算各自獨(dú)立進(jìn)行,但是脈壓匹配系數(shù)可以在通道間共用,節(jié)省FPGA資源消耗。
雷達(dá)系統(tǒng)通常以PRI為處理單位,線性調(diào)頻信號(hào)的脈壓運(yùn)算每個(gè)PRI進(jìn)行一次,而不同帶寬的中頻信號(hào)經(jīng)過(guò)數(shù)字下變頻低通濾波及抽取后的數(shù)據(jù)率也不同,因此每個(gè)PRI周期由采集波門脈寬和基帶信號(hào)數(shù)據(jù)率來(lái)決定處理點(diǎn)數(shù)。不過(guò)數(shù)據(jù)采集波門脈寬和數(shù)據(jù)率計(jì)算獲得的點(diǎn)數(shù)并不一定滿足2N,但是FFT和IFFT IP核運(yùn)算要求的長(zhǎng)度必須符合2N,這就涉及數(shù)據(jù)補(bǔ)零操作,將數(shù)據(jù)處理長(zhǎng)度向上補(bǔ)零至最近的2N。雷達(dá)PRI脈沖、數(shù)據(jù)采集波門脈沖、原始基帶處理數(shù)據(jù)及以基帶低速數(shù)據(jù)率進(jìn)行補(bǔ)零操作的時(shí)序關(guān)系如圖3所示。
由于窄帶系統(tǒng)基帶數(shù)據(jù)率一般只有幾兆赫茲、最多十幾兆赫茲,同時(shí)數(shù)據(jù)采集波門的占空比又較高,即每個(gè)PRI周期內(nèi),除了信號(hào)發(fā)射時(shí)間,其余回波信號(hào)幾乎要全部進(jìn)行脈壓處理。如果采用與基帶數(shù)據(jù)率相同的速率進(jìn)行補(bǔ)零數(shù)據(jù)操作,當(dāng)需要補(bǔ)零較多時(shí),補(bǔ)零后的數(shù)據(jù)可能與下一個(gè)數(shù)據(jù)采集波門的原始基帶數(shù)據(jù)重合,這樣將導(dǎo)致補(bǔ)零數(shù)據(jù)堵塞和混疊,進(jìn)而無(wú)法完成后續(xù)脈壓處理。
為解決這種矛盾,并且提高脈壓處理效率,需要對(duì)原始基帶數(shù)據(jù)提高到高速時(shí)鐘域處理,即對(duì)各種數(shù)據(jù)率的低速基帶信號(hào)通過(guò)雙口隨機(jī)存儲(chǔ)器(Random Access Memory,RAM)提高到統(tǒng)一的高速率數(shù)據(jù)。高速時(shí)鐘通常選擇最大基帶數(shù)據(jù)率的幾倍甚至幾十倍,比如200 MHz以上的處理時(shí)鐘既可以提高基帶數(shù)據(jù)整合效率,又能夠保證FPGA邏輯實(shí)現(xiàn)的時(shí)序要求。
不過(guò)雖然采用雙時(shí)鐘域的方式可以解決補(bǔ)零操作數(shù)據(jù)堵塞和混疊的問(wèn)題,但是寫RAM端的時(shí)鐘只能是基帶數(shù)據(jù)率的低速時(shí)鐘,為避免寫入RAM的數(shù)據(jù)無(wú)法及時(shí)讀取而導(dǎo)致數(shù)據(jù)覆蓋,數(shù)據(jù)整合及補(bǔ)零操作需要采用乒乓結(jié)構(gòu)。奇數(shù)序列和偶數(shù)序列數(shù)據(jù)采集波門的基帶信號(hào)各自獨(dú)立進(jìn)行數(shù)據(jù)低速寫入和高速讀取處理,然后在高數(shù)據(jù)率下完成數(shù)據(jù)補(bǔ)零及奇偶數(shù)據(jù)組合,使得后續(xù)脈壓處理在高時(shí)鐘域內(nèi)進(jìn)行??鐣r(shí)鐘域乒乓結(jié)構(gòu)數(shù)據(jù)補(bǔ)零及整合的時(shí)序關(guān)系如圖4所示。
采用乒乓結(jié)構(gòu)雙口RAM數(shù)據(jù)整合方式[4],用高速時(shí)鐘將低速基帶信號(hào)進(jìn)行速率提升處理,并實(shí)現(xiàn)多數(shù)據(jù)率基帶信號(hào)的數(shù)據(jù)整合及補(bǔ)零操作。這種跨時(shí)鐘域的數(shù)據(jù)處理方式,將低速基帶信號(hào)提升至高速時(shí)鐘域,不僅保障補(bǔ)零數(shù)據(jù)不會(huì)混疊,還能夠大大增加待脈壓基帶數(shù)據(jù)流的間隔,提高數(shù)據(jù)處理效率,保障充足的計(jì)算時(shí)間,為基于FPGA的數(shù)字脈壓流水運(yùn)算提供了工程可行性。
圖4 高速率乒乓結(jié)構(gòu)數(shù)據(jù)補(bǔ)零及整合時(shí)序
目前主流FPGA芯片公司的應(yīng)用開發(fā)環(huán)境都為用戶提供了多種IP核,對(duì)常用的運(yùn)算不需要進(jìn)行復(fù)雜的邏輯開發(fā),直接調(diào)用相關(guān)的IP核即可[5]。例如Xilinx FPGA開發(fā)環(huán)境提供了脈壓主要運(yùn)算所需的IP核,能夠滿足雷達(dá)窄帶接收系統(tǒng)對(duì)線性調(diào)頻信號(hào)脈壓的處理需求:用于FFT和IFFT運(yùn)算的Fast Fourier Transform,最大可以支持64 K點(diǎn)計(jì)算;用于復(fù)數(shù)乘法運(yùn)算的Complex Multiplier,可以實(shí)現(xiàn)信號(hào)FFT結(jié)果與脈壓匹配系數(shù)的復(fù)乘運(yùn)算。
同時(shí),基于Matlab Simulink與Xilinx System Generator聯(lián)合開發(fā)環(huán)境的設(shè)計(jì)與仿真方法,使得用戶能夠直接調(diào)用界面化的IP核進(jìn)行工程設(shè)計(jì),對(duì)FPGA的開發(fā)更加直接與簡(jiǎn)化,適合于大規(guī)模、多通道、多帶寬窄帶數(shù)字接收系統(tǒng)的線性調(diào)頻信號(hào)脈壓算法設(shè)計(jì)與實(shí)現(xiàn)。本文將主要基于Xilinx FPGA開發(fā)環(huán)境System Generator中的IP核:用于基帶線性調(diào)頻信號(hào)FFT和復(fù)乘結(jié)果IFFT運(yùn)算的Fast Fourier Transform 7.1[6],以及用于復(fù)數(shù)乘法運(yùn)算的Complex Multiplier 3.1,來(lái)實(shí)現(xiàn)窄帶數(shù)字中頻接收通道多種運(yùn)算長(zhǎng)度的脈壓設(shè)計(jì),其中單一計(jì)算長(zhǎng)度數(shù)字脈壓的FFT、匹配系數(shù)復(fù)乘和IFFT三個(gè)關(guān)鍵算法實(shí)現(xiàn)過(guò)程如圖5所示。多通道線性調(diào)頻信號(hào)脈壓除了匹配系數(shù)可以共用外,FFT、匹配系數(shù)復(fù)乘和IFFT各自獨(dú)立進(jìn)行,以確保通道間的運(yùn)算同步性。
圖5 數(shù)字脈壓實(shí)現(xiàn)
基于FPGA的多通道頻域方式數(shù)字脈壓工程實(shí)現(xiàn),除了算法實(shí)現(xiàn)的IP核外,關(guān)鍵還在于FPGA各項(xiàng)資源的消耗能否支撐。由于脈壓的FFT和IFFT運(yùn)算占用較多用于數(shù)據(jù)緩存的Block RAM資源、用于乘加運(yùn)算的DSP48E1資源,以及用于邏輯運(yùn)算的Slice資源,因此在實(shí)際工程應(yīng)用時(shí)需要對(duì)Fast Fourier Transform核進(jìn)行優(yōu)化設(shè)計(jì),通過(guò)設(shè)置此IP核的參數(shù)使得FPGA內(nèi)的各種資源能夠均衡使用。
以Xilinx公司資源與性能較優(yōu)的7系列FPGA XC7VX690T為數(shù)字脈壓開發(fā)平臺(tái),窄帶4個(gè)接收通道32點(diǎn)~4K點(diǎn)共計(jì)8種長(zhǎng)度的數(shù)字脈壓算法對(duì)FPGA主要資源的使用情況,以及與數(shù)字中頻接收系統(tǒng)原有的窄帶4通道、多帶寬、多抽取率DDC和數(shù)據(jù)打包等功能綜合的一體化設(shè)計(jì)資源占用情況如表1所示。
表1 窄帶4通道脈壓及綜合設(shè)計(jì)FPGA資源
從表1中FPGA主要資源的使用情況可以看出,能夠在單片F(xiàn)PGA內(nèi)實(shí)現(xiàn)窄帶4通道數(shù)字下變頻、數(shù)字脈壓及數(shù)據(jù)打包的一體化工程設(shè)計(jì)。在傳統(tǒng)數(shù)字接收功能基礎(chǔ)上增加數(shù)字脈壓算法,將有助于提升數(shù)字中頻接收系統(tǒng)的處理能力,同時(shí)可以減輕信號(hào)處理系統(tǒng)的數(shù)據(jù)運(yùn)算壓力,達(dá)到雷達(dá)接收及處理系統(tǒng)綜合優(yōu)化設(shè)計(jì)的目的。
基于FPGA的運(yùn)算通常以定點(diǎn)為主,這與DSP的浮點(diǎn)運(yùn)算相比,存在計(jì)算精度誤差。但是FPGA的定點(diǎn)運(yùn)算過(guò)程能夠擴(kuò)展數(shù)據(jù)位數(shù),減少對(duì)中間計(jì)算過(guò)程的數(shù)據(jù)位截取,以盡可能靠近浮點(diǎn)運(yùn)算的精度。通過(guò)對(duì)FFT、復(fù)乘和IFFT各級(jí)運(yùn)算的數(shù)據(jù)截位進(jìn)行合理優(yōu)化,既能保證FPGA各項(xiàng)資源的均衡使用,又使定點(diǎn)運(yùn)算精度能夠滿足雷達(dá)系統(tǒng)的應(yīng)用需求。
以基帶線性調(diào)頻信號(hào)的數(shù)據(jù)長(zhǎng)度4K點(diǎn)進(jìn)行數(shù)字脈壓為例,脈壓匹配函數(shù)加Hamming窗,基于FPGA的窄帶線性調(diào)頻信號(hào)數(shù)字脈壓仿真結(jié)果如圖6所示。在FPGA開發(fā)環(huán)境基于IP核的數(shù)字脈壓仿真獲得了很好的效果,能夠滿足雷達(dá)系統(tǒng)對(duì)運(yùn)算精度的要求。
圖6 4K點(diǎn)脈壓FPGA仿真結(jié)果
在數(shù)字中頻接收系統(tǒng)僅實(shí)現(xiàn)ADC采樣、數(shù)字下變頻及數(shù)據(jù)打包等功能的基礎(chǔ)上,增加傳統(tǒng)上在處理系統(tǒng)實(shí)現(xiàn)的脈壓功能。在單片F(xiàn)PGA內(nèi)實(shí)現(xiàn)窄帶多通道數(shù)字下變頻、多長(zhǎng)度數(shù)字脈壓和數(shù)據(jù)打包的一體化設(shè)計(jì),能夠有效地提升數(shù)字中頻接收系統(tǒng)的綜合預(yù)處理能力。將數(shù)字脈壓由信號(hào)處理系統(tǒng)提前到數(shù)字中頻接收系統(tǒng)的FPGA中實(shí)現(xiàn),這樣有助于減輕信號(hào)處理系統(tǒng)的數(shù)據(jù)處理壓力,對(duì)優(yōu)化雷達(dá)接收及處理系統(tǒng)的架構(gòu)均衡設(shè)計(jì)具有積極作用。
[1]伍小保,王冰,陶玉龍.基于FPGA多通道多帶寬多速率DDC設(shè)計(jì)[J].雷達(dá)科學(xué)與技術(shù),2016,14(4):403-410.
[2]關(guān)濤,朱運(yùn)航,常文革,等.數(shù)字下變頻與脈沖壓縮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].雷達(dá)科學(xué)與技術(shù),2010,8(2):133-138.
[3]顧峰,戴健.一種基于FPGA的頻域脈沖壓縮處理器的實(shí)現(xiàn)[J].艦船電子對(duì)抗,2016,39(4):105-109.
[4]王利華,胡志東.基于乒乓結(jié)構(gòu)的數(shù)據(jù)打包技術(shù)[J].信息通信,2014(3):20-21.
[5]孫娟,韓濤,李彬,等.基于FPGA IP核的脈沖壓縮算法的實(shí)現(xiàn)[J].空間電子技術(shù),2015,12(2):63-67.
[6]邢冠培,孟凡利.基于Xilinx FPGA IP核的浮點(diǎn)頻域脈沖壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)試,2015(15):28-30.