康 婧, 安軍社, 王冰冰, 張偉東
(1.中國(guó)科學(xué)院復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室(中國(guó)科學(xué)院國(guó)家空間科學(xué)中心), 北京 100190;2.中國(guó)科學(xué)院大學(xué), 北京 100190)
隨著空間探測(cè)任務(wù)需求日益提升,航天器攜帶的載荷設(shè)備趨于精密多樣,星地鏈路傳輸數(shù)據(jù)量大幅增加.而大部分對(duì)地觀測(cè)衛(wèi)星為近地軌道(low Earth orbit,LEO)衛(wèi)星,其特點(diǎn)是單次過(guò)境時(shí)間短,為保證在有限時(shí)間內(nèi)傳輸更多數(shù)據(jù),星地鏈路需支持更高的數(shù)傳速率[1].在傳輸帶寬不變的情況下,通常將高階調(diào)制技術(shù)與高效編譯碼算法相結(jié)合來(lái)提升數(shù)傳速率,但同樣誤碼率接收高階調(diào)制信號(hào)相較于低階調(diào)制信號(hào)需要更大的信噪比,意味著需要提高信號(hào)發(fā)射功率.另一方面,LEO衛(wèi)星通常采用固定編碼調(diào)制(constant coding modulation,CCM)數(shù)傳體制,其按照確保地面天線5°仰角時(shí)的數(shù)據(jù)接收設(shè)計(jì)編碼調(diào)制方式,而衛(wèi)星過(guò)境過(guò)程中,由于天氣、傳輸距離變化等原因,星上發(fā)射功率并未得到充分利用[2].為充分利用星上發(fā)射功率并最大化衛(wèi)星過(guò)境時(shí)下傳的載荷數(shù)據(jù)量,可采用可變編碼調(diào)制(variable coding modulation,VCM)數(shù)傳體制[3-4].
目前有兩種支持VCM的通信標(biāo)準(zhǔn):一種是藍(lán)皮書(shū)中的串行級(jí)聯(lián)卷積碼(serially concatenated convolutional codes,SCCC)[5],另一種是基于歐洲電信標(biāo)準(zhǔn)化協(xié)會(huì)(European Telecommunication Standards Institute,ETSI)制定的第二代數(shù)字視頻廣播(the second generation digital video broadcast,DVB-S2)標(biāo)準(zhǔn)[6], 其中DVB-S2標(biāo)準(zhǔn)采用BCH(Bose-Chaudhuri-Hochquenghem)為外碼,LDPC(low-density parity-check)碼為內(nèi)碼的級(jí)聯(lián)編碼方式.LDPC碼[7]由Gallager于1962年提出,是一種逼近Shannon極限的線性分組碼[8],具有譯碼復(fù)雜度低、誤碼平層低等優(yōu)勢(shì).文獻(xiàn)[9-16]對(duì)DVB-S2標(biāo)準(zhǔn)LDPC編碼進(jìn)行了研究,其中文獻(xiàn)[11]實(shí)現(xiàn)了基于DVB-S2標(biāo)準(zhǔn)的LDPC編碼器,設(shè)計(jì)時(shí)將雙口RAM配置成先讀后寫(xiě)模式,同一時(shí)刻完成兩個(gè)校驗(yàn)比特更新,可使編碼速率達(dá)到328 Mb/s,但其采用的存儲(chǔ)結(jié)構(gòu)最多支持兩路并行,不能滿足更高傳輸速率的要求;文獻(xiàn)[12]提出了一種新型的校驗(yàn)比特存儲(chǔ)方案,設(shè)計(jì)實(shí)現(xiàn)了串行和并行兩種編碼器,最高編碼速率可達(dá)926 Mb/s,但其采用了45個(gè)RAM存儲(chǔ)塊,需要占用較多邏輯資源實(shí)現(xiàn)對(duì)RAM存儲(chǔ)塊的讀寫(xiě)控制;文獻(xiàn)[13-16]基于DVB-S2標(biāo)準(zhǔn)非規(guī)則重復(fù)累積LDPC碼(Irregular repeated accumulated,IRA-LDPC)的特點(diǎn),充分利用編碼算法中的并行性,實(shí)現(xiàn)了吞吐率高達(dá)Gb/s的編碼器,但編碼輸出不是按順序輸出,需要與較復(fù)雜的比特交織模塊相結(jié)合.本文基于實(shí)際衛(wèi)星型號(hào)任務(wù)VCM數(shù)傳應(yīng)用,提出了一種基于DVB-S2標(biāo)準(zhǔn)的快速累加并向遞歸編碼算法,并在XC7K325t-3fbg900 FPGA上設(shè)計(jì)實(shí)現(xiàn)了一種高效低功耗LDPC編碼器.
DVB-S2標(biāo)準(zhǔn)中采用的LDPC碼是IRA-LDPC碼,其校驗(yàn)矩陣為
(1)
式中:B為下三角階梯矩陣;A為稀疏矩陣,且A的列向量按順序每360列構(gòu)成一個(gè)分組,每個(gè)分組第j(1≤j≤360)個(gè)列向量中1的位置可根據(jù)式(2)計(jì)算得到.
{di+(j-1)·q}mod(n-k),i∈{1,2,…,v}.
(2)
式中:di為每個(gè)分組首列列向量中第i個(gè)1的初始校驗(yàn)地址,v為此列向量的列重,q為標(biāo)準(zhǔn)中給出的數(shù)值,n為碼長(zhǎng),k為信息比特長(zhǎng)度.
IRA-LDPC碼是系統(tǒng)碼,其碼字為
C=[I|P].
(3)
LDPC編碼的實(shí)質(zhì)為在二元域上求解式(4)所示的線性方程組.
H·CT=0.
(4)
由于B矩陣的雙對(duì)角線結(jié)構(gòu),校驗(yàn)比特可由方程組(5)遞歸計(jì)算得到:
(5)
式中⊕為二元域上的加法.
(6)
由方程組(6)可知,校驗(yàn)比特的計(jì)算是一個(gè)對(duì)Sr在二元域累加的過(guò)程.設(shè)編碼并行度為M,即同一時(shí)刻參與運(yùn)算的信息比特為M位,實(shí)際應(yīng)用時(shí),M的取值可根據(jù)VCM模式設(shè)置.進(jìn)一步,可根據(jù)式(7)并向遞歸計(jì)算Sr.
forc=0∶M∶k-M
for eachr∈CN(c) do
Sr=Sr⊕ic
S(r+q)mod(n-k)=S(r+q)mod(n-k)⊕ic+1
?
Sr+(M-1)·qmod(n-k)=Sr+(M-1)·qmod(n-k)⊕ic+M-1
end
end
(7)
利用二進(jìn)制計(jì)算的特點(diǎn),式(7)中Sr計(jì)算可簡(jiǎn)化為
(8)
為快速并向遞歸計(jì)算Sr,根據(jù)編碼并行度M,可按式(9)存儲(chǔ)Sr,其中L=(n-k)/M.
(9)
當(dāng)所有信息比特參與完運(yùn)算,按式(10)快速并向遞歸計(jì)算校驗(yàn)比特,且輸出為順序輸出.
(10)
以運(yùn)行高度為600 km的近地衛(wèi)星為例,衛(wèi)星在仰角>5°時(shí)建立數(shù)傳鏈路,其鏈路參數(shù)見(jiàn)表1.
表1 某近地衛(wèi)星數(shù)傳鏈路設(shè)計(jì)參數(shù)
圖1(a)所示為鏈路預(yù)算結(jié)果.從圖中可看出隨著仰角變化,鏈路預(yù)算結(jié)果動(dòng)態(tài)變化,在本例中,衛(wèi)星過(guò)境期間存在著11.8 dB的鏈路信噪比波動(dòng).(注:圖中90°~175°仰角對(duì)應(yīng)實(shí)際90°~5°仰角)
根據(jù)鏈路預(yù)算結(jié)果和文獻(xiàn)[3]中提出的VCM流程設(shè)計(jì)方法,確定了本文如圖1(b)所示VCM模式切換方案:當(dāng)5°≤衛(wèi)星仰角≤15°時(shí),采用碼長(zhǎng)n=16 200,碼率R=2/3,調(diào)制方式為8PSK的modcod1模式;當(dāng)15°<衛(wèi)星仰角≤25°時(shí),采用碼長(zhǎng)n=16 200,碼率R=2/3,調(diào)制方式為16APSK的modcod2模式;當(dāng)衛(wèi)星仰角>25°時(shí),采用碼長(zhǎng)n=16 200,碼率R=4/5,調(diào)制方式為16APSK的modcod3模式.
圖1 鏈路預(yù)算結(jié)果和VCM模式切換流程
針對(duì)上述VCM數(shù)傳系統(tǒng)需求,設(shè)計(jì)了基于快速累加并向遞歸編碼算法的高效低功耗LDPC編碼器,結(jié)構(gòu)框圖見(jiàn)圖2.主要包括控制模塊、校驗(yàn)地址計(jì)算模塊、校驗(yàn)比特中間變量Sr計(jì)算模塊、輸出處理模塊.其中校驗(yàn)地址計(jì)算模塊包括初始校驗(yàn)地址存儲(chǔ)ROM、校驗(yàn)地址及偏移量計(jì)算模塊;校驗(yàn)比特中間變量Sr計(jì)算模塊包括校驗(yàn)比特中間變量存儲(chǔ)SrRAM和取反邏輯;輸出處理模塊包括狀態(tài)控制模塊和異或邏輯.
圖2 高效低功耗LDPC編碼器結(jié)構(gòu)框圖
控制模塊是編碼器的核心模塊,主要由狀態(tài)機(jī)和控制信號(hào)組成,其作用是根據(jù)VCM模式的設(shè)置動(dòng)態(tài)重構(gòu)編碼器,完成各模塊間的有序切換并保證模塊內(nèi)部各功能的正確實(shí)現(xiàn).編譯時(shí),針對(duì)VCM設(shè)置參數(shù)進(jìn)行綜合適配,改變模塊內(nèi)部結(jié)構(gòu)和相互之間的連接關(guān)系,生成針對(duì)用戶設(shè)定的可執(zhí)行文件.控制模塊端口信號(hào)及其說(shuō)明見(jiàn)表2.
表2 控制模塊端口信號(hào)及說(shuō)明
圖3為高效低功耗LDPC編碼器的工作流程圖.校驗(yàn)地址計(jì)算模塊按照分級(jí)存儲(chǔ)指針從ROM中對(duì)分級(jí)存儲(chǔ)的初始校驗(yàn)地址進(jìn)行讀取,并根據(jù)初始校驗(yàn)地址計(jì)算出該信息比特對(duì)應(yīng)的校驗(yàn)地址和偏移量;校驗(yàn)比特中間變量Sr計(jì)算模塊在SrRAM讀寫(xiě)時(shí)序及讀寫(xiě)使能控制下,讀取該校驗(yàn)地址中的數(shù)值,并根據(jù)當(dāng)前信息比特的取值在下一時(shí)鐘周期將取反后的數(shù)值寫(xiě)入同一地址;當(dāng)一幀數(shù)據(jù)的所有信息比特輸入完畢,Sr計(jì)算也隨之結(jié)束,此時(shí)從零地址開(kāi)始讀取SrRAM中的值送入輸出處理模塊,并將SrRAM中內(nèi)容清零,保證下一幀數(shù)據(jù)編碼的正確性;輸出處理模塊通過(guò)編碼器狀態(tài)參數(shù)的控制對(duì)分布式存儲(chǔ)的Sr進(jìn)行異或得到最終的校驗(yàn)比特,按順序并行輸出信息比特和校驗(yàn)比特.
圖3 編碼器工作流程
圖4為校驗(yàn)地址計(jì)算模塊結(jié)構(gòu).校驗(yàn)地址計(jì)算模塊由初始校驗(yàn)地址存儲(chǔ)ROM、校驗(yàn)地址及偏移量計(jì)算模塊組成,用于完成當(dāng)前信息比特對(duì)應(yīng)的校驗(yàn)地址和偏移量計(jì)算.
圖4 校驗(yàn)地址計(jì)算模塊結(jié)構(gòu)框圖
利用ROM存儲(chǔ)初始校驗(yàn)地址,且對(duì)不同VCM模式的初始校驗(yàn)地址進(jìn)行指針式分級(jí)存儲(chǔ).當(dāng)輸入為每個(gè)分組的第1個(gè)信息比特時(shí),根據(jù)分級(jí)存儲(chǔ)指針從ROM相應(yīng)地址中讀取初始校驗(yàn)地址,組內(nèi)其余信息比特的校驗(yàn)地址由式(2)計(jì)算.為節(jié)省資源,式中乘法用累加方式代替,求模運(yùn)算用減法和選擇器實(shí)現(xiàn).針對(duì)式(9)設(shè)計(jì)的Sr存儲(chǔ)結(jié)構(gòu),利用除法器按照式(11)、(12)計(jì)算組內(nèi)信息比特對(duì)應(yīng)的SrRAM校驗(yàn)地址Vaddr和偏移量Voffset.
Vaddr=floor(x/M),
(11)
Voffset=mod(x,M).
(12)
式中:floor為取整函數(shù),mod為取模函數(shù),x為由式(2)計(jì)算出的校驗(yàn)地址.
校驗(yàn)比特中間變量Sr計(jì)算模塊是高效低功耗LDPC編碼器的重要模塊,該模塊利用雙端口RAM按照式(7)、(8)、(10)完成對(duì)中間變量Sr的存儲(chǔ)與更新計(jì)算.由式(7)內(nèi)層循環(huán)可知,每個(gè)Sr更新需要v個(gè)時(shí)鐘,為縮短編碼周期,提高編碼數(shù)據(jù)吞吐率,本文采用分布式存儲(chǔ)技術(shù),利用v·M個(gè)SrRAM并行處理一個(gè)信息比特對(duì)v個(gè)Sr的更新計(jì)算的同時(shí)并行計(jì)算Sr,S(r+q)mod(n-k),…,Sr+(M-1)·qmod(n-k).根據(jù)3種VCM模式需求,本文支持3、4兩種編碼并行度,分別對(duì)應(yīng)8PSK和16APSK兩種調(diào)制方式,為兼容各VCM模式,本文采用最大化存儲(chǔ)編碼策略,利用vmax·Mmax塊深度為(n-k)/Mmin、寬度為Mmax的雙端口RAM,完成Sr的存儲(chǔ)與更新計(jì)算,其中vmax為校驗(yàn)矩陣列向量列重v的最大值,Mmin和Mmax分別為編碼并行度M的最小值和最大值.編碼時(shí)由控制模塊根據(jù)VCM模式置v·M個(gè)SrRAM的使能信號(hào)有效,完成Sr的存儲(chǔ)與更新計(jì)算.
并行輸入的信息比特icic+1…ic+M-1分別送入M個(gè)存儲(chǔ)器,當(dāng)輸入信息比特ic為1時(shí),SrRAM讀使能有效,根據(jù)Vaddr讀取SrRAM中的數(shù)據(jù),同時(shí)根據(jù)Voffset值對(duì)讀出數(shù)據(jù)的相應(yīng)比特位置取反,并延遲一個(gè)時(shí)鐘周期再寫(xiě)回同一地址.當(dāng)輸入信息比特ic為0時(shí),SrRAM讀使能無(wú)效,不做任何操作,降低了編碼器功耗.當(dāng)k個(gè)信息比特全部輸入?yún)⑴c完運(yùn)算后,Sr更新計(jì)算完成,此時(shí)將v·M個(gè)SrRAM中的內(nèi)容從零地址開(kāi)始同時(shí)讀出,并將零值寫(xiě)入該地址,以保證后續(xù)的數(shù)據(jù)幀能正確編碼.
輸出處理模塊將編碼后的碼字包括信息比特和校驗(yàn)比特并行輸出至數(shù)字調(diào)制器.當(dāng)編碼器處于校驗(yàn)比特計(jì)算狀態(tài)時(shí),輸出處理模塊將并行輸入的信息比特直接輸出,并置輸出數(shù)據(jù)有效;當(dāng)編碼器處于校驗(yàn)比特輸出狀態(tài)時(shí),根據(jù)式(10)對(duì)分布式存儲(chǔ)的Sr進(jìn)行異或操作,每個(gè)時(shí)鐘完成M個(gè)校驗(yàn)比特的計(jì)算且按順序并行輸出M個(gè)校驗(yàn)比特,同時(shí)置輸出數(shù)據(jù)有效.
對(duì)提出的高效低功耗LDPC編碼器,在Xilinx XC7K325t-3fbg900型號(hào)FPGA上進(jìn)行了實(shí)現(xiàn),開(kāi)發(fā)環(huán)境為ISE14.7,與其他文獻(xiàn)編碼器硬件資源消耗對(duì)比結(jié)果見(jiàn)表3.
表3 不同文獻(xiàn)編碼器資源消耗情況
文獻(xiàn)[13-15]均是對(duì)單一碼長(zhǎng)碼率LDPC編碼器的實(shí)現(xiàn),文獻(xiàn)[16]支持2種碼長(zhǎng)和11種碼率,本文設(shè)計(jì)的編碼器兼容3種VCM模式,控制模塊有效保證了編碼器在LEO衛(wèi)星切換VCM模式時(shí)動(dòng)態(tài)自適應(yīng)調(diào)整,提高了編碼器的靈活性.
為兼容3種VCM模式,需對(duì)各VCM模式下不同初始校驗(yàn)地址進(jìn)行存儲(chǔ),且為實(shí)現(xiàn)快速累加并向遞歸編碼算法,采用了分布式存儲(chǔ)技術(shù)和最大化存儲(chǔ)編碼策略,因此本文的寄存器和存儲(chǔ)資源消耗比文獻(xiàn)[13-15]多.文獻(xiàn)[16]中設(shè)計(jì)的編碼器需要用RAM對(duì)中間變量結(jié)果以及輸入信息比特進(jìn)行緩存,占用了較多的RAM資源,而本文提出的編碼器不需要對(duì)信息進(jìn)行緩存,降低了RAM資源占用.本文設(shè)計(jì)的編碼器實(shí)現(xiàn)了硬件資源和編碼靈活性的動(dòng)態(tài)平衡.
本文提出的編碼器在輸入信息比特為1時(shí),SrRAM讀使能有效,將SrRAM中的數(shù)據(jù)讀出,并用取反操作代替異或操作;而輸入信息比特為0時(shí),讀使能無(wú)效,不對(duì)SrRAM進(jìn)行操作,降低了編碼器的功耗.使用XPower Analyzer工具對(duì)本文設(shè)計(jì)的編碼器和未經(jīng)低功耗設(shè)計(jì)的編碼器進(jìn)行功耗分析,對(duì)比結(jié)果見(jiàn)表4.
表4 功耗分析對(duì)比
表中未經(jīng)低功耗設(shè)計(jì)的編碼器是指相同硬件平臺(tái),每個(gè)時(shí)鐘均對(duì)SrRAM進(jìn)行讀寫(xiě),用異或進(jìn)行Sr更新與計(jì)算,其他模塊與本文一致的編碼器.由表4可知,利用本文方案設(shè)計(jì)的編碼器降低了21.7%的功耗,對(duì)功耗要求苛刻的LEO衛(wèi)星星上系統(tǒng)具有重要意義.
編碼數(shù)據(jù)吞吐率是衡量編碼器性能的重要指標(biāo)之一,借助Timing Analyzer工具,對(duì)本文編碼器進(jìn)行評(píng)估,其計(jì)算公式為
(13)
式中:n為碼長(zhǎng);R為碼率;fclk為系統(tǒng)時(shí)鐘,綜合編譯結(jié)果為347.5 MHz;M為編碼并行度;w為標(biāo)準(zhǔn)中給出的初始校驗(yàn)地址行數(shù);L=(n-k)/M;td為系統(tǒng)延時(shí),定義為第1個(gè)信息比特進(jìn)入編碼器到第1個(gè)信息比特輸出所需時(shí)鐘周期數(shù),實(shí)測(cè)值為26.本文提出的編碼器的數(shù)據(jù)吞吐率見(jiàn)表5.
表5 本文編碼器吞吐率
本文設(shè)計(jì)的編碼器編碼并行度可動(dòng)態(tài)切換為3或4,分別對(duì)應(yīng)8PSK和16APSK兩種調(diào)制方式,提高了編碼數(shù)據(jù)吞吐率,編碼數(shù)據(jù)吞吐率最高可達(dá)1.104 Gb/s;且編碼數(shù)據(jù)按順序輸出,不需要與復(fù)雜的交織模塊相結(jié)合,簡(jiǎn)單的行列交織之后,即可進(jìn)行比特星座映射,降低了整個(gè)VCM系統(tǒng)的實(shí)現(xiàn)復(fù)雜度,具有高效性.
對(duì)于VCM數(shù)傳系統(tǒng),其數(shù)據(jù)吞吐量TVCM,即衛(wèi)星在數(shù)傳時(shí)間內(nèi)向地面?zhèn)鬏數(shù)目傂畔⒘繛?/p>
TVCM=Tmodcod1·Δtmodcod1+Tmodcod2·Δtmodcod2+
Tmodcod3·Δtmodcod3.
(14)
利用STK仿真軟件得到每種模式持續(xù)時(shí)間Δtmodcod1= 380 s,Δtmodcod2= 280 s,Δtmodcod3= 420 s;計(jì)算得到CCM數(shù)傳系統(tǒng)(采用單一modcod1模式)數(shù)據(jù)吞吐量為746.28 Gb,而VCM數(shù)傳系統(tǒng)數(shù)據(jù)吞吐量為984.14 Gb,較CCM數(shù)傳系統(tǒng)提高了31.9%.
面對(duì)LEO衛(wèi)星VCM數(shù)傳系統(tǒng)對(duì)高通量、低功耗、高可靠性信道編碼的應(yīng)用需求,本文提出了一種基于快速累加并向遞歸編碼算法的高效低功耗LDPC編碼器.利用輸入比特的隨機(jī)性和二進(jìn)制計(jì)算的特點(diǎn),簡(jiǎn)化了Sr的計(jì)算,降低了21.7%編碼器功耗;通過(guò)控制模塊動(dòng)態(tài)重構(gòu)編碼結(jié)構(gòu),能夠兼容3種VCM模式,提高了編碼器的靈活性;采用與調(diào)制方式相匹配的存儲(chǔ)方案,能夠順序輸出M個(gè)并行比特,提高了編碼數(shù)據(jù)吞吐率,且不需要與復(fù)雜交織模塊相結(jié)合,具有高效性.結(jié)果表明,編碼數(shù)據(jù)吞吐率最高可達(dá)1.104 Gb/s,整個(gè)VCM數(shù)傳系統(tǒng)數(shù)據(jù)吞吐量較CCM系統(tǒng)提高了31.9%,且該編碼器具有低功耗、靈活性與高效性的特點(diǎn),在LEO衛(wèi)星VCM數(shù)傳系統(tǒng)中具有較高應(yīng)用價(jià)值.