本發(fā)明屬于數(shù)字通信和數(shù)字存儲領域,特別涉及一種遞歸的分組馬爾可夫疊加編碼方法。
背景技術:
設計可逼近信道容量且有有效的編譯碼算法的信道編碼,對于實現(xiàn)高效可靠的數(shù)據(jù)傳輸有著重要意義。自從shannon于1948年提出了著名的信道編碼定理,人們一直致力于研究和設計可逼近信道容量的好碼。berrou等人于1993年提出了turbo碼,并驗證了采用迭代譯碼算法的turbo碼可逼近信道容量。通常,turbo碼以兩個或多個卷積碼作為分量碼進行級聯(lián),其中不同分量碼的輸入為信息序列經(jīng)過不同交織器交織后的序列。turbo碼的提出是信道編碼領域的重要里程碑,之后,人們研究和發(fā)現(xiàn)了更多可逼近信道容量的好碼。低密度奇偶校驗碼(low-densityparity-checkcode,ldpccode)也是一類可逼近信道容量的糾錯碼,可采用基于turbo原理的迭代譯碼方法來譯碼。近年發(fā)展起來的極化碼和空間耦合ldpc碼也是被證明可逼近香農(nóng)限的好碼。
在turbo碼中,為獲得優(yōu)秀的性能,需要選擇遞歸的卷積碼作為其分量碼。pfister等指出,在使用多層級聯(lián)碼時,相對非遞歸的卷積碼情況,遞歸的卷積碼需要更少的級聯(lián)階數(shù)來將輕重量的輸入序列映射成重量隨長度線性增加的輸出序列。
分組馬爾可夫疊加編碼(中山大學,一種分組馬爾可夫疊加編碼方法[p]:cn105152060a)也是一類可逼近信道容量的好碼。分組馬爾可夫疊加編碼是一種由短碼構造大卷積碼的編碼方法,其中的短碼稱為基本碼。分組馬爾可夫疊加編碼可視為一種級聯(lián)碼,其外碼是短碼(這里稱為基本碼),內碼是碼率為1的非遞歸卷積碼(其編碼輸入信息為數(shù)據(jù)塊)。分組馬爾可夫疊加編碼有簡單的編碼算法。采用簡單的重復碼和奇偶校驗碼作為基本碼,分組馬爾科夫疊加編碼可以通過分時來實現(xiàn)多碼率的編碼(中山大學,一種基于分時的分組馬爾可夫疊加編碼的多碼率碼編碼方法[p]:cn104410428a)。分組馬爾可夫疊加編碼可以采用一種基于軟信息的滑窗迭代譯碼算法來譯碼,并通過選擇一個合適的譯碼延遲d來獲得好的錯誤性能。以上提及的分組馬爾可夫疊加編碼方法為非遞歸的,其有諸多優(yōu)點,但是,以重復碼和奇偶校驗碼作為基本碼時,通常需要很大的編碼記憶長度m來逼近信道容量。而記憶長度m越大,所需的譯碼延遲d越大,相應的譯碼復雜度也越高,這使得非遞歸的分組馬爾可夫疊加編碼方法不適用于某些對延遲和運算復雜度要求較高的系統(tǒng)。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題在于針對上述現(xiàn)有技術中的不足,提供了一種遞歸的分組馬爾可夫疊加編碼方法。一方面,本發(fā)明所提出的編碼方法擁有非遞歸的分組馬爾可夫疊加編碼方法的大多數(shù)優(yōu)點,譬如可逼近信道容量、編碼簡單和構造靈活。另一方面,相對非遞歸的分組馬爾可夫疊加編碼方法,本發(fā)明提出的遞歸的分組馬爾可夫疊加編碼方法僅需要較小的記憶長度來逼近信道容量,并因此擁有更低的譯碼復雜度和譯碼延遲。記憶長度為3的遞歸的分組馬爾可夫疊加編碼方法,可實現(xiàn)比記憶長度為12的非遞歸的分組馬爾可夫疊加編碼方法更低的錯誤平層。
本發(fā)明采用的技術方案是:一種遞歸的分組馬爾可夫疊加編碼方法,其特征在于:以碼長為n,信息位長度為k的短碼為基本碼,將長度為k=kbl的信息序列u編碼成長度為n=nb(l+t)的碼字c;這里,b,l,t,m為非負整數(shù),l為耦合長度,其代表長度為kb的等長分組的數(shù)量,t為結尾長度,m為編碼記憶長度,所述編碼方法包括以下步驟:
步驟一、將長度為k=kbl的信息序列u劃分為l個等長分組u=(u(0),u(1),…,u(l-1)),每個分組長度為kb;對于時刻t=-1,-2,…,-(m-1),-m,把長度為nb的序列c(t)初始化設置為全零序列,即c(t)=0;
步驟二、在t=0,1,…,l-1時刻,將長度為kb的序列
首先,對于1≤i≤m,將序列c(t-i)送入交織器πi,得到交織后長度為nb的序列w(i);
然后,將v(t)和w(1),w(2),…,w(m)送入逐符號混疊器s,得到長度為nb的序列c(t);
步驟三、在t=l,l+1,…,l+t-1時刻,將長度為kb的全零序列u(t)送入編碼器c,得到長度為nb的全零序列v(t),并結合反饋的c(t-1),c(t-2),…,c(t-m)計算碼字c的第t個子序列c(t)。所述的v(t)結合反饋的c(t-1),c(t-2),…,c(t-m)計算碼字c的第t個子序列c(t),按照步驟二進行。
本發(fā)明所述的編碼方法中,信息序列u可以是二元序列,也可以是多元序列。編碼器c可以是任意類型的編碼器。交織器πi可以是任意類型的交織器,1≤i≤m。
本發(fā)明所述的編碼方法中,若序列v(t)和w(1),w(2),…,w(m)是二元或多元序列,序列的元素為有限域符號,那么逐符號混疊器s是逐符號有限域加權和運算器,其功能如下:輸出長度為nb的序列c(t),c(t)的第j個分量
本發(fā)明所述的編碼方法中,若序列v(t)和w(1),w(2),…,w(m)是多元序列,序列的元素是整數(shù)符號,那么逐符號混疊器s是逐符號模加權和運算器,其功能如下:輸出長度為nb的序列c(t),c(t)的第j個分量
本發(fā)明的編碼方法編碼后得到的碼字c=(c(0),c(1),…,c(l+t-1))經(jīng)調制后被送入信道。接收端接收到向量y=(y(0),y(1),…,y(l+t-1)),其中y(t)為對應碼字子序列c(t)的接收序列。接收端根據(jù)接收向量y和信道特征,進行譯碼并得到發(fā)送序列u的估計
本發(fā)明所述的譯碼方法中,傳遞和處理的消息為變量的概率分布或與之等價的其它量。每個碼字子序列c(t)對應一個譯碼層,共有l(wèi)+t個譯碼層。譯碼層包括“=”節(jié)點、“πi”節(jié)點、“s”節(jié)點和“c”節(jié)點這4類節(jié)點。設定譯碼滑窗窗口d和最大迭代次數(shù)imax。當接收端接收到y(t),y(t+1),…,y(t+d-1)(t=0,1,…,l-1),開始譯碼獲取發(fā)送消息u(t)的估計
(y1)對于j=t,t+1,…,t+d-1,如果j≤l+t-1,根據(jù)接收的向量y(j)和信道特征計算c(j)的后驗概率分布;初始化迭代次數(shù)計數(shù)器i=0;
(y2)對于j=t,t+1,…,t+d-1,如果j≤l+t-1,處理第j層消息,把第j層的消息傳遞到第j+1,j+2,…,j+m層;否則,執(zhí)行步驟(y3);
(y3)對于j=t+d-1,t+d-2,…,t+1,如果j≤l+t-1,處理第j層消息,把第j層的消息傳遞到第j-1,j-2,…,j-m層;否則,執(zhí)行步驟(y4);
(y4)設置i=i+1;如果譯碼達到最大迭代次數(shù)i=imax,停止迭代,硬判決獲取發(fā)送消息u(t)的估計
本發(fā)明所述的譯碼方法中,所述的處理第j層消息,按如下步驟進行:
首先,在“=”節(jié)點處,處理并傳遞到“πi”節(jié)點和“s”節(jié)點的外信息,i=1,2,…,m;
其次,在“πi”節(jié)點處,處理并傳遞從節(jié)點“=”到節(jié)點“s”或從節(jié)點“s”到節(jié)點“=”的外信息,i=1,2,…,m;
然后,在“s”節(jié)點處,處理并傳遞到“πi”節(jié)點、“c”節(jié)點和“=”節(jié)點的外信息,i=1,2,…,m;
最后,在“c”節(jié)點處,使用軟輸入軟輸出譯碼,更新到“s”節(jié)點的外信息,并更新譯碼器的譯碼輸出信息。
本發(fā)明具有以下優(yōu)點:
1、本發(fā)明提出的遞歸的分組馬爾可夫疊加編碼方法,具有可逼近信道容量、編碼簡單、構造靈活等優(yōu)點。
2、本發(fā)明提出的遞歸的分組馬爾可夫疊加編碼方法,與非遞歸的分組馬爾可夫疊加編碼方法相比,僅需要較小的記憶長度來逼近信道容量,并因此擁有更低的譯碼復雜度和譯碼延遲。
3、本發(fā)明提出的遞歸的分組馬爾可夫疊加編碼方法,與非遞歸的分組馬爾可夫疊加編碼方法相比,譯碼性能有很低的錯誤平層。在記憶長度為3時,可實現(xiàn)比非遞歸的分組馬爾可夫疊加編碼方法記憶長度為12時更低的錯誤平層。
綜上所述,本發(fā)明提出了一種遞歸的分組馬爾可夫疊加編碼方法,具有可逼近信道容量、編碼簡單、構造靈活等優(yōu)點。與非遞歸的分組馬爾可夫疊加編碼方法相比,本發(fā)明有更低的譯碼延遲和譯碼復雜度,譯碼性能有很低的錯誤平層。
附圖說明
圖1遞歸的分組馬爾可夫疊加編碼方法的編碼框圖。
圖2遞歸的分組馬爾可夫疊加編碼方法的譯碼框圖。
圖3記憶長度為2時,遞歸的分組馬爾可夫疊加編碼方法在bpsk-awgn信道上的ber性能曲線。
圖4記憶長度為3時,遞歸的分組馬爾可夫疊加編碼方法在bpsk-awgn信道上的ber性能曲線。
具體實施方式
以下描述兩個具體實施例用于補充說明本發(fā)明的實施步驟和優(yōu)勢。
實施例1
參照圖1,長度為k=kbl=1×5000×988的二元信息序列u劃分為l=988個等長分組u=(u(0),u(1),…,u(987)),每個分組長度為kb=5000?;敬a編碼器c使用一個碼長n=2,信息位長度k=1的重復碼。本實例中,編碼記憶長度m=2,使用兩個隨機交織器。逐符號混疊器s采用逐比特二元域和運算器。結尾長度t設置為與譯碼延遲d相同,即t=d。參照圖1,其編碼方法包括以下步驟:
步驟一、把信息序列u劃分為988個等長分組u=(u(0),u(1),…,u(987)),每個分組長度為5000;對于t=-1,-2,把長度為nb=10000的序列c(t)初始化設置為全零序列,即c(t)=0;
步驟二、在t=0,1,…,987時刻,將長度為kb=5000的序列
首先,將序列c(t-1)和c(t-2)送入交織器,得到交織后長度為nb=10000的序列w(1)和w(2);
然后,將v(t)和w(1),w(2)送入逐符號混疊器s,按如下操作得到長度為nb=10000的輸出序列c(t):
步驟三、在t=988,…,987+t時刻,將長度為kb=5000的全零序列u(t)送入編碼器c,得到長度為nb=10000的全零序列v(t),并結合反饋的c(t-1)和c(t-2)計算碼字c的第t個子序列c(t)。
碼字c=(c(0),c(1),…,c(987+t))經(jīng)bpsk調制后送入awgn信道,接收端接收到對應碼字c的接收序列y=(y(0),y(1),…,y(987+t))。設定最大迭代次數(shù)imax=1000。當接收端接收到y(t),y(t+1),…,y(t+d-1),進行譯碼并得到發(fā)送消息序列u的估計
(y1)對于j=t,t+1,…,t+d-1,如果j≤987+t,根據(jù)接收的向量y(j)和信道特征計算c(j)的后驗概率分布;初始化迭代次數(shù)計數(shù)器i=0;
(y2)對于j=t,t+1,…,t+d-1,如果j≤987+t,處理第j層消息,把第j層的消息傳遞到第j+1和j+2層;否則,執(zhí)行步驟(y3);
(y3)對于j=t+d-1,t+d-2,…,t+1,如果j≤987+t,處理第j層消息,把第j層的消息傳遞到第j-1和j-2層;否則,執(zhí)行步驟(y4);
(y4)設置i=i+1;如果譯碼達到最大迭代次數(shù)imax=1000,停止迭代,硬判決獲取發(fā)送消息u(t)的估計
仿真結果見圖3。從圖3可見,隨著譯碼延遲d的增大,遞歸的分組馬爾可夫疊加編碼方法在瀑布區(qū)和錯誤平層誤比特率性能都變優(yōu)。采用譯碼延遲為d=12,遞歸的分組馬爾可夫疊加編碼方法即使在誤比特率為10-8時也沒有出現(xiàn)錯誤平層,在誤比特率為10-8時距離香農(nóng)限約0.7db。從圖中也可以看到,相同記憶長度m=2時,本發(fā)明提出的遞歸的分組馬爾可夫疊加編碼方法比非遞歸的分組馬爾可夫疊加編碼方法有更低的錯誤平層。
實施例2
參照圖1,長度為k=kbl=1×5000×988的二元信息序列u劃分為l=988個等長分組u=(u(0),u(1),…,u(987)),每個分組長度為kb=5000?;敬a編碼器c使用一個碼長n=2,信息位長度k=1的重復碼。本實例中,編碼記憶長度m=3,使用三個隨機交織器。逐符號混疊器s采用逐比特二元域和運算器。結尾長度t設置為與譯碼延遲d相同,即t=d。參照圖1,其編碼方法包括以下步驟:
步驟一、把信息序列u劃分為988個等長分組u=(u(0),u(1),…,u(987)),每個分組長度為5000;對于t=-1,-2,-3,把長度為nb=10000的序列c(t)初始化設置為全零序列,即c(t)=0;
步驟二、在t=0,1,…,987時刻,將長度為kb=5000的序列
首先,將序列c(t-1),c(t-2)和c(t-3)送入交織器,得到交織后長度為nb=10000的序列w(1),w(2)和w(3);
然后,將v(t)和w(1),w(2),w(3)送入逐符號混疊器s,按如下操作得到長度為nb=10000的輸出序列c(t):
步驟三、在t=988,…,987+t時刻,將長度為kb=5000的全零序列u(t)送入編碼器c,得到長度為nb=10000的全零序列v(t),并結合反饋的c(t-1),c(t-2)和c(t-3)計算碼字c的第t個子序列c(t)。
碼字c=(c(0),c(1),…,c(987+t))經(jīng)bpsk調制后送入awgn信道,接收端接收到對應碼字c的接收序列y=(y(0),y(1),…,y(987+t))。設定最大迭代次數(shù)imax=1000。當接收端接收到y(t),y(t+1),…,y(t+d-1),進行譯碼并得到發(fā)送消息序列u的估計
(y1)對于j=t,t+1,…,t+d-1,如果j≤987+t,根據(jù)接收的向量y(j)和信道特征計算c(j)的后驗概率分布;初始化迭代次數(shù)計數(shù)器i=0;
(y2)對于j=t,t+1,…,t+d-1,如果j≤987+t,處理第j層消息,把第j層的消息傳遞到第j+1和j+2層;否則,執(zhí)行步驟(y3);
(y3)對于j=t+d-1,t+d-2,…,t+1,如果j≤987+t,處理第j層消息,把第j層的消息傳遞到第j-1和j-2層;否則,執(zhí)行步驟(y4);
(y4)設置i=i+1;如果譯碼達到最大迭代次數(shù)imax=1000,停止迭代,硬判決獲取發(fā)送消息u(t)的估計
仿真結果見圖4。從圖4可見,隨著譯碼延遲d的增大,遞歸的分組馬爾可夫疊加編碼方法在瀑布區(qū)和錯誤平層的誤比特率性能都變優(yōu)。采用譯碼延遲為d=11時,遞歸的分組馬爾可夫疊加編碼方法即使在誤比特率為10-8時也沒有出現(xiàn)錯誤平層。從圖中也可以看到,記憶長度m=3的遞歸的分組馬爾可夫疊加編碼方法甚至比記憶長度m=12的非遞歸的分組馬爾可夫疊加編碼方法擁有更低的錯誤平層。
以上所述,僅是本發(fā)明的實施例,并非對本發(fā)明作任何限制,凡是根據(jù)本發(fā)明技術實質對以上實施例所做的任何簡單修改、變更已經(jīng)等效結構變化,均仍屬于本發(fā)明技術方案的保護范圍內。