專利名稱:基于低密度奇偶檢驗編碼的信源信道聯(lián)合編碼方法
技術領域:
基于低密度奇偶校驗編碼的信源信道聯(lián)合編碼方法屬于通信技術領域,特別涉及采用信源信道聯(lián)合編碼技術在無線多媒體通信系統(tǒng)中應用的一種融合隱馬爾可夫信源估計和LDPC(低密度奇偶校驗)編碼的有效而快速的編碼方法。
背景技術:
在大多數(shù)無線多媒體通信系統(tǒng)中,信源編碼和信道編碼是分開考慮、獨立設計的。這一做法的依據(jù)是山農(nóng)理論如果信息傳輸速率R小于信道容量C,則存在一種信源編碼和一種信道編碼方法,可以使信息在有噪信道中達到無誤傳輸。然而在實際系統(tǒng)中,由于編碼延時和編碼復雜度受限,信源編碼不可能完全去除信息序列的冗余;而信道編碼亦不能達到山農(nóng)極限的糾錯性能。特別是在無線多媒體通信系統(tǒng)中,由于信源編碼主要強調(diào)幀結構特性而非冗余度壓縮,而大量的數(shù)據(jù)需要在帶寬受限并且受到各種突發(fā)嚴重干擾的信道中傳輸,分離編碼所帶來的問題愈加嚴重,造成了無線多媒體通信的傳輸瓶頸。
信源信道聯(lián)合編碼技術將信源編碼和信道編碼進行聯(lián)合優(yōu)化,一方面可以利用信源編碼后的殘留冗余幫助信道編碼提高糾錯性能,另一方面也可以根據(jù)信道編碼不同碼元的不等差錯保護特性,使得信道譯碼后的殘余誤碼對信源解碼的影響最小,非常適合無線多媒體信道中的應用。
現(xiàn)有的信源信道聯(lián)合編碼方法主要有兩種。方法一是傳統(tǒng)的方法,即在進行信源編碼時考慮信道編碼的特性,使得經(jīng)過信源編碼后的信息序列帶有一定的冗余,在信道解碼是考慮這部分冗余,使得信道譯碼后的殘留誤碼引起的誤碼擴散達到最小。這種方法可以有效抑制信道編碼碼長有限所帶來的誤碼擴散,但是信源的冗余應用的不充分,因而性能的改進不明顯。方法二是將信道編碼的最新技術——Turbo編碼與隱馬爾可夫信源估計相結合,在發(fā)送端直接對含有冗余的多媒體信源進行Turbo編碼,在接收端把對有噪信源的冗余度估計作為Turbo碼的一個成分碼,采用反饋式串行迭代的方法進行聯(lián)合譯碼。通過這種方法,在每一次聯(lián)合迭代中,隱馬爾可夫估計所得到的信源冗余可以改進信道碼的糾錯性能,而經(jīng)過信道碼糾錯后的信息序列反饋給隱馬爾可夫估計作為下一次迭代的輸入,可以使對信源的估計做得更加準確,從而可以在下一次迭代中為信道解碼提供更多的有用信息。這一正反饋過程在不需事先知道信源冗余特性的前提下,可以使得信源的冗余和信道Turbo碼的糾錯性能得到充分的利用。從而獲得了逼近山農(nóng)極限的信息傳輸性能。但是,在聯(lián)合迭代譯碼的過程中,由于Turbo碼各成份碼所采用的都是串行算法,同時迭代過程中需要對信息序列進行多次交織/反交織,使得譯碼延時和譯碼復雜度過大,限制了這項技術在實際系統(tǒng)中的應用。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出了一種基于LDPC編碼的信源信道聯(lián)合編碼以解決現(xiàn)有的技術之不足。
如圖1所示,在發(fā)送端,含有冗余的信源輸出序列不用經(jīng)過信源壓縮編碼,直接進行LDPC編碼,得到包括信息序列和校驗序列的碼序列,然后送到下一級調(diào)制成適合在無線信道中傳輸?shù)牟ㄐ?,進行傳輸。在接收端,接收天線對接收到的信息序列進行解調(diào),得到接收序列。然后對接收序列采用聯(lián)合信源估計、信道譯碼的方法進行解碼,過程如下首先,對接收序列中的信息序列部分進行隱馬爾可夫參數(shù)估計,并根據(jù)所得參數(shù)計算外信息,隨后將接收序列和信源估計所得的外信息序列作為信道譯碼的輸入,進行LDPC迭代譯碼。經(jīng)過一定次數(shù)的迭代后,判斷所得的硬判決譯碼結果是否為一個合法的碼序列。如果是,則迭代譯碼結束,輸出該硬判決序列中的信息序列;如果不為一個合法碼字,將經(jīng)過LDPC譯碼修正后的信息序列反饋給信源譯碼器,進行再次隱馬爾可夫參數(shù)估計并計算相應的外信息輸出。然后用所得的外信息序列修正接收信息序列,繼續(xù)進行LDPC迭代。直到所得序列為一個合法碼序列,或者迭代次數(shù)達到限定值。此時,輸出硬判決信息序列,然后開始下一個碼矢量的聯(lián)合譯碼。
本發(fā)明的特征在于,它是一種融合隱馬爾可夫信源估計和低密度奇偶校驗(LDPC)編碼的信源信道聯(lián)合編碼方法,它依次含有如下步驟(1),在發(fā)送端,對含有冗余的信源輸出序列用LDPC編碼器進行LDPC編碼,得到包括信息序列和校驗序列的碼序列,再把它調(diào)制后送到無線信道進行傳輸;(2),在接收端,對接收到的信息序列解調(diào),得到接收序列;(3),對接收序列采用聯(lián)合信源估計、信道譯碼的方法進行解碼,它依次含有如下步驟(3.1),在信源譯碼器中對接收序列中的信息序列進行隱馬爾可夫參數(shù)估計,并根據(jù)所得參數(shù)計算外信息;(3.2),再把接收序列和信源估計所得的外信息序列作為信道譯碼的輸入,在LDPC譯碼器中進行和積迭代譯碼;(3.3),經(jīng)過一定次數(shù)的迭代后,判斷所得的硬判決譯碼結果是否為一個合法的碼序列如果是一個合法的碼序列,則迭代譯碼結束,輸出該硬判決序列中的信息序列;如果不是一個合法的碼序列,經(jīng)過LDPC譯碼修正后的信息序列反饋給信源譯碼器,再次進行隱馬爾可夫參數(shù)估計并計算相應的外信息輸出,然后用所得的外信息序列修正接收信息序列,繼續(xù)進行LDPC迭代,直到所得序列為一個合法碼序列,或者迭代次數(shù)達到極限值,輸出硬判決信息序列;(4),如果需要,開始下一個碼矢量的聯(lián)合譯碼。
步驟(3)所述的聯(lián)合譯碼方法用軟件實現(xiàn)時依次含有如下步驟(a)譯碼器初始化聯(lián)合迭代的次數(shù)置為零,設置最大的聯(lián)合迭代次數(shù),同時設置在每一次聯(lián)合迭代中LDPC碼的和積譯碼迭代次數(shù);
(b)接收序列輸入到詳碼器;(c)譯碼器計算接收序列的硬判決,判斷是否為一個合法碼字如果是,輸出相應硬判決結果,本次譯碼過程結束;否則,對接收序列中的信息序列部分進行一次隱馬爾可夫估計,并用所得的外信息修正接收序列;計算經(jīng)過修正后的接收序列的硬判決,并判斷得到的結果是否為一個合法的碼字如果是,輸出相應的硬判決結果,本次譯碼過程結束;否則,進行規(guī)定次數(shù)的LDPC和積譯碼迭代,在結束迭代時聯(lián)合譯碼的迭代次數(shù)加1,隨后判斷聯(lián)合迭代次數(shù)是否小于最大允許值如果是,返回到步驟(c),繼續(xù)執(zhí)行相應的譯碼過程;否則,計算并輸出所得的硬判決結果;(d)根據(jù)輸入情況,判斷是否需要進行下一次譯碼過程。
實驗證明,它達到了預期目的。
圖1.本發(fā)明聯(lián)合編碼方法的原理框圖。
圖2.重復碼的譯碼節(jié)點圖。
圖3.校驗碼的譯碼節(jié)點圖。
圖4.LDPC碼的譯碼網(wǎng)格圖。
圖5.本發(fā)明聯(lián)合估計/譯碼原理圖。
圖6.軟件實現(xiàn)本發(fā)明聯(lián)合譯碼算法的流程圖。
具體實施例方式
本發(fā)明所述方法的原理及采用的算法說明如下一.首先,考慮在接收端采用含有傳輸差錯的接收序列時進行隱馬爾可夫信源估計的算法。
考慮一個由轉(zhuǎn)移狀態(tài)參數(shù)為aij(i,j=0,1)的兩狀態(tài)馬爾可夫信源產(chǎn)生的二元比特序列{uk,k=1,2,…,K},(式中K為信道碼中信息比特的長度)。經(jīng)過信道傳輸后,接收到的含有噪聲的信息序列為Rk(k=1,2,…,K),其中,Ri1表示從R1到Ri的符號序列。此外,根據(jù)信道噪聲的特性,在原來的馬爾可夫模型中引入傳輸差錯概率P,使原來轉(zhuǎn)移概率為1路徑變?yōu)橐愿怕?-P轉(zhuǎn)移,而原來轉(zhuǎn)移概率為0的路徑則變?yōu)橐愿怕蕄轉(zhuǎn)移。這樣,經(jīng)過噪聲信道傳輸后所得的信息序列可以采用該擴展模型表示。在未知信源參數(shù)和信道傳輸差錯概率的條件下,接收端可以采用隱馬爾可夫估計的方法,根據(jù)該擴展模型和接收序列得到這兩個參數(shù),同時計算出相應的外信息。
假設該隱馬爾可夫信源的初始參數(shù)為λ=p{u,sj|si},π,u∈{0,1},i,j=0,1},其中π為初始狀態(tài),同時定義sk為隱馬爾可夫信源的第k個狀態(tài),ek={sk-1=i;uk;sk=j}為第k個轉(zhuǎn)移路徑,P{u,sj|si}為相應的轉(zhuǎn)移概率,則對該模型參數(shù)的前后項迭代估計算法為αk(i)=P{sk=i|R1k,λ}]]>=Σsk-1ΣukP{sk-1=j,uk,sk=i,R1k-1,Rk|λ}P{R1k-1|λ}·P{|Rk|R1k-1,λ}]]>=Σsk-1Σukαk-1(j)·P{uk,sk=i|sk-1=j,λ}·P{Rk|uk}P{Rk|R1k-1,λ}-------(1)]]>式中αk(i)為前項方程,并且P{Rk|R1k-1,λ}=Σsk-1ΣukΣskP{sk-1=j,uk,sk=i,Rk|R1k-1,λ}]]>=Σsk-1ΣukΣskαk-1(j)·P{uk,sk=i|sk-1=j,λ}·P{Rk|uk}----(2)]]>同樣,后項方程βk(i)由下式給出βk(i)=P{Rk+1K|sk=i,λ}P{Rk+1K|R1k,λ}]]>=Σuk+1Σsk+1P{uk+1,sk+1=j,Rk+1,Rk+2K|sk=i,λ}P{Rk+1|R1k,λ}·P{Rk+2K|R1k+1,λ}]]>=Σuk+1Σsk+1P{uk+1,sk+1=j|sk=i,λ}·P{Rk+1|uk+1}·βk+1(j)P{Rk+1|R1k,λ}-----(3)]]>因而,第k個轉(zhuǎn)移路徑的概率可以由下式得到(ek)=P{sk-1=i,uk,sk=j|R1K,λ}]]>=P{sk-1=i,uk,sk=j,R1K|λ}P{R1K|λ}]]>=P{sk-1=i,R1k-1|λ}P{R1k-1|λ}·P{uk,sk=j|sk-1=i,λ}P{Rk|R1k-1,λ}]]>·P{Rk|uk}·P{Rk+1K|sk=j,λ}P{Rk+1K|R1k,λ}]]>=αk-1(i)·P{dk,sk=j|sk-1=i,λ}·P{Rk|uk}·βk(j)P{Rk|R1k-1,λ}-----(4)]]>注意到在隱馬爾可夫模型的轉(zhuǎn)移路徑中,任意第k個路徑ek都是由起始狀態(tài)si,終止狀態(tài)sj,及其相應的信源輸出u決定。從而,轉(zhuǎn)移路徑概率P{si,u,sj|λ}可以通過下式估計
P{si,u,sj|λ}=1KΣk=1KP(ek|λ),si,sj∈{S0,S1},u∈{0,1}----(5)]]>據(jù)此,可以得到各路徑的概率的修正式P′{u,sj|si,λ}=P{si,u,sj|λ}ΣuΣsjP{si,u,sj|λ}----(6)]]>根據(jù)以上各式,噪聲條件下隱馬爾可夫信源的參數(shù)通過迭代修正為λ={p{u,sj|si,λ},π,u∈{0,1},i,j=0,1}.注意到,當信息序列的長度足夠長時,初始狀態(tài)誤差所帶來的影響非常小,因而本算法去掉了對信源初始狀態(tài)的估計過程。
通過上面所述的迭代過程,隱馬爾可夫模型的轉(zhuǎn)移路徑參數(shù)可以被精確估計出來。根據(jù)這些模型參數(shù),隱含在信源序列的信息冗余可以被有效的提取出來,寫成外信息的形式為LLRe(uk)=lnΣsk-1Σskαk-1(i)·P{uk=1,sk=j|sk-1=i,λ′}·βk(j)Σsk-1Σskαk-1(i)·P{uk=0,sk=j|sk-1=i,λ′}·βk(j)----(7)]]>通過這些外信息,接收序列中的傳輸差錯可以被有效的修正。作為一個例子,表1列出了隱馬爾可夫估計前后接收信息序列的誤比特率。此次仿真的信源比特由一個熵率為0.81比特/符號的二狀態(tài)馬爾可夫信源產(chǎn)生,每個信息序列的長度為5000比特,對每個Eb/No(即每個比特的平均信號功率與噪聲功率的比值)下至少進行100萬比特的仿真。由表1可見,隱馬爾可夫信源估計所得的外信息可以有效降低信道傳輸產(chǎn)生的差錯。
表1.隱馬爾可夫估計前后的信息序列的誤比特率
二.采用LDPC碼進行差錯控制的譯碼方法為1.LDPC碼的定義和參數(shù)LDPC碼是一種二進制分組碼,這種碼采用超稀疏矩陣作為校驗矩陣。矩陣中每行(每列)中非零元素的個數(shù)非常稀少,且位置呈隨機分布。為了便于描述,定義一行(一列)中非零元素的個數(shù)為該行(列)的重量。由于LDPC碼的校驗矩陣為隨機生成的矩陣,各行(列)的重量不確定,因此采用重量分布式來描述這種矩陣。同一類LDPC碼校驗矩陣的列重量分布可以用分布式表示為
λ(x)=Σi=2dvλixi-1----(8)]]>式中λi表示重量為i的列在矩陣中所占的份量,dv為矩陣中列重量的最大的值。同樣,同一類LDPC碼校驗矩陣的行重量分布采用下式描述ρ(x)=Σj=2dcρjxj-1---(9)]]>式中ρj表示重量為j的行在矩陣中所占的份量,dc為矩陣中行重量的最大值。由于LDPC碼是分組碼,對于任何合法的碼字V,與校驗矩陣H的乘積為零,即H·VT=0。由該校驗方程可知,校驗矩陣中每列的非零元素只對應LDPC碼的同一個碼元,形成了一個相當于重復碼的約束。為了便于譯碼過程中的描述,定義這種約束關系為一個比特節(jié)點,節(jié)點的階數(shù)即為該列的重量。而校驗矩陣中每行的非零元素,將所對應的LDPC碼元映射成一個相當于校驗碼的約束。同樣定義這種校驗關系為一個校驗節(jié)點,節(jié)點的階數(shù)即為該行的重量。矩陣中的各個非零元素,既參與了比特節(jié)點的約束關系,又參與了校驗節(jié)點的約束關系,因而可以定義矩陣非零元素所對應的關系為連結這兩種節(jié)點的“連結線”。在迭代譯碼過程中,譯碼器利用矩陣的行和列所對應的校驗節(jié)點和比特節(jié)點的約束關系進行迭代譯碼。在一次迭代過程中,首先利用比特節(jié)點的約束關系進行譯碼,各比特節(jié)點的輸入為接收序列對應的對數(shù)似然值(即各個元符號取“1”的概率除以取“0”的概率再取自然對數(shù)所得的值)以及相關校驗節(jié)點在上一次迭代的輸出;隨后,比特節(jié)點的輸出通過“連結線”送到相應的校驗節(jié)點,再利用校驗節(jié)點的約束關系進行譯碼。在這個過程中,一種節(jié)點的輸出成為另外一種節(jié)點的輸入,矩陣中非零元素所對應的“連結線”成為了這兩種節(jié)點輸入輸出交換信息的“通道”。對于碼長為N比特,列重量分布和行重量分布分別由(8)(9)兩式確定的LDPC碼,其i階比特節(jié)點的個數(shù)為Ni=N·λi/iΣi=2dvλi/i=N·λi/i∫01λ(x)dx,2≤i≤dv---(10)]]>同理,j階校驗節(jié)點的個數(shù)為Mj=M·ρj/jΣj=2dcρj/j=M·ρj/j∫01ρ(x)dx2≤j≤dc---(11)]]>式中M為一個LDPC碼字中校驗碼元的長度。
2.LDPC碼的譯碼LDPC碼的譯碼充分應用了校驗矩陣的超稀疏特性,通過比特節(jié)點和校驗節(jié)點的約束關系計算并輸出外信息,并相互反饋,進行迭代譯碼。(外信息即所有同屬于一個碼字的其它碼元通過碼字的約束關系而得到的關于某一個碼元取值的信息,采用外信息交互是為了避免迭代過程中出現(xiàn)正反饋。)當前,LDPC碼的譯碼方法主要為和積譯碼方法。這種方法的輸入為接收序列的對數(shù)似然值,并在對數(shù)空間下通過利用比特節(jié)點和校驗節(jié)點的約束關系進行迭代譯碼。此時,比特節(jié)點的約束關系表現(xiàn)為“和”的形式,即各比特節(jié)點的輸出是各個輸入對數(shù)似然值的和;而相應的校驗節(jié)點則表現(xiàn)為某種“積”的形式,即各校驗節(jié)點的輸出是各個輸入對數(shù)似然值的某種“連乘積”。由于這個特點,該方法被稱之為和積譯碼方法。
以二元輸入加性白高斯噪聲信道下的信息傳輸系統(tǒng)為例,長為N-M比特的二進制信息序列被LDPC編碼器編成長度為N比特的LDPC碼字。隨后,該碼字被調(diào)制成取值為±1的符號序列在高斯信道中傳輸。在接收端,接收機經(jīng)過匹配濾波后得到了一串含噪聲干擾的長度為N的實數(shù)序列RN1,隨后進行信號解調(diào)。高斯信道、BPSK調(diào)制下,第i個碼元為1而經(jīng)調(diào)制和傳輸后接收機收到信號為R1的概率為P(Ri|vi=1)=12πσ2exp{-12σ2(Ri-1)2},1≤i≤N---(12)]]>其中σ2為信道噪聲的標準方差。
同樣,第i個碼元為0而經(jīng)調(diào)制和傳輸后接收機收到信號為Ri的概率為P(Ri|vi=0)=12πσ2exp{-12σ2(Ri+1)2},1≤i≤N---(13)]]>由貝葉斯定理,得到P(vi=1|Ri)=P(Ri|vi=1)·P(vi=1)P(Ri)--(14)]]>P(vi=0|Ri)=P(Ri|vi=0)·P(vi=0)P(Ri)--(15)]]>在發(fā)送過程中,碼元符號取0和1的概率相等。為了便于解調(diào)信號的輸出,通常采用對數(shù)似然比的形式表示接收到的第i個碼元取值的最大后驗概率LLR(Ri)=lnP(vi=+1|Ri)P(vi=-1|Ri)----(16)]]>由以上各式,得
LLR(Ri)=lnP(vi=+1|Ri)P(vi=-1|Ri)=lnP(Ri|vi=+1)P(Ri|vi=-1)]]>=ln12πσ2exp{-12σ2(Ri-1)2}12πσ2exp{-12σ2(Ri+1)2}=2σ2Ri]]>=sign(Ri)·|2σ2Ri|-----(17)]]>式中Sign(●)為符號函數(shù)。上式中,第一項符號函數(shù)表示了由接收信號得到的原發(fā)送信號取值概率的比較結果。符號函數(shù)取正值表示原碼元符號為1的概率大于為0的概率;取負值則表示原碼元符號為0的概率大于為1的概率。而第二項絕對值的大小則表示了該符號取1的概率與取0的概率之間的差異程度。絕對值越大,則兩個概率值的差異越大。因此,(17)式根據(jù)每個接收信號提供了兩個信息,一個信息為原信號最可能取哪個值,另一個信息則表示了這種判斷的可靠程度。接收機的這種解調(diào)過程充分保留了原信號的信息,被稱為“軟解調(diào)”,或者“軟判決”,相應的軟判決輸出稱為“軟信息”。
解調(diào)器輸出的軟信息被送到LDPC譯碼器進行譯碼。LDPC譯碼器的譯碼充分利用了校驗矩陣的超稀疏特性,將校驗矩陣的約束關系分解為行的校驗碼約束關系和列的重復碼約束關系,通過利用這兩種約束關系的相互反饋,進行迭代譯碼。為了便于了解在這兩種約束關系下的譯碼過程,下面首先討論重復碼和校驗碼的譯碼過程。
1)重復碼的約束關系及其譯碼重復碼的編碼即是將輸入的信息符號進行N-1次重復,從而得到一個長為N的碼字VN1。因此,重復碼只有兩個合法碼字全0碼字0N1和全1碼字1N1。經(jīng)過調(diào)制、傳輸、解調(diào)以后,譯碼器根據(jù)調(diào)制器提供的軟信息進行譯碼。在接收到的信號序列為RN1的前提下,根據(jù)重復碼的約束關系進行譯碼,得到一個采用對數(shù)似然比表示的輸出序列UN1。其中,第i個符號最大后驗概率取值的對數(shù)似然比為LLR(ui)=lnp(vi=1|R1N)p(vi=0|R1N)=lnp(vi=1,R1N)p(vi=0,R1N)]]>=lnΣ1≤i′≤Ni′≠i···Σp(v1,v2,···,vi=1,···,vN,R1N)Σ1≤i′≤Ni′≠i···Σp(v1,v2,···,vi=0,···vN,R1N)]]>=lnΣvi′∈V1Ni′≠i···Σp(v1,v2,···,vi=1,···,vN)·p(R1N|v1,v2,···v1=1,···,vN)Σvi′∈V1Ni′≠i···Σp(v1,v2,···,vi=0,···,vN)·p(R1N|v1,v2,···,vi=0,···,vN)----(18)]]>由于重復碼只有全0和全1兩個碼字,因而上式中分子分母乘積項中的第一項只有在碼字分別為全1碼字和全0碼字時,概率才不為0。從而,(18)式可以繼續(xù)化簡為
LLR(u1)=lnp(R1N|V1N=11N)p(R1N|V1N=01N)=lnΠi′=1Np(Ri′|vi′=1)Πi′=1Np(Ri′|vi′=0)----(19)]]>=Σi′NLLR(vi′)=LLR(vi)+Σi′≠iLLR(vi′)]]>上式中結果的第一部分是碼元i接收信號的對數(shù)似然比值,為碼元本身所具有的信息、,稱為“先驗信息”;第二部分是碼字中其它碼元根據(jù)碼字的約束關系而提供的關于碼元i的取值信息,稱為“外信息”。由于先驗信息為各個碼元本身就有,因而在譯碼過程中譯碼器只需給每個碼元反饋相應的外信息。重復碼的譯碼關系可以采用圖2所示的一個節(jié)點圖來表示。
圖2中的節(jié)點共有N條連結線,對應N個碼元。這些連結線既可以作為輸入也可以作為輸出,分別對應N個碼元的輸入和譯碼輸出。在一次譯碼過程中,接點通過N條連結線收到以對數(shù)似然比的形式表示的解調(diào)信息序列,隨后,通過節(jié)點的運算,譯碼結果也通過這些連結線輸出N個碼元的外信息。其中,每條連結線的輸出為其它各條連結線的輸入值的累加和。在對LDPC碼譯碼的描述中,重復碼的這種譯碼節(jié)點也被稱為“比特節(jié)點”。
2)校驗碼的約束關系及其譯碼以碼率為N-1/N的校驗碼為例,長為N-1個比特的信息序列經(jīng)過編碼后得到一個碼長為N的校驗碼,碼元之間的約束關系可以用如下的關系式表示v1ν2…νN=0 (20)式中表示二進制和,即二進制邏輯中的“異或”。校驗碼所得的碼字VN1經(jīng)過調(diào)制、傳輸、解調(diào)后,得到包含該碼字信息的一個軟信息序列LLR(RN1)。校驗碼譯碼器即根據(jù)這個軟信息序列進行譯碼。定義二元符號ei為碼字中除了第i個碼元vi外其它所有碼元的二進制和,則由(20)式可得viei=0 (21)由二進制的異或關系以及(21)式,得碼元vi與符號ei取值相同。因而,碼元vi與符號ei形成一個相當于重復碼的關系。由上面重復碼所討論得到的結果可知,碼元vi通過譯碼后所得的后驗信息為LLR(v^i)=LLR(vi)+LLR(ei)---(22)]]>顯然,(22)式中的第二項就是在譯碼過程中譯碼器根據(jù)整個碼序列的約束關系反饋給碼元νi的外信息。下面,我們以碼長為3的校驗碼為例,推導外信息的表示式。不失一般性,我們討論第一個碼元的外信息表示式。在碼長為3比特的情況下,符號ei取值為1的概率為P(e1=1)=P(ν2=1)·P(ν3=0)+P(ν2=0)·P(v3=1)=P(ν2=1)·(1-p(ν3=1))+(1-p(ν2=1))·P(ν3=1) (23)=P(ν2=1)+p(ν3=1)-2p(ν2=1)·p(v3=1)
從而,1-2p(e1=1)=1-2p(ν2=1)-2p(ν3=1)+4p(ν2=1)·P(ν3=1)(24)=(1-2p(ν2=1))·(1-2p(ν3=1))引入一個函數(shù)Φ(x)=tanh(-12x)=exp(-12x)-exp(12x)exp(-12x)+exp(12x)=1-exp(x)1+exp(x)---(25)]]>那么,Φ(LLR(e1))=Φ(lnp(e1=1)p(e1=0))=1-exp(lnp(e1=1)p(e1=0))1+exp(lnp(e1=1)p(e1=0))=1-2p(e1=1)---(25)]]>由(24)、(26)式,得碼元ν1的外信息表示形式為LLR(e1)=φ-1(φ(LLR(LLR(v2)·φ(LLR(v3))(27)(27)式可以推廣到任意一個碼元,也可以推廣到碼長大于3比特的情況。在碼長為N比特得情況下,碼元i的外信息為LLR(ei)=Φ-1(Π1≤i′≤Ni′≠iΦ(LLR(vi)))---(28)]]>校驗碼的這種譯碼運算關系也可以采用一個節(jié)點來表示,如圖3所示圖3中節(jié)點具有N個連結線,對應N個碼元;每根連結線既是輸入也是輸出。其中,輸入對應于輸入到譯碼器的軟信息序列,輸出則是譯碼器通過運算反饋給各個碼元符號的外信息。在一次譯碼中,每根連結線輸入該碼元解調(diào)后得到的軟信息到節(jié)點,隨后節(jié)點通過運算,給每個連結線一個外信息輸出。注意到,圖3中每根連結線的輸出是以其它所有連結線的輸入值作為輸入的運算結果。在后續(xù)LDPC碼的譯碼中,校驗碼的這種譯碼節(jié)點被稱為“校驗節(jié)點”。
3)具體的譯碼過程信息序列經(jīng)過LDPC碼的編碼、調(diào)制、傳輸后,由接收機進行匹配濾波,得到相應的包含LDPC碼字信息的接收序列RN1,隨后這個序列被送到LDPC碼譯碼器進行糾錯譯碼。在一次譯碼過程中,譯碼器首先對接收序列進行解調(diào),把接收序列轉(zhuǎn)化為軟信息的形式;隨后,利用LDPC碼的校驗方程H·VT=0進行譯碼。注意到LDPC碼的校驗矩陣為超稀疏矩陣,每行/列的非零元素個數(shù)非常稀少。由校驗方程知,矩陣的每行LDPC碼的乘積,實際上是與該行非零元素相乘的碼元的二進制和。由校驗碼的約束方程可知,這些碼元構成了一個校驗碼的約束。由于校驗矩陣有M行,因而一共能得到M個校驗碼。通過采用校驗碼的譯碼方法,每個校驗碼都可以在各自的約束關系下給各個碼元一個反映該碼元取值情況的外信息輸出。而對于校驗矩陣的每一列,由于其元素在校驗矩陣與碼字的乘法中只與同一個碼元相乘,而該列的每個非零元素都對應一個校驗碼對該碼元符號取值情況的輸出。于是,這些校驗碼的輸出與接收到的碼元軟信息一起,構成了一個重復碼的約束。由于校驗矩陣共有N列,因而可以得到N個重復碼,分別與LDPC碼字的N個碼元對應。LDPC碼的譯碼即是通過將校驗矩陣的約束關系分解為這M個校驗碼和N個重復碼的約束關系,通過這兩種碼的譯碼輸出相互反饋為對方的輸入,進行并行迭代譯碼。由以上關于重復碼和校驗碼的討論,LDPC碼的譯碼網(wǎng)格圖可以由圖4表示首先,接收序列被譯碼器轉(zhuǎn)化為軟信息后,譯碼器將所有校驗節(jié)點的初始輸出設為0,隨后根據(jù)接收序列的軟信息和校驗節(jié)點的初始輸出進行N個比特節(jié)點的同時譯碼。這些比特節(jié)點對各個碼元的外信息輸出,被通過連結線送到相應的校驗節(jié)點,隨后M個節(jié)點同時進行校驗碼的譯碼,每個校驗節(jié)點的對每個碼元符號的譯碼輸出都通過連結線反饋回相關的比特節(jié)點。在下一次迭代開始時,每個比特節(jié)點都將自己所有的輸入累加,得到一個碼元的后驗信息,隨后根據(jù)這個后驗信息進行硬判決譯碼。N個比特節(jié)點的硬判決譯碼得到一個碼字的估值信息序列。如果校驗矩陣與這個估值信息序列的乘積為零,則譯碼器停止迭代譯碼并輸出這個估值作為譯碼結果;否則,譯碼器進行下一次比特節(jié)點-校驗節(jié)點的譯碼迭代,直到所得估值序列為一個合法LDPC碼字或者達到最大迭代次數(shù)為止。譯碼器的輸出為最后一次得到的硬判決估值序列。
設rij為從校驗節(jié)點j輸出到比特節(jié)點i的外信息,qij為從比特節(jié)點i到校驗節(jié)點j的外信息,該和積譯碼方法的迭代過程包括如下步驟1)譯碼初始化對于接收到的實數(shù)序列RN1,對應的LDPC碼第i個碼元的初始接收值被譯碼器解調(diào)成對數(shù)似然比的形式LLR(Ri)=2σ2Ri,1≤i≤N---(29)]]>式中LLR表示取值為對數(shù)似然比,σ2為信道噪聲的標準方差。同時,初始條件下校驗節(jié)點沒有任何關于碼字的信息,故設置校驗節(jié)點j輸出到比特節(jié)點i的外信息為LLR(rij)=0 (30)2)若所得到的序列的硬判決結果不為一個合法的碼字(其中硬判決是指根據(jù)序列各個符號的對數(shù)似然值決定各個碼元符號的比特取值,對數(shù)似然值為正數(shù)則碼元取符號“1”,為負數(shù)則碼元取符號“0”),執(zhí)行一次和積譯碼的迭代過程為a)比特節(jié)點的譯碼在這種節(jié)點的約束關系下,輸出與輸入的關系為“和”的關系,即比特節(jié)點i到校驗節(jié)點j的外信息輸出為LLR(qij)=Σj′∈Col[i]j′≠jLLR(rij′)+LLR(Ri)--(31)]]>式中Col[i]表示校驗矩陣H第i列非零元素的位置集合。
b)校驗節(jié)點的譯碼在校驗節(jié)點的約束關系下,輸出與輸入的關系為某利“積”的關系,即校驗節(jié)點j輸出到比特節(jié)點i的外信息為LLR(rij)=Φ-1(Πi′∈Row[j]i′≠iΦ(LLR(qi′j)))----(32)]]>式中Row[j]表示校驗矩陣H第j行非零元素的位置集合,并且Φ(x)=tanh(-12x)---(33)]]>3)迭代后所得的第i個比特節(jié)點的譯碼結果為該節(jié)點所有輸入的和LLR(v^i)=Σj′∈Col[i]LLR(rij′)+LLR(Ri)---(34)]]>對所得到的譯碼結果進行如下的硬判決,然后轉(zhuǎn)移到第二步。其中第i個碼元符號的硬判決為 4)如果需要進行下一個碼字的譯碼,跳轉(zhuǎn)到第一步;否則,結束譯碼。
這種譯碼方法充分利用了超稀疏矩陣中比特節(jié)點和校驗節(jié)點的性質(zhì),以及接收序列的軟信息,因而可以以很低的譯碼復雜度得到了逼近山農(nóng)極限的譯碼性能。同時,該算法為并行算法,可以有效降低譯碼延時。
三.結合以上兩個算法,本發(fā)明提出了融合隱馬爾可夫估計和LDPC編碼的聯(lián)合信源信道譯碼方法。
本發(fā)明基于LDPC碼的隨機碼特性,在發(fā)送端去掉了交織器,直接將信源序列與信道編碼級聯(lián)起來。在譯碼端,該聯(lián)合譯碼的結構圖如附圖5所示。圖中上半部分為LDPC碼的比特-校驗節(jié)點,下部分的節(jié)點E表示對信源信息比特序列的隱馬爾可夫估計。在本發(fā)明的迭代譯碼算法中,對接收序列RK1的隱馬爾可夫估計首先進行,利用所得的外信息序列{LLRe(ui),1 ≤i≤K}對接收序列進行修正 隨后,將經(jīng)過修正后的序列送到信道譯碼器,在比特節(jié)點{vi,1≤i≤N}和校驗節(jié)點{cj,1≤j≤M}之間進行LDPC迭代譯碼。如圖5所示,圖中上半部分為LDPC碼的比特-校驗節(jié)點,下部分的節(jié)點E表示對信源信息比特序列的隱馬爾可夫估計。整個聯(lián)合譯碼過程包括以下步驟首先,在隱馬爾可夫估計結點5c,對接收信息序列的隱馬爾可夫估計首先進行,隨后將所得的外信息序列{LLRc(uj),1≤i≤K}輸出到比特節(jié)點5a。在比特節(jié)點5a,對接收序列按照(36)式進行修正,同時按照(30)式進行初始化。然后,根據(jù)(34)(35)式計算各比特節(jié)5a點的硬判決輸出并判斷是否為一個合法的LDPC碼字。如果是一個合法的碼字,則譯碼結束,輸出相應的硬判決結果;否則,執(zhí)行一次迭代過程比特節(jié)點5a根據(jù)(31)式計算各節(jié)點的輸出,通過節(jié)點間連線5d送到相應的校驗節(jié)點5b作為輸入;校驗節(jié)點5b再按照(32)式計算反饋給各比特節(jié)點5a的外信息,并把它作為比特節(jié)點5a下一次迭代的輸入。完成這些運算后,迭代次數(shù)加1。在下一次迭代開始時,各比特節(jié)點5a再次根據(jù)(34)(35)式計算硬判決輸出并判決是否為一個合法碼字。如果是一個合法碼字,則結束譯碼迭代,輸出相應的硬判決序列;否則,再次執(zhí)行一次迭代過程。經(jīng)過一定次數(shù)的和積譯碼迭代后,如果得到的硬判決系列不為一個合法碼字,則將經(jīng)過信道譯碼所得外信息修正的信息序列反饋回信源譯碼器5c,進行隱馬爾可夫估計,隨后,將所得的外信息序列輸出到比特節(jié)點5a,繼續(xù)進行LDPC譯碼迭代。直到得到一個合法碼字或者迭代次數(shù)達到最大。在這種情況下,輸出所得的硬判決信息序列作為譯碼結果。整個聯(lián)合譯碼過程可以總結如下1)根據(jù)接收序列RK1,執(zhí)行一次如上所描述的隱馬爾可夫估計過程,所得的外信息通過連線傳送到相應的信息比特節(jié)點;2)采用和積譯碼算法進行一定次數(shù)(可以根據(jù)實際計算復雜度和糾錯性能的需要選擇5,10,20次)的LDPC碼的譯碼迭代,然后計算相應的硬判決輸出;3)如果步驟2)所得的硬判決輸出不是一個合法的LDPC碼字,并且迭代次數(shù)小于最大允許的迭代次數(shù),將信道譯碼所得到的外信息以及接收信息序列反饋給信源譯碼器,重新進行一次隱馬爾可夫迭代-LDPC迭代聯(lián)合譯碼過程;否則,推出聯(lián)合譯碼過程并輸出所得的硬判決序列。
注意到,在本發(fā)明的算法中,對信源的冗余度估計先于LDPC碼的譯碼進行,這樣獲得一定的有用信息,在一定程度上降低接收序列中的差錯水平。從而可以使LDPC碼的迭代譯碼更快的收斂到正確的碼字上。此外,本發(fā)明采用了一次隱馬爾可夫迭代和多次LDPC和積迭代譯碼相結合的聯(lián)合估計/譯碼方法,不僅可以使LDPC碼的強大糾錯性能得以充分發(fā)揮,還可以使得后續(xù)每次信源估計做得更加準確有效,從而可以給信道譯碼提供更多的有用信息。同時,該方法還有效降低了譯碼復雜度和譯碼延時。
下面,根據(jù)附圖和實施例來更加詳細的解釋本發(fā)明實施例一本實施例為實現(xiàn)本發(fā)明提出的聯(lián)合編碼方法的系統(tǒng)流程,如圖1所示,包括以下步驟在發(fā)送端,含有冗余的信源11輸出序列12,不用經(jīng)過信源壓縮編碼,而直接通過LDPC編碼器13進行信道編碼,得到包括信息序列和校驗序列的碼序列14,然后送到下一級調(diào)制成適合在無線信道15中傳輸?shù)牟ㄐ?,進行傳輸。在接收端,接收天線對接收到的信息序列進行解調(diào),得到接收序列16。然后對接收序列采用聯(lián)合信源估計、信道譯碼的方法進行解碼,過程如下首先,在信源譯碼器18中對接收序列16中的信息序列17進行隱馬爾可夫參數(shù)估計,并根據(jù)所得參數(shù)計算外信息,隨后將接收序列16和信源估計所得的外信息序列19作為信道譯碼的輸入,在LDPC譯碼器1a中進行和積迭代譯碼。經(jīng)過一定次數(shù)的迭代后,判斷所得的硬判決譯碼結果是否為一個合法的碼序列。如果是一個合法的碼序列,則迭代譯碼結束,輸出該硬判決序列中的信息序列1b;如果不為一個合法碼字,將經(jīng)過LDPC譯碼修正后的信息序列1c反饋給信源譯碼器18,進行再次隱馬爾可夫參數(shù)估計并計算相應的外信息輸出。然后用所得的外信息序列修正接收信息序列,繼續(xù)進行LDPC迭代。直到所得序列為一個合法碼序列,或者迭代次數(shù)達到限定值。此時,輸出硬判決信息序列1b,然后開始下一個碼矢量的聯(lián)合譯碼。
實施例二本實施例為采用軟件實現(xiàn)本發(fā)明提出的聯(lián)合譯碼方法的一般流程,如圖6所示,譯碼開始時,譯碼器從步驟6a轉(zhuǎn)到6b,進行初始化聯(lián)合迭代的次數(shù)置為0,設置最大的聯(lián)合迭代次數(shù),同時設置在每一次聯(lián)合迭代中LDPC碼的和積譯碼迭代次數(shù)。隨后,在步驟6c,接收序列輸入到譯碼器;在步驟6d,譯碼器計算接收系列的硬判決,并判斷是否為一個合法碼字。如果是,則跳轉(zhuǎn)到步驟6i,輸出相應的硬判決結果,隨后結束本次譯碼過程;否則,譯碼器轉(zhuǎn)到步驟6e,對接收序列中的信息序列部分進行一次隱馬爾可夫估計,并用所得的外信息修正接收序列。完成這些運算后,譯碼器轉(zhuǎn)到步驟6f,計算經(jīng)過修正后的接收序列的硬判決,并判斷所得的結果是否為一個合法碼字。如果是,則跳轉(zhuǎn)到步驟6i,輸出相應的硬判決結果,隨后結束本次譯碼過程;否則,譯碼器轉(zhuǎn)到步驟6g,進行特定次數(shù)的LDPC和積譯碼迭代,在結束迭代時聯(lián)合譯碼的迭代次數(shù)加1。隨后,譯碼器在步驟6h判斷聯(lián)合迭代次數(shù)是否小于最大允許值。如果是,則跳轉(zhuǎn)到步驟6d,繼續(xù)執(zhí)行相應的譯碼過程;否則,譯碼器轉(zhuǎn)到步驟6i,計算并輸出所得的硬判決結果。在步驟6i,譯碼器根據(jù)輸入情況判斷是否需要進行下一次譯碼過程。如果是,則跳轉(zhuǎn)到步驟6c,開始下一個接收序列的譯碼;否則,譯碼器結束譯碼狀態(tài)。
應當指出,本發(fā)明的方法還可以推廣應用到其它諸如高清晰度有線電視廣播系統(tǒng)等高數(shù)據(jù)率、高可靠性的寬帶有線通信系統(tǒng)中去。
本發(fā)明的效果是,通過隱馬爾可夫信源估計和LDPC碼的結合,得到了與方法二同樣接近山農(nóng)極限的信息傳輸性能;同時,通過利用LDPC碼的隨機碼特性省去聯(lián)合解碼中的交織過程,并且利用LDPC碼的迭代譯碼算法的并行特性,可以得到比方法二小得多的譯碼復雜度和譯碼延時。因此,與已有的方法相比,本發(fā)明的聯(lián)合編碼方法更適合于無線多媒體通信系統(tǒng)的應用。
權利要求
1.基于低密度奇偶校驗編碼的信源信道聯(lián)合編碼方法,含有隱馬爾可夫信源估計的步驟,其特征在于,它是一種融合隱馬爾可夫信源估計和低密度奇偶校驗(LDPC)編碼的信源信道聯(lián)合編碼方法,它依次含有如下步驟(1),在發(fā)送端,對含有冗余的信源輸出序列用LDPC編碼器進行LDPC編碼,得到包括信息序列和校驗序列的碼序列,再把它調(diào)制后送到無線信道進行傳輸;(2),在接收端,對接收到的信息序列解調(diào),得到接收序列;(3),對接收序列采用聯(lián)合信源估計、信道譯碼的方法進行解碼,它依次含有如下步驟(3.1),在信源譯碼器中對接收序列中的信息序列進行隱馬爾可夫參數(shù)估計,并根據(jù)所得參數(shù)計算外信息;(3.2),再把接收序列和信源估計所得的外信息序列作為信道譯碼的輸入,在LDPC譯碼器中進行和積迭代譯碼;(3.3),經(jīng)過一定次數(shù)的迭代后,判斷所得的硬判決譯碼結果是否為一個合法的碼序列如果是一個合法的碼序列,則迭代譯碼結束,輸出該硬判決序列中的信息序列;如果不是一個合法的碼序列,經(jīng)過LDPC譯碼修正后的信息序列反饋給信源譯碼器,再次進行隱馬爾可夫參數(shù)估計并計算相應的外信息輸出,然后用所得的外信息序列修正接收信息序列,繼續(xù)進行LDPC迭代,直到所得序列為一個合法碼序列,或者迭代次數(shù)達到極限值,輸出硬判決信息序列;(4),如果需要,開始下一個碼矢量的聯(lián)合譯碼。
2.根據(jù)權利要求1所述的基于低密度奇偶校驗編碼的信源信道聯(lián)合編碼方法,其特征在于,步驟(3)所述的聯(lián)合譯碼方法用軟件實現(xiàn)時依次含有如下步驟(d)譯碼器初始化聯(lián)合迭代的次數(shù)置為零,設置最大的聯(lián)合迭代次數(shù),同時設置在每一次聯(lián)合迭代中LDPC碼的和積譯碼迭代次數(shù);(e)接收序列輸入到譯碼器;(f)譯碼器計算接收序列的硬判決,判斷是否為一個合法碼字如果是,輸出相應硬判決結果,本次譯碼過程結束;否則,對接收序列中的信息序列部分進行一次隱馬爾可夫估計,并用所得的外信息修正接收序列;計算經(jīng)過修正后的接收序列的硬判決,并判斷得到的結果是否為一個合法的碼字如果是,輸出相應的硬判決結果,本次譯碼過程結束;否則,進行規(guī)定次數(shù)的LDPC和積譯碼迭代,在結束迭代時聯(lián)合譯碼的迭代次數(shù)加1,隨后判斷聯(lián)合迭代次數(shù)是否小于最大允許值如果是,返回到步驟(3),繼續(xù)執(zhí)行相應的譯碼過程;否則,計算并輸出所得的硬判決結果;(4)根據(jù)輸入情況,判斷是否需要進行下一次譯碼過程。
全文摘要
基于低密度奇偶校驗編碼的信源信道聯(lián)合編碼方法屬于通信技術領域,其特征在于,它是一種融合隱馬爾可夫信源估計和低密度奇偶校驗(LDPC)編碼的信源信道聯(lián)合編碼方法,在發(fā)送端,對含有冗余的信源輸出序列進行LDPC編碼后調(diào)制輸出,在接收端,采用聯(lián)合信源估計和信道譯碼的解碼方法,即先計算接收序列的硬判決,判斷其是否為一個合法的碼字如果是,就輸出硬判決結果,否則,在對信息序列部分進行隱馬爾可夫估計后再次硬判決,如果還不是一個合法的碼序列便進行規(guī)定次數(shù)的LDPC和積譯碼迭代。重復以上聯(lián)合迭代過程,直至達到最大允許迭代次數(shù)為止,輸出本次譯碼硬判決結果。它的信息傳輸性能接近山農(nóng)極限,延時小,復雜度低,適合無線多媒體通信中的應用。
文檔編號H04L1/00GK1508972SQ02155459
公開日2004年6月30日 申請日期2002年12月13日 優(yōu)先權日2002年12月13日
發(fā)明者殷柳國, 陸建華, 吳佑壽 申請人:清華大學