【摘要】 LDPC碼和RS碼是兩種應(yīng)用廣泛的信道編碼,在數(shù)字電視廣播、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)字移動(dòng)通信以及深空通信等應(yīng)用中具有優(yōu)異的性能表現(xiàn)。本文介紹了這兩種編碼在二進(jìn)制AWGN信道下的實(shí)現(xiàn)方式,包括編解碼、調(diào)制解調(diào)、信道傳輸?shù)鹊龋煌ㄟ^(guò)仿真分析并比較了這兩種編碼在AWGN信道下的性能特點(diǎn)。
【關(guān)鍵詞】 信道編碼 BPSK調(diào)制 軟判決 信噪比 誤碼率
一、引言
RS碼是一種基于多項(xiàng)式運(yùn)算的循環(huán)線(xiàn)性分組碼,采用了近世代數(shù)理論。它將一條長(zhǎng)度為K的消息(即一個(gè)可獨(dú)立編碼的擁有K個(gè)符號(hào)的數(shù)據(jù)分組)映射為一個(gè)長(zhǎng)度為N(N>K)的碼字(一個(gè)擁有N個(gè)符號(hào)的分組)。其中的符號(hào)是q階有限域GF(q)上的元素,一個(gè)符號(hào)對(duì)應(yīng)于二進(jìn)制數(shù)據(jù)的若干個(gè)比特。一個(gè)RS(N,K,d)碼的碼距為d=N-K+1,可以糾正(N-K)/2個(gè)符號(hào)差錯(cuò)(error),或者糾正N-K個(gè)符號(hào)刪除(erasure)(在刪除信道下)。在一個(gè)碼字內(nèi)糾錯(cuò)位置是任意的且以符號(hào)為單位,RS碼不但能糾正隨機(jī)差錯(cuò)而且特別適合糾正突發(fā)差錯(cuò)。
二、信道傳輸與編解碼
2.1 數(shù)據(jù)傳輸模型,如圖1所示
信道編碼(RS碼或LDPC碼)的碼字集合定義為C[∪] F,即該信道編碼的所有碼字構(gòu)成F的一個(gè)子集。信源產(chǎn)生一條長(zhǎng)度為K的消息m∈F,用向量形式表示為m=[m0,m1,…,mi,…,mK-1](mi∈GF(q))。編碼器執(zhí)行編碼映射g(m):m∈F[→] c∈C。生成的碼字c是一個(gè)N重向量,c=[c0,c1,…,ci,…,cK-1](ci∈GF(q))。碼率定義為R=K/N,表示一個(gè)N符號(hào)的碼字可以傳遞K符號(hào)的消息。對(duì)于二進(jìn)制編碼,q=2,碼字中的每個(gè)符號(hào)是一個(gè)二進(jìn)制比特;對(duì)于q(q=2l,l=2,3,…)進(jìn)制編碼,每個(gè)符號(hào)和l個(gè)二進(jìn)制比特相對(duì)應(yīng)[1],碼字c∈F,可以轉(zhuǎn)換為一個(gè)二進(jìn)制衍生碼c'∈F,即c'=[c'0,c'1,…,c'i,…,c'K-1](c'i∈GF(2))。BPSK調(diào)制器將一個(gè)碼字c'∈F逐比特映射到字符集A={-1+i0,+1+i0}上,得到發(fā)送向量x=[x0,x1,…,xi,…,xNl-1](xi=(-1)),x∈CNl。AWGN信道的噪聲表示為η=[η0,η1,…,ηi,…,ηNl-1],η∈CNl。信道輸出為y=[y0,y1,…,…,yNl-1](yi=xi+ηi),y∈CNl。信道的傳輸特性為
在實(shí)數(shù)域上,
(σ2為噪聲方差,σ2=N0/2,其中常數(shù)N0是單邊噪聲功率譜密度)。經(jīng)過(guò)信道傳輸后的信號(hào)在BPSK解調(diào)后,在硬判決下輸出二進(jìn)制比特序列(當(dāng)yi>0時(shí)輸出比特0;當(dāng)yi<0時(shí)輸出比特1),或在軟判決下輸出信道對(duì)數(shù)似然比(即LLR,Log-Likelihood Ratio)Lch(yi),
解碼器對(duì)輸出數(shù)據(jù)進(jìn)行信道解碼,恢復(fù)出發(fā)送端有效消息。
2.2 RS碼與多項(xiàng)式運(yùn)算
一條消息m可以用關(guān)于x的多項(xiàng)式表示為m(x)=m0+m1x+…+mx+…+mx(mi∈GF(q)),多項(xiàng)式的系數(shù)為消息向量的元素。有限域GF(q)={a0,a1,…,aq-1}共有q個(gè)域元素。按照早期觀點(diǎn),RS碼字的每個(gè)符號(hào)可以看成多項(xiàng)式m(x)在GF(q)的每個(gè)域元素上的值,即c=[m(a0),m(a1),…,m(aq-1)],碼長(zhǎng)N=q。收到的碼字為r={r0,r1,…,rq-1},把消息元素當(dāng)作未知數(shù),可以得到方程
當(dāng)碼字符號(hào)的傳輸差錯(cuò)數(shù)小于或等于(N-K)/2時(shí),通過(guò)選取方程組(4)中滿(mǎn)秩的K個(gè)方程進(jìn)行求解可以得到消息向量的估計(jì)值,不同的K個(gè)方程可能解出不同的估計(jì)值,其中出現(xiàn)次數(shù)較多的估計(jì)值作為譯碼輸出。
現(xiàn)代觀點(diǎn)主要是從生成多項(xiàng)式角度分析。設(shè)計(jì)碼長(zhǎng)為N=q-1,消息長(zhǎng)度為K,碼距為dmin=N-K+1。碼字多項(xiàng)式為c(x)=m(x)g(x),其中
α是域GF(k)的本原元(即α的各次冪通過(guò)本原多項(xiàng)式化簡(jiǎn)可以得到GF(k)上的所有元素),gi是生成多項(xiàng)式的系數(shù)。用矩陣形式表示為c=mG,
G是一個(gè)K×N矩陣,稱(chēng)為生成矩陣,它的第一行的前N-K+1個(gè)元素為生成多項(xiàng)式的各次項(xiàng)按降冪排列后的系數(shù),從第二行開(kāi)始每一行的各元素在前一行的基礎(chǔ)上依次向后移動(dòng)一個(gè)元素位置,其余未標(biāo)注的元素為0。
2.3 LDPC碼及軟判決譯碼
LDPC碼的基本定義是對(duì)于一個(gè)(N-K)×N的稀疏矩陣(即矩陣中非零元素的個(gè)數(shù)遠(yuǎn)小于零元素的個(gè)數(shù))H=[h0,h1,…,hN-K+1],碼字c滿(mǎn)足HcT=0,即
H稱(chēng)為校驗(yàn)矩陣,方程組(7)中的每一個(gè)方程稱(chēng)為一個(gè)校驗(yàn)方程。LDPC碼的性能直接取決于H的構(gòu)造。在Tanner圖上,碼字中的編碼符號(hào)用變量節(jié)點(diǎn)表示,校驗(yàn)方程用校驗(yàn)節(jié)點(diǎn)表示,參與某個(gè)方程校驗(yàn)的變量節(jié)點(diǎn)用邊與對(duì)應(yīng)的校驗(yàn)節(jié)點(diǎn)相連。如圖1所示:
利用H的稀疏特性,可以實(shí)現(xiàn)快速編碼。將碼字表示為c=[v,m],其中m表示消息位,v表示校驗(yàn)位。在編碼過(guò)程中,m是已知的,只需求出v就可以得到整個(gè)碼字。具體如下:
把校驗(yàn)矩陣進(jìn)行劃分為H=[A,B],其中A是(N-K)×(N-K)矩陣,B是矩陣(N-K)×K。校驗(yàn)關(guān)系為[A,B][v,m]T=0,即AvT+BmT=0。若A非奇異矩陣,則存在一個(gè)下三角矩陣L和一個(gè)上三角矩陣U,使A=LU。計(jì)算z=BmT,解方程Ls=z得到s,再解方程UvT=s得到v,即完成編碼。采用這種系統(tǒng)碼編碼方式(即消息符號(hào)是碼字符號(hào)的一部分)時(shí),接收端解碼的同時(shí)就能得到發(fā)送消息。
LDPC碼可以使用解調(diào)信號(hào)的對(duì)數(shù)似然比進(jìn)行解碼,稱(chēng)為和積算法。解碼器的輸入信號(hào)Lch(yi)由公式(3)表示,當(dāng)它為正數(shù)時(shí)表示比特0,當(dāng)它為負(fù)數(shù)時(shí)表示比特1,它的絕對(duì)值越大所代表的比特值的可信度越高。和積算法的關(guān)鍵是對(duì)碼字各比特的對(duì)數(shù)似然比通過(guò)迭代運(yùn)算進(jìn)行更新,使得各比特的對(duì)數(shù)似然比在多次更新后趨向正確值,最后依次將各比特信息判決輸出。步驟如下:
(1)收到碼字的每一位(對(duì)應(yīng)一個(gè)變量節(jié)點(diǎn))的初始信息為L(zhǎng)i=Lch(yi),如果滿(mǎn)足校驗(yàn)關(guān)系,譯碼結(jié)束;如果不滿(mǎn)足校驗(yàn)關(guān)系,將Li發(fā)送到與之相連的校驗(yàn)節(jié)點(diǎn)。
(2)對(duì)于每一個(gè)校驗(yàn)節(jié)點(diǎn)hj,計(jì)算與相連的各個(gè)變量節(jié)點(diǎn)ci的信息Lj(ci),
其中l(wèi)是該校驗(yàn)節(jié)點(diǎn)下的變量節(jié)點(diǎn)的個(gè)數(shù)。然后,將值發(fā)送給相應(yīng)的Lj(ci)。
(3)變量節(jié)點(diǎn)ci向與之相連的每個(gè)校驗(yàn)節(jié)點(diǎn)hj發(fā)送用作下一次計(jì)算Lj(ci)值的輸入信息Li,Li等于來(lái)自與ci相連的除hj外的其它校驗(yàn)節(jié)點(diǎn)的Lj'(ci)之和加上Lch(ci)。
(4)每一個(gè)變量節(jié)點(diǎn)ci用收到的來(lái)自所有與之相連的校驗(yàn)節(jié)點(diǎn)的Lj(ci)之和加上Lch(ci)作為判決信息。依次對(duì)每個(gè)變量節(jié)點(diǎn)的判決信息進(jìn)行判決輸出,譯碼完成。
其中,步驟2——步驟3可以重復(fù)執(zhí)行,使比特差錯(cuò)逐漸減少,直到達(dá)到最大迭代次數(shù)或節(jié)點(diǎn)信息滿(mǎn)足校驗(yàn)關(guān)系。
三、仿真結(jié)果
RS碼的碼長(zhǎng)選取為N=127和N=512,本原多項(xiàng)式分別為P(x)=x7+x+1和P(x)=x9+x4+1。對(duì)這兩種碼長(zhǎng)的RS碼分別在4種不同碼率下進(jìn)行仿真,這4種碼率是R1=0.9843、R2=0.9686、R3=0.9038以及R4=0.6703。發(fā)送消息長(zhǎng)度為107bit。采用硬解碼方式,解碼器輸入為BPSK解調(diào)輸出經(jīng)硬判決后的比特序列。LDPC碼采用DVB-S2標(biāo)準(zhǔn)規(guī)定的校驗(yàn)矩陣,碼長(zhǎng)為N=64800,碼率分別為R1=8/9,R2=4/5,以及R3=1/2。發(fā)送消息長(zhǎng)度為107bit。采用軟解碼方式,解碼器輸入為BPSK解調(diào)輸出的對(duì)數(shù)似然比(LLR值),和積算法的迭代次數(shù)分別為iter=10和iter=20。
仿真圖的橫坐標(biāo)為Eb/N0(dB)(Eb是平均1bit信息的能量,N0是單邊噪聲功率譜密度),縱坐標(biāo)為消息誤比特率pe,每個(gè)樣本點(diǎn)為一次完整的107bit消息傳輸,樣本點(diǎn)橫坐標(biāo)間距為0.4dB。從圖3和圖4可以看出,RS碼的pe隨著Eb/N0的增加逐漸降低。在Eb/N0小于0.5dB時(shí)呈現(xiàn)緩慢下降,pe甚至高于未編碼時(shí)的情況。但超過(guò)5dB后,pe快速下降,直到趨近于0(曲線(xiàn)末端之后未畫(huà)出的樣本點(diǎn)在仿真中pe=0)。對(duì)于同一碼長(zhǎng)而不同碼率的RS碼,碼率越大pe在后段部分下降越快。從圖5和圖6可以看出,LDPC碼具有類(lèi)似的特點(diǎn),但pe的快速下降更為提前。在兩種迭代次數(shù)下,3種不同碼率的LDPC碼都在4dB之前pe全部減小到0。當(dāng)?shù)螖?shù)iter=20時(shí),碼率LDPC碼在略大于1.6dB時(shí)就到達(dá)0。
四、總結(jié)
本文從信源產(chǎn)生的二進(jìn)制數(shù)據(jù)開(kāi)始,介紹了消息在AWGN信道下的傳輸方式并分析了兩種信道編碼——LDPC碼和RS碼的誤碼率特性。