訂閱
糾錯(cuò)
加入自媒體

LDPC碼與其他糾錯(cuò)碼性能對(duì)比與FPGA設(shè)計(jì)思考

LDPC碼屬于前向糾錯(cuò)碼的一類,用于在噪聲傳輸信道中發(fā)送信息。這些碼可以用一個(gè)奇偶校驗(yàn)矩陣來描述,該矩陣主要包含0和少量的1。因此,與其他代碼結(jié)構(gòu)相比,譯碼復(fù)雜度較小。解碼器采用了一種非常高效的迭代譯碼算法——置信傳播算法。LDPC碼可分為兩組:規(guī)則LDPC碼,PC矩陣的列重和行重是常量且相等;不規(guī)則的LDPC碼,所在的行重和列重不是常數(shù)和相等,這意味著每行和列1的數(shù)量是不同的。

LDPC碼以不同的方式表示。與所有線性分組碼相似,可以用相應(yīng)的生成矩陣G或PC矩陣H表示矩陣。如果輸入信息比特?cái)?shù)是K,輸出比特?cái)?shù)是N,PC矩陣H表示為M×N矩陣,其中M=N-K。碼率K/N定義了PC矩陣的大小。LDPC碼可以用Tanner圖進(jìn)一步圖形化表示,Tanner圖是LDPC碼最常見的圖形表示之一。它提供了代碼的完整表示,并有助于描述解碼算法。Tanner圖是二分圖,即有兩種不相交的節(jié)點(diǎn)集。這兩種變量節(jié)點(diǎn)(VND)和校驗(yàn)節(jié)點(diǎn)(CND)。VND表示碼字bit,矩陣H的N列的每個(gè)值代表一個(gè)VND。CND代表碼約束條件。矩陣H的列M的每個(gè)元素,代表一個(gè)CND。如果hij=1,一個(gè)VND vi連接到一個(gè)CND cj。對(duì)于下例PC矩陣H,其Tanner圖如下圖所示。

H矩陣對(duì)應(yīng)的Tanner圖

準(zhǔn)循環(huán)(QC)LDPC碼屬于結(jié)構(gòu)化碼的一類,在不顯著降低代碼性能的情況下相對(duì)容易實(shí)現(xiàn)。QC-LDPC碼可以使用簡(jiǎn)單的基于其生成矩陣的線性復(fù)雜度的移位寄存器來實(shí)現(xiàn)。設(shè)計(jì)良好的QC-LDPC碼已被證明在BER、BLER性能和錯(cuò)誤平層方面優(yōu)于計(jì)算機(jī)生成的隨機(jī)LDPC碼。這些碼在解碼器硬件實(shí)現(xiàn)方面具有循環(huán)對(duì)稱的優(yōu)點(diǎn),可以實(shí)現(xiàn)簡(jiǎn)單的規(guī)則互連和模塊化結(jié)構(gòu)。在包括3GPP NR在內(nèi)的大多數(shù)無線通信標(biāo)準(zhǔn)中,LDPC碼的定義都采用了基本圖u。然而,u需要使用提升因子Z轉(zhuǎn)換為PC矩陣H。提升意味著基本圖u的每一個(gè)(整數(shù))項(xiàng)都被一個(gè)置換的Z×Z單位矩陣所取代。我們從一個(gè)單位矩陣I開始,并根據(jù)基圖項(xiàng)uij循環(huán)移動(dòng)該矩陣的元素以得到所需的矩陣H。例如,假設(shè)有一個(gè)2×2的基圖矩陣u和提升因子Z=3。從u到H的變換可以這樣進(jìn)行:

LDPC碼通常由它們的PC矩陣確定。本文給出了一個(gè)QC-LDPC碼的PC矩陣,它是一組相同大小的稀疏循環(huán)矩陣。循環(huán)矩陣是一個(gè)方陣,其中每一行是其上一行的循環(huán)移位,第一行是最后一行的循環(huán)移位。對(duì)于循環(huán)矩陣,每一列是左列向右的循環(huán)移位,第一列是最后一列的循環(huán)移位。循環(huán)矩陣的行重和列重是相同的。如果行/列權(quán)重等于1,那么循環(huán)矩陣也是一個(gè)置換矩陣。循環(huán)矩陣的第一行(或第一列)是其完整的特征,稱為循環(huán)矩陣的生成器。對(duì)于一個(gè)在GF(2)域的m×m的循環(huán)矩陣A,如果它的秩為r=m,那么它所有的行都是線性無關(guān)的。然而,如果它的秩r<m,那么任意連續(xù)的r行(或列)A可以被認(rèn)為是線性無關(guān)的,而其他的m-r行(或列)是線性相關(guān)的。這是由于A的循環(huán)結(jié)構(gòu)。一個(gè)QC-LDPC碼是由一組相同大小的稀疏循環(huán)矩陣的零空間給出的。

一個(gè)LDPC碼通過PC矩陣H定義。對(duì)于每個(gè)碼字v,可以表示為HvT=0。另一方面,一個(gè)非碼字(損壞碼字),將產(chǎn)生一個(gè)非零向量。在數(shù)學(xué)上,一個(gè)LDPC碼是PC矩陣H的零空間。一個(gè)規(guī)則的LDPC塊碼(dv,dc)有VND度dv和CND度dc,度等于H的列(或行)重。PC矩陣表示一個(gè)線性方程組,其中每一行都可以由CND的線性組合表示。任何由H生成的行空間張成的向量集合都可以作為PC矩陣的行。一個(gè)節(jié)點(diǎn)的度是Tanner圖中連接到它的邊(線)的數(shù)量。

LDPC碼的譯碼算法是獨(dú)立發(fā)現(xiàn)的,它們有不同的名稱。最常見的是BP算法、消息傳遞算法(MPA)和和積算法。在BP算法中,概率消息在變量和檢查節(jié)點(diǎn)之間迭代交換,直到找到有效碼字或超過最大迭代次數(shù)。LDPC碼可以使用消息傳遞或二分Tanner圖上的BP進(jìn)行解碼,CND和VND相互通信,在每次解碼迭代中依次傳遞相關(guān)LLR的修正估計(jì)。Bit的可靠性度量被定義為:LLR(bi)=log(bi=0)-log(bi=1)。

其中,bi 代表接收碼字的第i比特。如果LLR>0,意味著更有可能bi=0,當(dāng)LLR<0,意味著更有可能bi=1。

舉個(gè)例子,假設(shè)發(fā)射的碼字(0,0,0,0,0,0,0,0,0,0,0),譯碼器接收到的碼字為(0,0,0,0,1,0,0,0,0,0,0)。11bit有效碼字c=(c0,c1..,c10),所有比特應(yīng)該等于0(mod 2)。接收向量不滿足此約束,表明接收碼字出現(xiàn)了錯(cuò)誤。進(jìn)一步,假設(shè)解碼器具有比特級(jí)可靠性度量,其形式為正確概率(接收值的置信度)為(0.9,0.8,0.86,0.7,0.55,1,1,0.8,0.98,0.68,0.99)。這些軟信息中,比特c4可靠性最低,應(yīng)翻轉(zhuǎn)以帶來符合代碼約束的接收碼字。使用LLR作為消息,與消息傳遞算法相比,硬件實(shí)現(xiàn)變得容易得多。通過簡(jiǎn)化消息傳遞算法中最復(fù)雜的CND更新過程,進(jìn)一步降低了實(shí)現(xiàn)的復(fù)雜性。這種算法被稱為最小和算法(min-sum algorithm)。

LDPC解碼器可以使用串行、并行或部分并行架構(gòu)來實(shí)現(xiàn)。LDPC解碼器的性能取決于解碼器的算法、架構(gòu)、LLR的定點(diǎn)量化和最大譯碼迭代次數(shù)等因素。譯碼過程中使用的最大譯碼迭代次數(shù)決定了LDPC譯碼器的數(shù)據(jù)速率和延遲。在執(zhí)行最大譯碼迭代次數(shù)之后,然后估計(jì)碼字。為了節(jié)省解碼器功耗和減少延遲,需要在每次迭代后驗(yàn)證碼字,并在估計(jì)的碼字正確時(shí)停止解碼過程的解碼器設(shè)計(jì)。如果在下次迭代開始時(shí),估計(jì)碼字奇偶校驗(yàn)得到滿足,則譯碼過程停止。

LDPC碼與常見的幾種糾錯(cuò)碼相比,其性能有較大優(yōu)勢(shì),因而可滿足5G高數(shù)據(jù)率、低延時(shí)和高可靠等應(yīng)用需求。

LDPC碼與其他糾錯(cuò)碼性能對(duì)比

上面介紹了LDPC碼的基本原理,重點(diǎn)把握幾個(gè)概念:

什么是變量節(jié)點(diǎn)?

什么是校驗(yàn)節(jié)點(diǎn)?

校驗(yàn)矩陣H與Tanner圖之間的相互轉(zhuǎn)換過程。

QC-LDPC碼的基本特點(diǎn)是什么?

LLR的具體求解方法。

LDPC譯碼算法有哪些?譯碼算法各自的特點(diǎn),以及硬件實(shí)現(xiàn)復(fù)雜度評(píng)估。

影響LDPC譯碼性能的幾個(gè)關(guān)鍵因素是什么?

如何有效提升LDPC譯碼性能?(BLER、吞吐率)

對(duì)于LDPC碼在DVB-S2、WLAN和5G NR中的具體應(yīng)用,其碼率和碼塊長度有所不同。特別是在5G NR中,將支持低至1/5、高至8/9的多種碼率,在Sub-6GHz頻段100M帶寬下,下行需滿足1~3Gbps、上行幾百M(fèi)bps~Gbps的數(shù)據(jù)速率需求。而在毫米波頻段,需要更高的吞吐率需求。

關(guān)于LDPC譯碼算法,可閱讀前期文章《5G通信算法:LDPC譯碼算法詳解》。

從通信系統(tǒng)角度看,除高速接口外,基帶的信道編解碼器和射頻前端的AD/DA的設(shè)計(jì),是最難的部分,然而這在很大程度上決定一款產(chǎn)品的競(jìng)爭(zhēng)力。當(dāng)然,各種濾波器、功放、MIMO估計(jì)與均衡器,也是影響性能的重要部件。

那么,我們?cè)撊绾尾捎肍PGA自行設(shè)計(jì)一款LDPC編解碼器呢?在設(shè)計(jì)之前,我們需要基于某一標(biāo)準(zhǔn)或自定義LDPC碼,完成相應(yīng)的算法分析和資源評(píng)估,同時(shí)對(duì)其中的關(guān)鍵模塊要有相應(yīng)的實(shí)現(xiàn)方案。在具體設(shè)計(jì)實(shí)現(xiàn)時(shí),RTL模塊設(shè)計(jì)高內(nèi)聚、低耦合,同時(shí)參數(shù)和控制邏輯應(yīng)友好靈活,并以較少的資源實(shí)現(xiàn)整個(gè)功能,并盡可能提升時(shí)鐘運(yùn)行頻率。

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)