(1.航天工程大學(xué) 電子與光學(xué)工程系,北京 101416;2.西昌衛(wèi)星發(fā)射中心,四川 西昌 615606;3.西安衛(wèi)星測(cè)控中心,西安 710043)
SUMPLE算法由于實(shí)現(xiàn)較簡(jiǎn)單、運(yùn)算量合理、合成效率高,是天線組陣合成最重要算法之一[1-4]。信號(hào)合成器需要接入所有天線的接收信號(hào),并同時(shí)對(duì)所有天線信號(hào)進(jìn)行權(quán)值計(jì)算。當(dāng)天線組陣規(guī)模較大時(shí),會(huì)帶來(lái)兩個(gè)問(wèn)題:一是很難將所有天線的接收信號(hào)同時(shí)傳輸至信號(hào)合成器;二是受限于單個(gè)信號(hào)處理設(shè)備的處理能力,信號(hào)合成器很難同時(shí)對(duì)所有天線接收信號(hào)進(jìn)行權(quán)值計(jì)算和合成。因此,限制了SUMPLE算法在大規(guī)模天線組陣中的應(yīng)用。在通用計(jì)算平臺(tái)上進(jìn)行信號(hào)處理已經(jīng)得到了應(yīng)用[5-7],為大規(guī)模天線組陣的信號(hào)合成提供了新思路。典型的通用計(jì)算平臺(tái)是中央處理器(Central Processing Unit,CPU)和通用圖形處理器(Graphics Processing Unit,GPU)異構(gòu)系統(tǒng)[8-10],本文對(duì)CPU-GPU異構(gòu)系統(tǒng)上的并行合成方法進(jìn)行研究。
國(guó)內(nèi)對(duì)天線組陣并行合成方法的研究比較少。文獻(xiàn)[11]提出了兩種SUMPLE算法的分級(jí)實(shí)現(xiàn)方法,分別是全增益和部分增益實(shí)現(xiàn)方法。其基本原理是將所有天線分為若干天線組,首先在天線組內(nèi)合成,然后將不同天線組的合成信號(hào)繼續(xù)合成,降低了需要同時(shí)傳輸至信號(hào)合成器的信號(hào)路數(shù),避免了信號(hào)合成器同時(shí)對(duì)所有天線進(jìn)行合成。不足之處是部分增益法存在信噪比(Signal-to-Noise Ratio,SNR)損失,也沒有對(duì)兩種方法在CPU-GPU異構(gòu)系統(tǒng)上的可行性進(jìn)行分析。
本文將文獻(xiàn)[11]提出的全增益實(shí)現(xiàn)方法稱為多天線組合成方法(Multi Antenna Group Method,MAGM),詳細(xì)研究了該方法的實(shí)現(xiàn)步驟,對(duì)其在CPU-GPU上的可行性進(jìn)行分析。提出了一種多信號(hào)塊合成方法(Multi Signal Block Method,MSBM),基本原理是將同一積分段內(nèi)的所有天線信號(hào)發(fā)送到一個(gè)節(jié)點(diǎn)進(jìn)行處理,不同節(jié)點(diǎn)處理不同積分段的信號(hào),如此便可延長(zhǎng)每個(gè)積分段的信號(hào)傳輸時(shí)間和處理時(shí)間,降低各處理節(jié)點(diǎn)的數(shù)據(jù)傳輸速率,減小各處理節(jié)點(diǎn)的計(jì)算壓力。MSBM同時(shí)處理不同積分段的信號(hào),而廣泛應(yīng)用的SUMPLE算法通過(guò)前一個(gè)積分段的權(quán)值推算當(dāng)前積分段的權(quán)值,必須按照時(shí)間先后順序依次處理,不能滿足要求。本文研究了SUMPLE算法的積分段內(nèi)迭代方法,消除了權(quán)值計(jì)算的時(shí)間依賴,并仿真分析了其合成性能。
設(shè)定天線組陣系統(tǒng)由Nant個(gè)天線組成,各天線接收信號(hào)可表示為
Si,k=si,k+ni,k,i=1,2,…,Nant。
(1)
式中:下標(biāo)k和i分別表示時(shí)間序號(hào)和天線序號(hào),si,k、ni,k和Si,k分別表示第i個(gè)天線k時(shí)刻的信號(hào)、噪聲和含有噪聲的信號(hào)。信號(hào)合成時(shí)的權(quán)值系數(shù)可表示為
Wi,K=wi,K+ηi,K,i=1,2,…,Nant。
(2)
式中:下標(biāo)K是以積分段為單位的時(shí)間序號(hào),wi,K是理想權(quán)值,ηi,K是由噪聲引起的權(quán)值估計(jì)誤差。
SUMPLE算法將每個(gè)天線接收信號(hào)與其他所有天線的加權(quán)和進(jìn)行相關(guān),得到復(fù)權(quán)值,進(jìn)而對(duì)所有信號(hào)進(jìn)行加權(quán)合成。第i個(gè)天線的第K+1個(gè)積分段的權(quán)值Wi,K+1由Wi,K遞推得到:
(3)
式中:L是積分段的采樣點(diǎn)數(shù);上標(biāo)*表示復(fù)共軛;RK+1是歸一化幅度因子,滿足
(4)
常用的SUMPLE迭代發(fā)生在積分段之間,本文稱為積分段間迭代方法,如圖1所示。第K+1個(gè)積分段權(quán)值由第K個(gè)積分段的權(quán)值遞推得到,這使得必須按照時(shí)間先后順序計(jì)算不同積分段的權(quán)值,約束了算法的并行性。
圖1 SUMPLE算法的積分段間迭代方法Fig.1 Iterative method between the integral time intervals
本文根據(jù)并行分解原理不同,將并行合成方法分為MAGM和MSBM。MAGM基于任務(wù)分解原理,通過(guò)將大量天線合成任務(wù)分解為多個(gè)天線組的合成任務(wù),相當(dāng)于將一個(gè)復(fù)雜任務(wù)分解為大量可并發(fā)執(zhí)行的子任務(wù)。MSBM基于數(shù)據(jù)分解原理,將信號(hào)流分解為多個(gè)相對(duì)獨(dú)立的信號(hào)塊,并發(fā)處理信號(hào)塊。下面對(duì)這兩種方法及其實(shí)時(shí)性進(jìn)行分析,分析采用以下參數(shù):天線數(shù)量為500;接收信號(hào)采樣率為100 MHz,12 bit采樣;采樣積分段長(zhǎng)度為1×105,時(shí)長(zhǎng)為1 ms。GPU 型號(hào)為TESLA K80,雙精度浮點(diǎn)性能為2.91 Tflop;在現(xiàn)有PCI-e3.0總線條件下,其帶寬為16 GByte/s。
將所有天線分為若干天線組,首先在天線組內(nèi)合成,然后將不同天線組的合成信號(hào)繼續(xù)合成。合成器分為一級(jí)合成器、二級(jí)合成器等多級(jí)合成器。MAGM的基本原理如圖2所示。
圖2 MAGM的原理Fig.2 The principle of MAGM
方法詳細(xì)步驟如下:
Step1 初始化各合成器的權(quán)值。
Step2 一級(jí)合成器根據(jù)前一積分段的權(quán)值進(jìn)行加權(quán)合成。
Step3 二級(jí)合成器根據(jù)前一積分段的權(quán)值進(jìn)行加權(quán)合成。
Step4 將總合成信號(hào)反饋到各級(jí)合成器。
Step5 一級(jí)合成器根據(jù)總合成信號(hào)進(jìn)行權(quán)值計(jì)算、加權(quán)合成。
Step6 二級(jí)合成器根據(jù)總合成信號(hào),對(duì)一級(jí)合成器的合成信號(hào)進(jìn)行權(quán)值計(jì)算、加權(quán)合成。
重復(fù)Step 2~6,可持續(xù)進(jìn)行信號(hào)合成。在CPU-GPU異構(gòu)系統(tǒng)上的計(jì)算流程如圖3所示。
圖3 MAGM的計(jì)算流程Fig.3 Processing flow of MAGM
下面從單個(gè)合成器和MAGM兩方面進(jìn)行實(shí)時(shí)性分析。
(1)單個(gè)合成器的實(shí)時(shí)性分析
設(shè)單個(gè)合成器能夠處理M路信號(hào),那么滿足以下實(shí)時(shí)性條件:數(shù)據(jù)傳輸時(shí)間與處理時(shí)間之和小于積分時(shí)間,即
(5)
式中:D1=ML是數(shù)據(jù)傳輸總量,D2=ML是運(yùn)算量,L是積分段點(diǎn)數(shù),B是傳輸帶寬,P是GPU的雙精度浮點(diǎn)性能。把具體數(shù)值代入求得M<102.4,即單個(gè)合成器最多能實(shí)現(xiàn)102路信號(hào)實(shí)時(shí)合成。實(shí)際情況要遠(yuǎn)遠(yuǎn)糟糕,PCI-e不會(huì)達(dá)到理論傳輸速度,算法不能完全并行化,GPU也不會(huì)達(dá)到計(jì)算峰值。
(2)MAGM的實(shí)時(shí)性分析
若MAGM只有兩級(jí)合成器,即一級(jí)合成器數(shù)量是N1,二級(jí)合成器數(shù)量是1,那么能夠處理最多M×N1路天線信號(hào)。如果增加三級(jí)合成器,二級(jí)合成數(shù)量是N2,那么能夠處理最多M2×N2路信號(hào)。為了方便,下面只分析到二級(jí)合成器。
對(duì)于500個(gè)天線的合成問(wèn)題,顯然有
M×N1=500 。
(6)
MAGM能夠滿足實(shí)時(shí)性,必須在積分段時(shí)長(zhǎng)內(nèi)完成Step 2~6的處理,即
(7)
式中:Ttotal是完成Step 2~6的時(shí)間,
Ttotal=max{T2(1),…,T2(N1)}+T3+
max{T5(1),…,T5(N1)}+T6。
(8)
式中:T的下標(biāo)表示步驟序號(hào),如T2(N1)是Step 2中第N1個(gè)一級(jí)合成器的處理時(shí)間。由于Step 3要等待Step 2的所有一級(jí)合成器完成處理,Step 6要等待Step 5的所有一級(jí)合成器完成處理,因此Step 2和Step 5的處理時(shí)間是所有一級(jí)合成器處理時(shí)間的最大值。但為了方便分析Ttotal,本文假設(shè)Step 2和Step 5中所有一級(jí)合成器的處理時(shí)間相等:
(9)
那么,式(8)可以簡(jiǎn)化為
Ttotal=T2+T3+T5+T6。
(10)
每一個(gè)T由兩部分組成,一是內(nèi)存和GPU顯存之間的數(shù)據(jù)拷貝時(shí)間Ttran,二是GPU計(jì)算時(shí)間Tpro。顯然,Ttotal也由這兩部分組成,記為Ttotal,tran和Ttotal,pro:
Ttotal=Ttotal,tran+Ttotal,pro。
(11)
Step 2~6中由CPU拷貝到GPU的數(shù)據(jù)總量D1是
D1=(M+1)L+(N1+1)L+2L+(N1+1)L=
(12)
把式(6)代入式(12)得到
D1≥68.2L。
(13)
對(duì)于這些數(shù)據(jù)量,當(dāng)PCI-e速度達(dá)到理論峰值時(shí),所需傳輸時(shí)間是Ttotal,tran=6.4 ms,遠(yuǎn)遠(yuǎn)超過(guò)了積分段時(shí)間1 ms。可見,在MAGM中,CPU與GPU之間有大量、頻繁的數(shù)據(jù)傳輸。在本文假設(shè)條件下,僅僅數(shù)據(jù)傳輸時(shí)間就遠(yuǎn)遠(yuǎn)超過(guò)積分段時(shí)間,無(wú)法達(dá)到實(shí)時(shí)性要求。因此,MAGM不適用于CPU-GPU異構(gòu)系統(tǒng)。
MSBM將高速數(shù)字信號(hào)按時(shí)間先后順序分流到多個(gè)合成器上,每個(gè)合成器負(fù)責(zé)一個(gè)積分段的所有天線的合成處理,圖4所示為其基本原理,其中,A(i,j)表示第i個(gè)天線的第j個(gè)積分段。各天線將采樣信號(hào)送入信號(hào)池中,信號(hào)池將同一個(gè)積分時(shí)間段內(nèi)的信號(hào)打包送至任務(wù)空閑的合成器中。對(duì)單個(gè)合成器而言,由于接收到了所有天線的信號(hào),所以合成器不需要總合成信號(hào)的反饋輔助。
圖4 MSBM原理Fig.4 The principle of MSBM
其詳細(xì)步驟如下:
Step1 初始化合成器的權(quán)值。
Step2 接收積分段。
Step3 權(quán)值計(jì)算,加權(quán)合成。
下面對(duì)MSBM的實(shí)時(shí)性進(jìn)行分析。一個(gè)積分段的處理時(shí)間Ttotal包含兩部分,一是傳輸時(shí)間,將所有天線的信號(hào)從信號(hào)池傳輸?shù)胶铣善魉馁M(fèi)時(shí)間;二是計(jì)算時(shí)間。對(duì)于任意的Ttotal,只要合成器數(shù)量N0滿足式(14)即可保證實(shí)時(shí)性:
(14)
式(14)的物理意義如圖5所示,合成器1從積分段①的起始時(shí)刻開始接收信號(hào),然后處理。合成器2在積分段②到來(lái)之前保持空閑,從積分段②的起始時(shí)刻開始接收信號(hào),然后處理。合成器1處理完積分段①后,保持空閑,直到積分段③的起始時(shí)刻。同理,合成器2處理完積分段②后,保持空閑,直到積分段④的起始時(shí)刻。如此循環(huán)往復(fù),兩個(gè)合成器輪流對(duì)信號(hào)進(jìn)行合成,能夠滿足實(shí)時(shí)性要求。
圖5 公式(11)的物理意義Fig.5 The physical meaning of Formula (11)
當(dāng)Ttotal增大時(shí),可以通過(guò)增加合成器的數(shù)量以保持處理的實(shí)時(shí)性,具有兩點(diǎn)好處:一是可以降低合成器的接收速率,減少單個(gè)合成器的帶寬需求;二是可以降低合成器的處理速率,減少單個(gè)合成器的計(jì)算速度需求。
理論上通過(guò)增加合成器的數(shù)量就可以無(wú)限提高方法的處理能力。以本節(jié)假設(shè)為例,500個(gè)天線的積分段時(shí)長(zhǎng)是1 ms,信號(hào)總量是7.5×107Byte,在 16 GByte/s速率下,需要4.7 ms傳輸時(shí)間。對(duì)500個(gè)天線做相關(guān)處理,需要5×107次乘加運(yùn)算,假如在TESLA K80 GPU上運(yùn)行并且能完全利用其浮點(diǎn)性能,也至少需要0.02 ms。因此,理論情況下1 ms的積分段需要4.72 ms處理時(shí)間,5個(gè)合成器即可達(dá)到實(shí)時(shí)處理。
MSBM要求各積分段能夠并行處理,而常用的SUMPLE算法采用積分段間迭代方法,導(dǎo)致各積分段間存在明顯的依賴關(guān)系。本文研究了積分段內(nèi)的迭代方法,其流程如圖6所示。在積分段的處理中,各天線權(quán)值的初值為0相位,按式(3)進(jìn)行遞推,求得各天線權(quán)值的更新值;根據(jù)更新值進(jìn)行加權(quán)合成,估計(jì)得到合成信號(hào)的SNR,當(dāng)相鄰兩次合成SNR的變化量ΔSNR小于一定值時(shí)停止迭代,否則繼續(xù)迭代。設(shè)停止迭代時(shí)的迭代次數(shù)是Niter,這種積分段內(nèi)迭代方法的運(yùn)算量為NiterNantL。
圖6 SUMPLE算法的積分段內(nèi)迭代方法Fig.6 Iterative method inside the integral time interval
本文研究積分段內(nèi)迭代方法的目的是為了對(duì)SUMPLE算法進(jìn)行改造,使不同積分段的處理相互獨(dú)立,以適用于MSBM方法。只要積分段內(nèi)迭代方法的性能與積分段間迭代方法的性能相當(dāng),就達(dá)到預(yù)期。對(duì)SUMPLE算法的積分段內(nèi)迭代方法和積分段間迭代方法進(jìn)行仿真,參數(shù)如下:天線數(shù)量為20;迭代次數(shù)為15;積分長(zhǎng)度為100 000;SNR為-15 dB、-10 dB和0 dB;信號(hào)形式為單點(diǎn)頻信號(hào),頻率為1 MHz;采樣率為4 MHz。進(jìn)行500次蒙特卡洛仿真,得到如圖7所示的結(jié)果。
(a)SNR=0 dB
(b)SNR=-10 dB
(c)SNR=-15 dB圖7 兩種迭代方法的合成性能仿真結(jié)果Fig.7 Combining performance simulation results of two iterative methods
由仿真結(jié)果可得,在3種信噪比下,兩種迭代方法的收斂過(guò)程和收斂后的合成性能是基本一致的,這已經(jīng)達(dá)到了預(yù)期要求,可以將積分段內(nèi)迭代方法應(yīng)用到MSBM中,而不帶來(lái)額外的合成損失。此外,段內(nèi)迭代方法的抖動(dòng)要小,對(duì)其原因進(jìn)行分析如下:段內(nèi)迭代方法是在一個(gè)積分段內(nèi)多次迭代,不斷提高權(quán)值估計(jì)精度,所以合成損失隨迭代過(guò)程越來(lái)越小。段間迭代方法的每次迭代對(duì)應(yīng)不同的積分段,對(duì)于每個(gè)積分段,只進(jìn)行了一次權(quán)值計(jì)算,精度要低于段內(nèi)迭代方法,即使迭代收斂之后,每次迭代的權(quán)值計(jì)算精度不盡相同,引起的合成損失也不一樣,所以合成損失隨迭代過(guò)程抖動(dòng)較大。
本文圍繞通用計(jì)算平臺(tái)上的大規(guī)模天線組陣合成方法展開研究,對(duì)MAGM和MSBM的實(shí)時(shí)性進(jìn)行分析,結(jié)論是:MAGM需要大量頻繁數(shù)據(jù)通信,不適用于通用計(jì)算平臺(tái);MSBM通過(guò)增加合成器數(shù)量,降低合成器的通信帶寬和處理速度需求,具有很大的處理能力提升空間,且適用于通用計(jì)算平臺(tái)。研究了SUMPLE算法的積分段內(nèi)迭代方法,其與積分段間迭代方法具有相同的合成性能。本文研究結(jié)果對(duì)在通用計(jì)算平臺(tái)上進(jìn)行大規(guī)模天線組陣信號(hào)合成具有一定的指導(dǎo)意義。下一步將結(jié)合具體CPU-GPU平臺(tái)進(jìn)行實(shí)現(xiàn)驗(yàn)證。