田宇 盧志鵬
摘 ?要:為滿足無(wú)人機(jī)衛(wèi)星通信系統(tǒng)中高清音視頻數(shù)據(jù)高通量、低功耗、高可靠傳輸?shù)男枨?,提出一種基于DVB_S2標(biāo)準(zhǔn)的LDPC編碼器。該編碼器采用兩級(jí)并行RAM存儲(chǔ)陣列,可有效提高系統(tǒng)工作頻率,降低FPGA邏輯資源的使用率,通過(guò)控制模塊使編碼器自適應(yīng)兼容三種碼率的LDPC編碼。上述編碼器已在ZYNQ 7Z020系列芯片xc7z020clg400-2上實(shí)現(xiàn),最高穩(wěn)定工作主頻為214.4 MHz,支持1/2、3/4、7/8三種典型碼率。
關(guān)鍵詞:衛(wèi)星通信;無(wú)人機(jī);FPGA;LDPC;編碼器
中圖分類號(hào):TN911.22;TN927+.21 文獻(xiàn)標(biāo)識(shí)碼:A ? 文章編號(hào):2096-4706(2023)14-0075-05
Realization of LDPC High-speed Encoder for UAV Satellite Communication
TIAN Yu, LU Zhipeng
(Beijing Aerospace Control Instrument Research Institute, Beijing ?100854, China)
Abstract: To meet the requirements of high throughput, low power consumption, and high reliability transmission of high-definition audio and video data in UAV satellite communication systems, a LDPC encoder based on DVB_S2 standard is proposed. The encoder adopts a two-level parallel RAM storage array, which can effectively improve the system's operating frequency and reduce the utilization of FPGA logic resources. Through the control module, the encoder is adaptively compatible with LDPC encoding of three different bit rates. The above encoder has been implemented on the ZYNQ 7Z020 series chip xc7z020clg400-2, with a maximum stable operating frequency of 214.4 MHz and supporting three typical bit rates: 1/2, 3/4, and 7/8.
Keywords: satellite communication; UAV; FPGA; LDPC; encoder
0 ?引 ?言
高清音視頻數(shù)據(jù)在無(wú)人機(jī)衛(wèi)星通信領(lǐng)域的普及,使得無(wú)人機(jī)載衛(wèi)星通信傳輸?shù)臄?shù)據(jù)量大幅增加。由于無(wú)人機(jī)飛行可攜帶設(shè)備載荷重量有限,無(wú)人機(jī)載衛(wèi)星通信系統(tǒng)的系統(tǒng)容量和功耗均受到限制,相比于地面衛(wèi)星通信息系統(tǒng),無(wú)人機(jī)載衛(wèi)星通信系統(tǒng)的信道傳輸帶寬更窄、接收信噪比更低,這種環(huán)境對(duì)衛(wèi)星通信的糾錯(cuò)碼性能提出了更高的要求,以保證在帶寬受限的情況下準(zhǔn)確無(wú)誤的傳輸高清音視頻等高速數(shù)據(jù)。
第二代數(shù)字視頻廣播(the second generation digital video broadcat, DVB-S2)標(biāo)準(zhǔn)是專門為支持高清音視頻業(yè)務(wù)建立的,它更符合高清視頻數(shù)據(jù)對(duì)衛(wèi)星通信的需求。其采用BCH+LDPC級(jí)聯(lián)信道編碼,糾錯(cuò)性能接近香農(nóng)限。在支持低階調(diào)制(QPSK、8PSK)的同時(shí)還支持16APSK和32APSK高階調(diào)制,大大提高了帶寬受限情況下的數(shù)據(jù)傳輸速率。其優(yōu)秀的性能能夠支持高清音視頻數(shù)據(jù)在無(wú)人機(jī)載衛(wèi)星通信系統(tǒng)上的傳輸應(yīng)用。
為滿足高清音視頻數(shù)據(jù)在無(wú)人機(jī)衛(wèi)星通信上的應(yīng)用需求,本文作者針對(duì)DVB-S2標(biāo)準(zhǔn)的LDPC碼特性,在其基礎(chǔ)上提出一種高速率、多碼率支持的LDPC編碼器。該編碼器工作速度快,資源占用率低,能夠支持碼長(zhǎng)為16 200,碼率為1/2(4/9)、3/4(11/15)以及7/8(8/9)的三種編碼結(jié)構(gòu)。
1 ?DVB-S2標(biāo)準(zhǔn)LDPC編碼算法
LDPC碼的構(gòu)造方法有代數(shù)構(gòu)造法、準(zhǔn)循環(huán)以及隨機(jī)構(gòu)造法。隨機(jī)或偽隨機(jī)構(gòu)造方法生成的LDPC碼性能接近香農(nóng)限,DVB-S2標(biāo)準(zhǔn)中LDPC碼采用類似方法。
DVB-S2標(biāo)準(zhǔn)中LDPC碼為非規(guī)則累計(jì)碼,即IRA碼,其校驗(yàn)矩陣可以表示為H = [H1 ?H2]的形式。其中H1是一個(gè)稀疏矩陣,矩陣大小為(nldpc - kldpc)×
nldpc,其中nldpc表示LDPC碼總長(zhǎng)度,kldpc表示信息比特長(zhǎng)度。矩陣H2是固定形式矩陣,為雙對(duì)角線形式:
H1校驗(yàn)矩陣是稀疏矩陣且具有周期性。DVB-S2標(biāo)準(zhǔn)中H1可以按照每連續(xù)的360列為一組分解為kldpc/360組,且每組的列重必須相同。第m列中‘1所在行的位置由DVB-S2標(biāo)準(zhǔn)附錄B和C中表格的第 ?行對(duì)應(yīng)的數(shù)據(jù)加上m mod(360×q),其中 ?表示對(duì)m/360向下取整,q為步長(zhǎng),與LDPC碼的碼長(zhǎng)和碼率有關(guān)。
結(jié)合H1和H2兩個(gè)矩陣的特點(diǎn),其基本編碼算法步驟如下:
1)初始化校驗(yàn)位:
2)對(duì)校驗(yàn)矩陣非零位置的數(shù)據(jù)進(jìn)行累積異或。規(guī)則為:
pj = pj ⊕ im
j = {x + m mod360×q} mod(nldpc - kldpc)
其中,pj表示第j校驗(yàn)位,im表示第m信息位,x取值參考DVB-S2標(biāo)準(zhǔn)附錄B和C提供的地址表,q表示步長(zhǎng)。以碼長(zhǎng)16 00、碼率3/4(11/15)的基校驗(yàn)矩陣第1行第5列為1 481,則其第1列對(duì)應(yīng)的非零坐標(biāo)行位置{1 481 + (1 mod 360)×12}mod(16 200 - 11 880)。
3)按照下式求解最終的奇偶校驗(yàn)比特,即:
pj = pj ⊕ pj-1
其中,j = 1,2,…,nldpc - kldpc - 1。
4)順序拼接信息比特和奇偶校驗(yàn)比特并發(fā)送。編碼后的碼字如下:
2 ?LDPC編碼器結(jié)構(gòu)
LDPC編碼器主要結(jié)構(gòu)為三段狀態(tài)機(jī),在狀態(tài)機(jī)時(shí)間順序的基礎(chǔ)上進(jìn)行功能分塊,主要分為校驗(yàn)地址存儲(chǔ)器、并行移位RAM存儲(chǔ)矩陣、校驗(yàn)節(jié)點(diǎn)計(jì)算模塊、奇偶校驗(yàn)位計(jì)算模塊、FIFO緩存模塊和編碼器控制單元。系統(tǒng)圖如圖1所示。
2.1 ?校驗(yàn)地址存儲(chǔ)器
在DVB-S2標(biāo)準(zhǔn)中附錄B和C給出了LDPC編碼各種碼率的校驗(yàn)位地址,因?yàn)镮RA_LDPC碼校驗(yàn)矩陣設(shè)計(jì)的偽隨機(jī)特性無(wú)法使用數(shù)學(xué)公式進(jìn)行描述,所以需將校驗(yàn)位地址存放在ROM中。為了實(shí)現(xiàn)信息數(shù)據(jù)到校驗(yàn)節(jié)點(diǎn)的轉(zhuǎn)換,同時(shí)降低FPGA除法與求余運(yùn)算帶來(lái)的資源消耗,需要對(duì)校驗(yàn)位地址進(jìn)行除法運(yùn)算并向下取整后存入ROM中,且對(duì)校驗(yàn)位地址進(jìn)行求余運(yùn)用,運(yùn)算的結(jié)果用于后續(xù)模塊算法推導(dǎo)。
除法取整公式為:
求余公式為:
hmi, j = mod(x,q)
其中,i = 0,1,2,…,45 - q - 1,j = m/360,x取值參考DVB-S2標(biāo)準(zhǔn)附錄B和C提供的地址表,q為步長(zhǎng)。
通過(guò)標(biāo)準(zhǔn)附錄中地址表可以看出,對(duì)于碼長(zhǎng)為16 200的LDPC碼在上述公式的計(jì)算結(jié)果不會(huì)大于360,據(jù)此設(shè)計(jì)ROM數(shù)據(jù)位寬為9×12,其中9為單字節(jié)位寬,12為校驗(yàn)矩陣最大列重,這種處理方法可以使ROM一次性載入一整列校驗(yàn)地址。
本文提出的編碼器兼容三種碼率,此三種碼率的校驗(yàn)地址表可存放于同一個(gè)ROM中的不同地址上。其中1/2(4/9)碼率占用地址0~19,3/4(11/15)碼率占用地址20~52,7/8(8/9)占用地址53~93,通過(guò)編碼控制電路,可設(shè)置偏移地址選擇不同碼率的校驗(yàn)地址。
2.2 ?并行移位RAM存儲(chǔ)矩陣
在有效數(shù)據(jù)輸入信號(hào)使能后,程序跳轉(zhuǎn)至并行移位RAM存儲(chǔ)矩陣模塊,此模塊按照標(biāo)準(zhǔn)對(duì)信息數(shù)據(jù)進(jìn)行循環(huán)移位存儲(chǔ)并將結(jié)果存儲(chǔ)于并行RAM存儲(chǔ)矩陣中。
參考DVB-S2標(biāo)準(zhǔn)附錄,B和C中碼長(zhǎng)16 200,碼率1/2(4/9)、3/4(11/15)和7/8(8/9),最大列重為12,最大列重行數(shù)5行。根據(jù)以上總結(jié),定義大列重RAM存儲(chǔ)矩陣12×5,標(biāo)準(zhǔn)列重RAM存儲(chǔ)矩陣3×35,所有RAM存儲(chǔ)單元位寬為1,數(shù)據(jù)深度為360。定義RAM存儲(chǔ)矩陣元素為:
itoci, j,m = {itoci, j,0,itoci, j,1,…,itoci, j,359}
RAM存儲(chǔ)矩陣單元中數(shù)據(jù)和信息數(shù)據(jù)存在如下關(guān)系:
其中hri, j由校驗(yàn)地址存儲(chǔ)器給出,循環(huán)移位操作由一個(gè)360的計(jì)數(shù)器實(shí)現(xiàn)。由上述算法可以看出同一列數(shù)據(jù)可以并行運(yùn)算,校驗(yàn)地址存儲(chǔ)器中每一行數(shù)據(jù)隨著計(jì)數(shù)器進(jìn)行累加并求余,同時(shí)將結(jié)果作為并行移位RAM存儲(chǔ)矩陣的寫地址對(duì)輸入數(shù)據(jù)進(jìn)行移位。
圖2為并行移位RAM存儲(chǔ)矩陣和校驗(yàn)地址存儲(chǔ)器的時(shí)間關(guān)系,可以看出同一列數(shù)據(jù)可以并行運(yùn)算,校驗(yàn)地址存儲(chǔ)器中每一行數(shù)據(jù)隨著計(jì)數(shù)器進(jìn)行累加并求余,同時(shí)將結(jié)果作為并行移位RAM存儲(chǔ)矩陣的寫地址對(duì)輸入數(shù)據(jù)進(jìn)行移位。其中虛線框?yàn)槔碚撃K,實(shí)際工程實(shí)現(xiàn)時(shí)可省略。
2.3 ?校驗(yàn)節(jié)點(diǎn)計(jì)算模塊
在對(duì)所有的信息數(shù)據(jù)進(jìn)行循環(huán)移位存儲(chǔ)于RAM矩陣后,狀態(tài)機(jī)自動(dòng)跳轉(zhuǎn)至校驗(yàn)節(jié)點(diǎn)計(jì)算模塊。此模塊將RAM矩陣中的信息數(shù)據(jù)對(duì)每一個(gè)校驗(yàn)節(jié)點(diǎn)的貢獻(xiàn)值進(jìn)行異或累加,用來(lái)求解最終的校驗(yàn)節(jié)點(diǎn)信息。
校驗(yàn)節(jié)點(diǎn)計(jì)算模塊有1個(gè)數(shù)據(jù)位寬為q的RAM存儲(chǔ)器作為緩存,定義RAM存儲(chǔ)器中的元素如下:
其中,i = 0,1,…,q - 1;m = 0,1,…,359。ci,m中每一列對(duì)應(yīng)RAM存儲(chǔ)器的一個(gè)元素。每個(gè)存儲(chǔ)器中的元素與校驗(yàn)節(jié)點(diǎn)相關(guān)聯(lián),按列讀取存儲(chǔ)器中的數(shù)據(jù),就可以得到校驗(yàn)節(jié)點(diǎn)。
根據(jù)2.1節(jié)中提出的hmi, j,ci,m和itoci, j,m之間存在關(guān)系式:
三種碼率hmi, j的取值不同,編碼控制電路通過(guò)數(shù)據(jù)選擇器切換hmi, j的取值來(lái)實(shí)現(xiàn)碼率的切換。
2.4 ?奇偶校驗(yàn)位計(jì)算模塊
在校驗(yàn)節(jié)點(diǎn)計(jì)算模塊完成所有校驗(yàn)節(jié)點(diǎn)信息后,狀態(tài)機(jī)跳轉(zhuǎn)奇偶校驗(yàn)位計(jì)算模塊,此模塊完成對(duì)校驗(yàn)節(jié)點(diǎn)的奇偶校驗(yàn)并將計(jì)算結(jié)果輸出。
從上一節(jié)可以看出校驗(yàn)節(jié)點(diǎn)計(jì)算模塊求出的校驗(yàn)信息為并行數(shù)據(jù),并行寬度為q,因此奇偶校驗(yàn)位計(jì)算模塊要在輸出奇偶校驗(yàn)數(shù)據(jù)的同時(shí)完成并串轉(zhuǎn)換。為實(shí)現(xiàn)上述操作,首先定義位寬為q+1寄存器:
Rm = {r0,r1,…,rq}
其中m = 0,1,…,359。
奇偶校驗(yàn)位計(jì)算模塊在每q×m時(shí)鐘到來(lái)時(shí)讀取上一級(jí)RAM存儲(chǔ)器中的元素ci,m并將其載入到寄存器的高位{r1,r2,…,rq}中,在其他時(shí)鐘使rm做向下移位操作。
rm = {r1,r2,…,rq,0}
最終的奇偶校驗(yàn)結(jié)果由rm的r0和r1求出。公式如下:
pj = r0 ⊕ r1
其中,j = 1,2,…,nldpc - kldpc - 1。
2.5 ?FIFO緩存模塊
FIFO緩存模塊用于緩存輸入的信息數(shù)據(jù),對(duì)輸入數(shù)據(jù)進(jìn)行延遲,在奇偶校驗(yàn)位輸出之前按順序?qū)⒕彺娴男畔⑤敵鲚敵觥?/p>
2.6 ?編碼器控制模塊
編碼器控制模塊用于實(shí)現(xiàn)狀態(tài)機(jī)跳轉(zhuǎn),不同碼率的動(dòng)態(tài)切換,給出編碼器輸入和輸出狀態(tài)標(biāo)志,使LDPC編碼器具有更好的通用性、兼容性。
3 ?FPGA實(shí)現(xiàn)及結(jié)果分析
本文采用的FPGA為Xilinx公司的ZYNQ系列xc7z020clg400-2,開(kāi)發(fā)仿真平臺(tái)為Xilinx公司的Vivado 2018.03,使用Verilog HDL硬件編程語(yǔ)言完成LDPC編碼器的代碼編寫。
編碼器綜合后的RTL接口包含以下信號(hào):clk用于編碼器工作時(shí)鐘輸入,data_in用于接收信息數(shù)據(jù)進(jìn)行LDPC編碼,rst_n為復(fù)位信號(hào),sink_eop為信息數(shù)據(jù)發(fā)送截止符,sink_sop為信息數(shù)據(jù)發(fā)送起始符,sink_valid為信息數(shù)據(jù)有效標(biāo)志,source_ready為編碼模塊使能符號(hào),type用于熱切換LDPC碼編碼碼率,data_out為編碼后數(shù)據(jù),source_eop為編碼后數(shù)據(jù)截止符,source_sop為編碼后數(shù)據(jù)起始符,sink_valid為編碼數(shù)據(jù)有效標(biāo)志位。
數(shù)據(jù)流經(jīng)過(guò)編碼器系統(tǒng)的波形圖如圖3所示。圖4為校驗(yàn)節(jié)點(diǎn)計(jì)算模塊的波形示意圖。圖5波形為奇偶校驗(yàn)位模塊中寄存器rm的波形示意圖,可以看出在計(jì)數(shù)器更新的同時(shí)寄存器rm中的數(shù)據(jù)也在實(shí)時(shí)更新,其他時(shí)間寄存器rm做向下移位的操作。
經(jīng)驗(yàn)證,編碼器支持碼長(zhǎng)16 200,1/2(4/9)、3/4(11/15)和7/8(8/9)三種碼率的LDPC編碼,同時(shí)綜合后的資源占用率較低,具體如表1所示。
對(duì)代碼進(jìn)行時(shí)序分析,在工作頻率為200 MHz的情況下,其時(shí)序報(bào)告Worst Negative Slack 0.337 ns。
可以算出芯片最高穩(wěn)定工作頻率為1 / (5 - 0.337) =
214.45 MHz。本文的LDPC編碼器為串行編碼器,所以總吞吐量為214.45 Mbit/s,當(dāng)前無(wú)人機(jī)衛(wèi)星通信鏈路帶寬最大通信數(shù)據(jù)量小于8 Mbit/s,可以看出編碼器的吞吐量遠(yuǎn)遠(yuǎn)高于無(wú)人機(jī)實(shí)際通信的最大帶寬,可以滿足無(wú)人機(jī)的通信需求。
經(jīng)過(guò)本文算法的處理,通過(guò)Vivado 2018.03軟件對(duì)LDPC編碼器進(jìn)行功率分析,芯片總功耗為0.287 W,如表2所示。如此低的功耗對(duì)于功耗供能有限的無(wú)人機(jī)衛(wèi)星通信系統(tǒng)有重要意義。
參考DVB-S2標(biāo)準(zhǔn)中LDPC碼糾錯(cuò)性能分析。表3給出碼長(zhǎng)16 200,碼率1/2(4/9)、3/4(11/15)以及7/8(8/9)在誤幀率為10-7時(shí)的信噪比門限。
無(wú)人機(jī)在正常通信的情況下接收信噪比最低為7 dB,本編碼器最差的信噪比要求為6.2 dB,可以看出編碼器能夠滿足無(wú)人機(jī)通信對(duì)糾錯(cuò)性能的要求。
4 ?結(jié) ?論
本文提出的基于xc7z020clg400-2的LDPC編碼器為串行編碼器,總工作頻率為214.45 MHz,可以支持碼長(zhǎng)16 200,碼率為1/2(4/9)、3/4(11/15)以及7/8(8/9)多碼率的高效編碼器,糾錯(cuò)性能滿足人機(jī)通信環(huán)境。本編碼器已在無(wú)人機(jī)載衛(wèi)星調(diào)制解調(diào)器中進(jìn)行應(yīng)用,能夠滿足高清音視頻數(shù)據(jù)在無(wú)人機(jī)衛(wèi)星通信系統(tǒng)高通量、低功耗、高可靠傳輸?shù)膽?yīng)用需求。
參考文獻(xiàn):
[1] FR-AFNOR. Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2):NF Z84-307-2-2020 [S/OL].[2023-01-02].https://telin.ugent.be/~./mm/Jabran/phase_noise/ETSI%2520DVB-S2.pdf.
[2] GALLAGER R G. Low Density Parity Check Codes [M].CANBRIDGE:The M.I.T. press,1963.
[3] MACKAY D J C and NEAL R M. Near Shannon limitperformance of low-density parity check codes [J].ElectronicsLetters,1996,32(18):1645-1646.
[4] 武學(xué)彬,薛永林.用于DVB-S2的LDPC編碼器設(shè)計(jì) [J].電視技術(shù),2007(S1):114-116.
[5] 華力,雍玲,雷菁.基于FPGA的DVB-S2通用LDPC編碼器設(shè)計(jì)與實(shí)現(xiàn) [J].通信技術(shù),2008(1):12-14.
[6] 范光榮,王華,夏添琦,等.基于DVB-S2的高速多碼率LDPC編碼器的FPGA設(shè)計(jì)與實(shí)現(xiàn) [J].北京理工大學(xué)學(xué)報(bào),2008(9):813-816+821.
[7] 閆國(guó)強(qiáng),王勇,植涌,等.基于DVB-S2的通用LDPC編碼器的FPGA設(shè)計(jì) [J].電視技術(shù),2013,37(1):1-3+7.
[8] 王延鵬,潘申富,楊宏偉.基于FPGA的DVB-S2 LDPC編碼器的設(shè)計(jì)與實(shí)現(xiàn) [J].無(wú)線電工程,2015,45(3):30-33.
[9] 蘭亞柱,楊海鋼,林郁.面向DVB-S2標(biāo)準(zhǔn)LDPC碼的高效編碼結(jié)構(gòu) [J].電子與信息學(xué)報(bào),2016,38(7):1781-1787.
[10] LEE I K,KIM M H,OH D G,et al. High-speed LDPC encoder architecture for digital video broadcasting systems [C]//2013 International Conference on ICT Convergence (ICTC).Jeju:IEEE,2013:606-607.
作者簡(jiǎn)介:田宇(1990.12—),男,漢族,山西大同人,工程師,碩士,研究方向:衛(wèi)星通信應(yīng)用;盧志鵬(1995.01—),男,漢族,山西晉中人,工程師,碩士,研究方向:衛(wèi)星通信應(yīng)用。