謝天嬌, 李波, 楊懋, 閆中江
(1.西北工業(yè)大學 電子信息學院, 陜西 西安 710072; 2.中國空間技術(shù)研究院 西安分院, 陜西 西安 710100)
現(xiàn)階段為了在地球探測衛(wèi)星中使用高效的自適應編碼調(diào)制技術(shù),太空數(shù)據(jù)系統(tǒng)咨詢委員會(consultative committee for space data systems,CCSDS)131.3-B-1標準[1]給出了采用DVB-S2標準[2]來傳輸CCSDS傳輸幀的方案解決了DVB-S2與CCSDS的格式兼容性問題。眾所周知DVB-S2是歐洲第二代數(shù)字衛(wèi)星電視廣播標準,它給出了高功率高頻譜效率的自適應編碼調(diào)制系列解決方案,且已經(jīng)獲得了廣泛應用,然而,由于衛(wèi)星廣播系統(tǒng)的最大傳輸吞吐量只有135 Mbit/s(兆比特每秒,Million bits per second),而地球探測衛(wèi)星需要高達幾個Gbit/s(千兆比特每秒,Giga bits per second)的吞吐量??梢奃VB-S2標準中的自適應編譯碼器芯片不能直接應用于CCSDS,而迫切需要研究千兆比特每秒的高速LDPC編譯碼器方案,另外地球探測衛(wèi)星與地面接收站的距離會周期性變化,且其Ka波段的載頻受雨衰影響較大,這就需要其具有碼率兼容的自適應特性。因此,DVB-S2標準中的高吞吐率碼率兼容LDPC編譯碼器設計技術(shù)是地球探測衛(wèi)星系統(tǒng)升級的關(guān)鍵技術(shù)。
雖然DVB-S2標準中的LDPC碼具有特定的結(jié)構(gòu),但是由于其校驗矩陣右邊雙對角矩陣的存在會導致譯碼中間信息的存儲器訪問沖突。現(xiàn)階段已經(jīng)有一些文獻[3-6]考慮了雙對角矩陣的存儲器訪問沖突解決方案,然而對于分層譯碼器需要2個桶形移位寄存器來修正,這占用了大量的額外硬件資源。文獻[7]中稱其為“硬件補丁法”;為了降低硬件資源,另外一種方法是采用“控制補丁法”解決方案,如文獻[7-9],由于僅使用一個桶型移位寄存器,所以極大降低了“硬件補丁法”的復雜度和延遲,但是會導致譯碼性能或吞吐量損失。在文獻[8]中,通過降低并行度來大量減少雙對角的更新行數(shù),會造成較大的誤幀率損失。在文獻[9]中,在重復的分層中采用適當?shù)拇鎯刂苼淼窒p對角的更新行數(shù)減少的影響,但當并行度較高時,由于流水線的處理導致分層重復更新而極大地約束了解決沖突的效果。文獻[7]提出了一種優(yōu)化的簡化存儲控制方法來抵消未更新的雙對角行數(shù)對性能的影響,即使采用全并行譯碼,其帶來的譯碼性能損失也幾乎是微乎其微的。可見“硬件補丁法”需要大量的額外硬件資源,而“控制補丁法”會導致譯碼性能的損失,且隨著吞吐量的增加,性能損失急劇增大。另外,文獻[10]采用IP核的方法來設計DVB-S2譯碼器,但吞吐量較低,只有40.9~71.7 Mbit/s。
針對升級版的地球探測衛(wèi)星對DVB-S2標準LDPC碼兼容設計及高吞吐量譯碼器的需求,與現(xiàn)有傳統(tǒng)DVB-S2應用不同,為了解決存儲器訪問沖突,本文提出一種采用矩陣變換的方法,該方法既不占用額外的硬件資源也不帶來譯碼性能的損失。在硬件實現(xiàn)之前先對原始下三角雙對角結(jié)構(gòu)的IRA校驗矩陣進行初等變換為準循環(huán)和行變換下三角雙對角結(jié)構(gòu)的組合矩陣。而對這種新的校驗矩陣進行FPGA實現(xiàn),左邊準循環(huán)子矩陣可以采用現(xiàn)階段成熟的技術(shù)來實現(xiàn)高速自適應碼率兼容的架構(gòu),而右邊行變換下三角雙對角結(jié)構(gòu)子矩陣設計時只需要兼容現(xiàn)有成熟的準循環(huán)硬件實現(xiàn)方案即可,這樣就保證了現(xiàn)階段LDPC譯碼器研究成果能在設計的譯碼器上成功使用。
DVB-S2標準中LDPC碼的校驗矩陣H包含兩部分,如公式(1)所示
H=[H1|H2]
(1)
H由H1和H2兩部分組合而成,分別為M×K和M×M。其中,H2是一個下三角雙對角結(jié)構(gòu)的矩陣,如圖1給出了DVB-S2標準中16 200碼長7/9碼率的LDPC碼H矩陣非零元素分布圖。如圖1所示,子矩陣H1的行的規(guī)律性為每q行(DVB-S2標準中給出的5種碼率q值如表1所示)作為一塊整體向右循環(huán)移動一次得到下q行,共右循環(huán)移動了360次。
圖1 碼率為7/9的LDPC碼H矩陣非零元素分布圖
Cn=ln(P(xn=0|yn)/P(xn=1|yn))
(2)
(3)
N(m)是連接校驗節(jié)點m的變量節(jié)點集合,N(m) 表示在集合N(m)中去掉變量節(jié)點n的子集合,α為NMSA算法的歸一化因子。
(4)
(5)
同理,集合M(n)表示連接變量節(jié)點n的校驗節(jié)點,M(n)m表示從集合M(n)中去掉一個校驗節(jié)點m之后形成的子集。
上面的C2V和V2C統(tǒng)稱為外信息。迭代譯碼一直重復直到校驗方程滿足或達到預先設定的最大迭代次數(shù),校驗方程滿足與否由校驗方程計算模塊(parity check update,PCU)來判定。
現(xiàn)階段文獻中研究最多的LDPC高速譯碼器是準循環(huán)QC-LDPC譯碼器,因為塊內(nèi)循環(huán)QC特性可以降低存儲器訪問復雜度,分塊特性有利于實現(xiàn)部分并行的譯碼器。但DVB-S2標準的LDPC碼不是QC-LDPC碼,本節(jié)將詳細介紹DVB-S2標準的LDPC碼與QC-LDPC碼的關(guān)系,并借助QC-LDPC譯碼器架構(gòu)提出本文的高速碼率兼容DVB-S2的LDPC碼譯碼器架構(gòu)。
圖2 碼率為7/9的LDPC碼變換H矩陣非零元素分布圖
圖2給出了DVB-S2標準中16 200碼長7/9碼率的LDPC碼H矩陣的變換矩陣,如公式(6)所示:
(6)
圖3 Ht矩陣的結(jié)構(gòu)圖
碼率H1t的dvH2t的dvHt的dc 2/512(6),3(12)2(27)6(27) 3/512(9),3(18)2(18)11(18) 2/313(3),3(27)2(15)10(15) 7/93(35)2(10)12(3),11(1),13(6) 8/94(5),3(35)2(5)27(5)
表3 碼率兼容LDPC譯碼器處理器單元的數(shù)量
見1.2節(jié),處理單元CNU和VNU占用了譯碼器的大部分資源,為了有效地對碼率兼容LDPC碼譯碼器進行設計,不同碼率之間應該最大程度地共享處理單元資源。通過對表2進行分析,可以得到2種處理單元CNU和VNU的最小數(shù)量。校驗節(jié)點單元CNU用來進行行信息的更新,將行重設計為13可以兼容10,11,12,13行重情況,所以碼率兼容譯碼器需要3種行重情況{6(27),13(18),27(5)},譯碼器需要27p個6輸入的CNU,18p個13輸入和5p個27輸入的CNU,分別記為CNU6,CNU13和CNU27,這里p表示塊內(nèi)的并行度數(shù)。同理,變量節(jié)點更新單元VNU用來進行列信息的更新,列重為{2,3}和{12,13}可分別設計為列重為3和13情況的VNU??梢奦NU需要設計為3種列重的情況{3(45),4(5),13(6)},即譯碼器需要45p個(3+1)輸入,5p個(4+1)輸入和9p個(13+1)輸入的VNU,分別記為VNU3,VNU13和VNU4,如表3所示。
(7)
表4 TST子矩陣中的非零元素位置
從表4可以看到,TST子矩陣包括q個行塊,每個行塊s(0≤s≤q-1)由L=360個子行r(0≤r≤L-1)組成,其非零元素均采用2個深度為L的存儲器來存儲,所以TST子矩陣總共需要2q個存儲器來存儲外信息,與之對應的存儲器定義為MCt,x,(1≤x≤2q),這2q個存儲器的標號分別為(s=0|MCt,1,MCt,2),…,(s=q-1|MCt,2q-1,MCt,2q)。
通過分析TST處理單元的工作流程,發(fā)現(xiàn)TST的校驗節(jié)點處理階段,需要讀取每個行塊s所對應的2個存儲塊,即MCt,2s-1,MCt,2s,而TST的變量節(jié)點處理階段,其讀取的是s所對應的2個存儲塊MCt,(2s)%(2q),MCt,(2s+1)%(2q)。為了能使CNU和VNU交錯地讀取這兩塊存儲器,不產(chǎn)生存儲器訪問沖突問題,我們引入一個2q×2q的TST網(wǎng)絡交換模塊,存儲器MCt,x對應的輸入端口為(2,3),(4,5),…(2q,1),輸出端口號為(1,2),(3,4),…(2q-1,2q)??梢?本文提出的表4中的TST存儲方式可以有效地解決存儲器訪問沖突問題。
TST子矩陣對應的信道信息存儲在存儲器Ft中,假設按列的順序進行信道信息的存儲。從存儲器MCt,x的內(nèi)容可知,與其對應的列號分別為0+y,q+y,2q+y,…,q×(L-1)+y,y(0≤y≤q-1),所以VNU處理單元工作階段,Ft需要與2個存儲器MCt,x進行數(shù)據(jù)交互。
本文提出的碼率兼容DVB-S2標準LDPC譯碼器架構(gòu)需要3種存儲器資源:信道信息存儲器(RAM-QC, RAM-TST)、外信息存儲器(RAM-M, RAM-C)和硬判決存儲器,每個存儲器采用的深度均為2「L/p?,為了保證譯碼器在接收信道信息的同時進行譯碼處理所以需要采用2倍的信息幀數(shù)據(jù)深度,而為了使CNU和VNU交替對2幀不同的數(shù)據(jù)進行譯碼,所有存儲器均采用雙端口方式的BRAM存儲塊。
DVB-S2標準中不同碼率基矩陣的列數(shù)相同均為n,所以可以復用信道信息存儲器,總共需要n=45個存儲器來存儲信道信息,復用時需要n-q個RAMF和q個Ft。然而,由于不同碼率校驗矩陣差別較大,外信息的復用方式較復雜,對于LDPC譯碼器,外信息存儲器個數(shù)與基矩陣非零元素數(shù)成正比,因為不同碼率的QC子矩陣對應的基矩陣有不同的非零元素,表5給出了每種碼率所占使用的存儲器數(shù)量。如表5所示,令g表示多碼率QC子矩陣基矩陣的非零元素的個數(shù),gmax=162,考慮到TST子矩陣部分存儲器的個數(shù)為2q,所以碼率兼容譯碼器存儲外信息的總數(shù)為gmax+2q=198。按照上面的分析,得出5種DVB-S2碼率兼容LDPC譯碼器總共需要198+45=243塊存儲器。
表5 每種碼率所占使用的存儲器數(shù)量
按照上文的描述,DVB-S2的LDPC校驗矩陣經(jīng)過矩陣變換后的新矩陣Ht由準循環(huán)QC子矩陣和TST子矩陣組成,為了使TST與QC矩陣所對應的譯碼器架構(gòu)兼容,本節(jié)針對HHt提出了一種QC-TST譯碼器架構(gòu),如圖4所示。
圖4 提出的DVB-S2標準的QC-TST譯碼器架構(gòu)框圖
p>1的并行度對應高吞吐量情況,該架構(gòu)可以簡單地應用到p=1的低吞吐量情況。關(guān)于QC子矩陣的架構(gòu)采用本文作者前期工作[11]中的方法,TST子矩陣的處理需要與QC子矩陣兼容,TST部分通過采用位寬和深度與QC部分同樣規(guī)格的RAM模塊,便于碼率兼容設計時存儲資源的復用,為了避免各個處理單元訪問TST存儲器導致的訪問沖突問題引入TST網(wǎng)絡交換模塊。提出的QC-TST譯碼器的具體譯碼步驟如下:
輸出信號包括譯碼碼字輸出datout和伴隨該輸出的幀同步信號synout及碼率信號rate,之所以需要這2個信號是因為LDPC譯碼器后端還需要其他處理,例如在DVB-S2標準中,LDPC譯碼器后端還需要BCH譯碼器。datout是位寬為p比特的信號。
1) 初始化;
當譯碼幀到來,即幀同步信號為高電平時,將接收到的幀數(shù)據(jù)所對應的信息位和校驗位信息分別存儲到信息存儲塊RAM-QC和校驗存儲塊RAM-TST中,同時,將外信息存儲塊RAM-C和RAM-M初始化為零,初始化迭代次數(shù)Titer=1;
2) 變量節(jié)點更新(VNU-VTU);
3) 校驗節(jié)點的更新和校驗方程的計算(CNU-PCU);
4) 判決;
若伴隨式向量s=0或Titer達到預設的最大迭代次數(shù)MAX-ITER,轉(zhuǎn)步驟5);否則,轉(zhuǎn)步驟2)繼續(xù)下一輪迭代處理;
5)從RAM-OUT讀出譯碼判決比特,輸出譯碼碼字。
現(xiàn)階段處理模塊的實現(xiàn)技術(shù)研究較多(見文獻[11-13]),為了提高時鐘頻率均采用降低關(guān)鍵路徑延遲的方法,即在CNU和VNU計算過程中插入多級流水線。本文假設在CNU和VNU中分別插入c級和v級流水線。列重dv越重,v越大,同理行重dc越重,c越大。本文提出的譯碼流程的譯碼器一次迭代所需要的時鐘周期為v+c+2「L/p?個。
采用本文提出的這種矩陣變換方法加QC-TST譯碼器架構(gòu),在Xilinx XC7VX485T FPGA上實現(xiàn)了DVB-S2標準中兼容5種碼率的一個LDPC譯碼器,綜合和布局布線采用Vivado 2015.1。
本文提出的譯碼器并行度可以被任意配置,考慮到本文使用的FPGA資源情況,并行度配置為p=5的情況。如表4所示,可見分別需要的校驗節(jié)點處理單元的個數(shù)分別為27p=135個CNU6,18p=90個CNU13和5p=25個CNU27;變量節(jié)點處理單位的個數(shù)分別為45p=90個VNU3,9p=45個VNU13和5p=25個VNU4。
從表5中可以看到,需要243塊雙端口18 kbits BRAM來存儲信道信息和外信息,而硬判決RAMC需要大小為2「L/p?×np=2×360×45=32.4 kbits的存儲空間,需要占用7塊18 kbits的雙端口BRAM,所以這個碼率兼容譯碼器需要占用250塊雙端口BRAM。對于Virtex7 FPGA,2塊18 kbits的BRAM自動合并成一塊36 kbits的BRAM,即需要125塊36 kbits的BRAM資源。
考慮到最大列重和行重分別為13和27,為了平衡設計,VNU和CNU均采用v=6和c=6和流水線,所以本文提出的譯碼器完成一次迭代需要v+c+2「L/p?=156個時鐘周期,當譯碼器輸入端采用5路并行輸入信道信息時,接收一幀的時鐘周期數(shù)為16 200/5=3 240,因此可以將譯碼器的最大迭代次數(shù)設置為?3 240/156」=20次。采用NMSA譯碼算法,為了獲得與浮點譯碼接近的性能,在實現(xiàn)時,采用6比特量化。譯碼性能如圖5所示。
圖5 碼率兼容DVB-S2譯碼器結(jié)合高階調(diào)制性能圖
為了進一步提高吞吐量,采用CNU和VNU交替對2幀不同的數(shù)據(jù)進行譯碼,所以譯碼器可以同時接收并行10路信道信息輸入的情況。現(xiàn)階段的LDPC一般與MPSK或MAPSK等二維調(diào)制方式相結(jié)合,此時譯碼器同時接收I,Q2路數(shù)據(jù)對應的幀,所以I/Q路均采用并行5路輸入的情況,每路用6比特表示,并行10路共輸入60比特。本文提出的譯碼器方案支持連續(xù)輸入的情況時,是一個輸出連續(xù)的實時譯碼器,譯碼器迭代處理模塊的時序如圖6所示,當然本譯碼器也支持對于2個譯碼塊之間有一定的時鐘間隔的情況,此時時序更寬松所以譯碼迭代次數(shù)能進一步增加,與圖5相比,可進一步改進系統(tǒng)的糾錯性能。
圖6 提出的譯碼器迭代處理工作時序圖
通過布局布線,本文設計的碼率兼容LDPC譯碼器的最大工作時鐘頻率為250 MHz,由于同時處理10路連續(xù)幀,且是一個輸出連續(xù)的實時譯碼器,所以提出的碼率兼容譯碼器的最大吞吐量為250 MHz×10=2.5 Gbit/s。
表6給出了提出的DVB-S2標準5種碼率兼容LDPC譯碼器占用的資源,同時還給出了文獻[3-9]實現(xiàn)的高速譯碼器結(jié)果。其中不同的文獻采用不同的術(shù)語來描述譯碼算法,但都是軟判決和積譯碼算法及其衍生算法。表6保留原文獻算法記法。
表6 提出的譯碼器與現(xiàn)有的其他譯碼器資源對比
本文提出的譯碼器優(yōu)勢在于:兼容多種碼率,可在連續(xù)輸入數(shù)據(jù)情況下不丟失數(shù)據(jù)且具有逐幀切換LDPC碼的自適應功能,每幀可變的碼率切換形式可以使得DVB-S2標準中逐幀可切換的傳輸幀結(jié)構(gòu)形式獲得更優(yōu)異的自`適應傳輸性能?,F(xiàn)有文獻中并沒有考慮這個設計問題。而對于多碼率的實現(xiàn)現(xiàn)階段大部分采用bit程序刷新的方法來實現(xiàn),這些方法不能實現(xiàn)在連續(xù)輸入數(shù)據(jù)情況下逐幀切換不丟幀的功能。文獻中給出的是某固定碼率下的資源占用情況及其吞吐量。為了有效比較對應指標,本文的譯碼器在單個碼率情況下的資源占用量簡單折算為5種碼率兼容情況下的五分之一,實際減去自適應控制部分的額外資源消耗后單碼率的資源占用量將更低。經(jīng)折算后本文中單個譯碼器在2.5 Gbit/s情況下的資源占用量為,36 kb BRAM存儲器27個(或18 kb BRAM 54個)、LUT為26 241個和FF寄存器41 219個。
文獻[3]采用HSS譯碼策略和簡單的校驗節(jié)點更新算法,采用節(jié)省存儲資源的架構(gòu)實現(xiàn)了dc(行重)路并行,碼率為9/10時,吞吐量為2.25 Gbit/s。由于文獻[3]中沒有給出其他指標,只能比對吞吐量情況,與文獻[3]相比,本文的吞吐量更高。
文獻[4]采用桶形移位寄存器來避免存儲器訪問沖突,90 nm的ASIC實現(xiàn)結(jié)果顯示,時鐘頻率為300 MHz時,可實現(xiàn)520 Mbit/s的吞吐量,占用的存儲器資源為8.4 Mb。而本文2.5 Gbit/s吞吐量的譯碼器占用52.8個18 kb的BRAM為0.95 Mb。由于ASIC的面積與FPGA的資源暫時沒有有效的換算比對方法[13],本文暫不做比較。但與文獻[4]相比本文譯碼器的吞吐量資源和存儲器資源利用效率更高。
文獻[5]設計了一個同時具有VNU和CNU功能的模塊B/CFM,能使VNU和CNU充分共享資源,實現(xiàn)的譯碼器最大吞吐量為1 020 Mbit/s。本文的譯碼結(jié)構(gòu)采用圖6的CNU和VNU交替對兩幀不同數(shù)據(jù)進行譯碼的方法來防止處理模塊的空閑的處理方法。文獻[5]的設計在1.02 Gbit/s吞吐量時,使用的硬件資源為11 005個LUT和182個18 kb的BRAM存儲資源。由于本文提出的譯碼器吞吐量約為文獻[5]的2.5倍,LUT資源的使用量也大約為文獻[5]譯碼器的2.5倍,但在BRAM存儲資源的利用效率上,本文譯碼器具有明顯優(yōu)勢,在2.5 Gbps吞吐量下本文譯碼器僅占用54個18 kb的BRAM存儲資源,較文獻本[5]的182個18 kb BRAM有明顯優(yōu)勢。
文獻[6]也是采用桶形移位寄存器來避免存儲器訪問沖突,ISE綜合結(jié)果顯示,當時鐘頻率為297.3 MHz,迭代30次時,吞吐量為1 Gbit/s,占用的硬件資源為LUT 92 301個、FF 63 637個、36 kb BRAM存儲器232個。本文譯碼器的吞吐量為2.5 G,為文獻[4]譯碼器吞吐量的2.5倍,但從資源的使用情況上看,本文的譯碼器實現(xiàn)的資源占用量要小于文獻[6]譯碼器的2倍,其實現(xiàn)效率更高,這主要是由于文獻[6]譯碼器的桶形移位寄存器部分占用了大量的硬件資源,而本文譯碼器并沒有類似結(jié)構(gòu)。
文獻[8]采用通過降低并行度來大量減少雙對角的更新行數(shù),會造成較大的誤幀率損失。當吞吐量為120 Mbit/s,FF為10 855,存儲器資源1.96 Mb,而本文2.5 Gbit/s單個譯碼器占用52.8個18 kb的BRAM為0.95 Mb,FF為41 219。與文獻[8]相比,本文譯碼器可以實現(xiàn)更高的吞吐量,且資源利用效率更高。
文獻[7]在文獻[8]的基礎(chǔ)上提出了一種優(yōu)化的控制方法來抵消譯碼性能損失。當吞吐量為1.4 Gbit/s、ALUs為63 694、FF為75 372、存儲器資源3 Mb,而本文2.5 Gbit/s單個譯碼器占用LUT為26 241、FF為41 219、52.8個18 kb的BRAM為0.95 Mb。與文獻[7]相比,本文譯碼器的吞吐量資源、邏輯資源和存儲器資源均有優(yōu)勢。
文獻[9]采用FPGA實現(xiàn)了一個譯碼器,當并行45路,時鐘頻率為300 MHz時,吞吐量為200 Mbit/s,當并行120路,時鐘頻率為400 MHz時,吞吐量為720 Mbit/s。這些方法并行路數(shù)較大,至少為45和360最大公約數(shù),這將導致ASIC芯片面積較大。從表6中可以看到,720 Mbit/s時存儲器資源為2.2 Mb,而本文2.5 Gbit/s譯碼器占用52.8個18 kb的BRAM為0.95 Mb。由于ASIC的面積與FPGA的資源暫時沒有有效的換算比對方法[13],本文暫不做比較。但與文獻[9]相比本文譯碼器的吞吐量資源和存儲器資源利用效率更高。
通過上面的對比分析,可以看到本文設計的碼率兼容譯碼器在糾錯性能、吞吐量資源、邏輯資源和存儲器資源與現(xiàn)有設計相比均具有優(yōu)勢,這主要是由于本文在設計譯碼器之前采用了矩陣變換的方法,該方法既不占用額外的硬件資源也不帶來譯碼性能的損失。而且經(jīng)過變化后的矩陣在硬件實現(xiàn)上具有較大的優(yōu)勢,對于變換后矩陣的左邊準循環(huán)子矩陣可以采用現(xiàn)階段成熟的QC-LDPC譯碼器架構(gòu)設計技術(shù)來實現(xiàn)高速自適應碼率兼容的架構(gòu),而右邊行變換下三角雙對角結(jié)構(gòu)子矩陣設計時只需要兼容現(xiàn)有成熟的準循環(huán)硬件實現(xiàn)方案即可,這樣就保證了現(xiàn)階段LDPC譯碼器研究成果能在設計的譯碼器上進行充分的應用。
由于借鑒了QC-LDPC譯碼器架構(gòu)設計優(yōu)勢,本文提出的譯碼器架構(gòu)非常容易實現(xiàn)碼率兼容性,消耗的硬件資源更少,而且如果想進一步提高LDPC譯碼器的吞吐量,這種設計僅需要提高塊內(nèi)的并行路數(shù)。另外也可以靈活地調(diào)節(jié)LDPC譯碼器占用的硬件資源,滿足不同硬件平臺不同吞吐量的傳輸需求。
為了有效地實現(xiàn)多碼率碼長兼容的DVB-S2譯碼器,本文將DVB-S2標準中的矩陣進行初等變換后得到了QC和TST子矩陣,QC子矩陣采用現(xiàn)階段具有豐富研究成果的QC-LDPC譯碼器架構(gòu)進行實現(xiàn),而僅需重點解決TST子矩陣部分與QC-LDPC兼容性設計問題。提出的譯碼器能適應DVB-S2標準所有碼率和分組長度,且這種實現(xiàn)方法并行度可以靈活調(diào)節(jié),以實現(xiàn)不同吞吐量的譯碼器,可滿足不同系統(tǒng)的需求,具有較強的實用性。而且在高吞吐量自適應上具有明顯的優(yōu)勢,能應用于地球探測衛(wèi)星的最大傳輸速率高達幾個千兆比特每秒的情況。