本發(fā)明屬于信道編碼領(lǐng)域,具體涉及一種極化碼編譯碼方法。
背景技術(shù):
極化碼是Arikan Erdal于2007年提出的一種信道編碼方法,在二進(jìn)制離散無記憶信道下,當(dāng)碼長為無限長時,極化碼是現(xiàn)有可證明的的唯一一種能夠達(dá)到信道容量的編碼方法。然而在碼長為有限長時,極化碼的SC譯碼性能要低于現(xiàn)有的Turbo碼和LDPC碼。針對這個問題,Ido Tal提出SCL譯碼算法——即通過增加存儲可能存在的譯碼路徑來提升性能,但是這種通過增加存儲可能的譯碼路徑會浪費大量的寄存器,由于在一次完整的譯碼過程中絕大多數(shù)的寄存器都不會被訪問就要被釋放,這就導(dǎo)致寄存器利用率很低,并且在低信噪比的時候性能比較差。為了提高極化碼的最小距離,Ido Tal提出使用CRC(即循環(huán)冗余校驗碼——Cyclic Redundancy Check)輔助校驗極化碼來改善低信噪比時的性能,當(dāng)使用CRC輔助SCL譯碼算法時,極化碼的性能要優(yōu)于Turbo碼和LDPC碼的性能。然而在HARQ協(xié)議中通過傳統(tǒng)的CRC輔助校驗的方法,會大大增加譯碼時延,其高時延根本無法滿足實時通信的需求。
針對于SCL譯碼算法存在的寄存器利用率較低和CRC校驗時延高的問題,本發(fā)明使用分段奇偶校驗和CRC的混合結(jié)構(gòu),對極化碼的編譯碼進(jìn)行改進(jìn)。傳統(tǒng)的CRC輔助校驗是在接收端譯碼結(jié)束后,對L條保留的路徑做CRC校驗;分段CRC輔助校驗在接收端每次譯碼到分段部分的結(jié)尾時,就對L條保留的路徑做奇偶校驗或者CRC校驗,直到最后一層的結(jié)尾進(jìn)行校驗完才完成譯碼。對于最后一個分段,使用CRC校驗;其他的分段,則使用奇偶校驗。這種分段奇偶校驗和CRC聯(lián)合輔助的方式在譯碼的時候就可以重復(fù)使用寄存器以達(dá)到提高寄存器利用率。在HARQ協(xié)議中,傳統(tǒng)的CRC輔助校驗是在全部譯碼結(jié)束并且沒有通過CRC校驗的情況下,需要重傳全部碼字并再一次對整個碼字進(jìn)行譯碼;而分段奇偶校驗和CRC聯(lián)合輔助校驗是,如果第一層或者前幾層沒有通過CRC校驗就可以直接進(jìn)行重新傳輸碼字再次譯碼,這樣就節(jié)省很長的譯碼時間,從而得到很大的降低時延。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有的現(xiàn)有SCL譯碼算法下寄存器利用率低和CRC校驗時延高的問題,提出了一種分段奇偶校驗和CRC聯(lián)合輔助的極化碼編譯碼方法,該方法在編碼端使用一種分段奇偶校驗和CRC的信息校驗結(jié)構(gòu)進(jìn)行編碼產(chǎn)生碼字,并且在譯碼端設(shè)計了對應(yīng)分段奇偶校驗和CRC輔助極化碼的譯碼算法,對接收的碼字進(jìn)行分段的譯碼校驗,直到最后一段譯碼校驗結(jié)束才完成整個極化碼譯碼。
本發(fā)明的技術(shù)方案為:
一種極化碼編譯碼方法,其特征在于,包括:
編碼:采用分段奇偶校驗和CRC聯(lián)合輔助的編碼,具體包括:
a.對信息比特進(jìn)行分段:設(shè)碼長為N比特,碼率為R,總的信息位比特為K=NR比特,N=2n,上標(biāo)n為自然數(shù),將信息分為M段,每段長度為ki,則k為保留的信息比特數(shù);
b.對分段后的信息比特進(jìn)行編碼:對前M-1個分段使用奇偶校驗,最后一個分段使用CRC校驗,具體為:
b1.分段后,每個分段有ki個消息比特,1≤i<M,則在第i層信息比特位當(dāng)中,每產(chǎn)生ki個信息比特位,就對其進(jìn)行奇偶校驗并產(chǎn)生得到校驗位,將這個校驗位級聯(lián)在產(chǎn)生的ki個信息比特位后面構(gòu)成一組,構(gòu)成第i層長度為ki+1的信息比特;
b2.重復(fù)步驟b1依次對第i層的信息進(jìn)行編碼,1≤i≤M-1;
b3.對第M層,將最后的kM個信息比特,進(jìn)行CRC編碼并產(chǎn)生r個校驗位,將這r個校驗位級聯(lián)在kM個信息比特后面構(gòu)成第M個分段;
將編碼后生成的碼字經(jīng)過信道進(jìn)行傳輸;
譯碼:設(shè)接收端接收到的第i層信息比特數(shù)為Ni,可得具體包括:
c.在接收端對第i段的Ni比特接受信息進(jìn)行SCL譯碼,最大保存路徑為L條,1≤i<M;
d.當(dāng)?shù)趇段的Ni比特接受信息譯碼結(jié)束,對L條保留的路徑做奇偶校驗,選擇以下作為輸出:當(dāng)僅有一條路徑通過奇偶校驗時,就輸出該路徑;當(dāng)有多條路徑通過奇偶校驗時,輸出這些路徑中似然概率最大的一條路徑;當(dāng)沒有通過奇偶校驗的路徑的時,輸出似然概率最大的一條路徑,這層的譯碼結(jié)束,將這條路徑保存并且傳送到下層的譯碼器中;
e.重復(fù)步驟c、d直到對第i段的接收信息完成SCL譯碼并進(jìn)行奇偶校驗,1≤i≤M-1;
f.接收端對第M段進(jìn)行SCL譯碼,對L條保留的路徑做CRC校驗,選擇以下作為輸出:當(dāng)僅有一條路徑通過CRC校驗時,就輸出該路徑;當(dāng)有多條路徑通過CRC校驗時,輸出這些路徑中似然概率最大的一條路徑;當(dāng)沒有通過CRC校驗的路徑的時,輸出似然概率最大的一條路徑,得到最終譯碼的結(jié)果。
在上述方案中:步驟e、f使用的譯碼器對碼字的譯碼流程與原有SCL譯碼器相同。不同的是,每當(dāng)譯碼器完成一段個碼字的譯碼就對其輸出到校驗器,校驗器在接收到的個可能譯碼路徑中選取可以通過奇偶校驗或者CRC并且概率最大的一條,譯碼器就將這個結(jié)果作為這一段信息比特的最終譯碼結(jié)果儲存下來并釋放剩余的寄存器,然后將結(jié)果傳回的譯碼器,開始下一段的譯碼,直到所有的譯碼全部譯碼結(jié)束。分段奇偶校驗和CRC聯(lián)合輔助的極化碼譯碼算法流程如圖3。在每段譯碼結(jié)束后,譯碼器會保留譯碼結(jié)果,并且釋放剩余的存儲器,這個操作就可以保證寄存器利用率的極大提高。
如圖4所示,給出了傳統(tǒng)CRC輔助極化碼SCL譯碼占用寄存器的存儲情況,在傳統(tǒng)CRC輔助的SCL譯碼過程中,由于保存路徑隨著譯碼比特數(shù)的增加呈現(xiàn)2的冪次增長,很快達(dá)到最大保存路徑數(shù)L(由于N>>M),忽略在路徑未達(dá)到L時未占用的存儲單元,認(rèn)為在每一比特譯碼時都存儲了L個路徑,SCL譯碼結(jié)束時就總共占了NL大的存儲空間,如圖4的陰影部分所示。為了簡化分析,令N1=N2=…=NM=N/M,圖3(b)給出了分段奇偶校驗和CRC聯(lián)合輔助的極化碼SCL譯碼占用寄存器的存儲情況,在分段奇偶校驗和CRC輔助SCL的譯碼過程中,譯碼路徑被分成了M段,每層N/M個比特,每譯完一層,選擇一條最優(yōu)路徑保存并舍棄其他的路徑,然后進(jìn)入下一段的譯碼,譯碼結(jié)束總的存儲占有空間為由圖5中的陰影部分和斜線部分組成。由此,可以得到分段奇偶校驗和CRC聯(lián)合校驗與傳統(tǒng)CRC校驗節(jié)省的存儲空間為:
本發(fā)明的有益效果為,本發(fā)明基于傳統(tǒng)CRC輔助極化碼SCL譯碼的方法,分段CRC輔助的極化碼信息結(jié)構(gòu),提出了分段奇偶校驗和CRC聯(lián)合輔助極化碼的編譯碼方法,該方法在編碼端使用一種分段奇偶校驗和CRC校驗的信息校驗結(jié)構(gòu)進(jìn)行編碼產(chǎn)生碼字,并且在譯碼端設(shè)計了對應(yīng)分段奇偶校驗和CRC校驗輔助的極化碼的譯碼算法,對接收的碼字進(jìn)行分段的譯碼校驗,最終在沒有過多性能損失的情況下,極大的節(jié)省了寄存器存儲空間,為硬件實現(xiàn)提供很大的便利。同時,在HARQ協(xié)議中使用分段奇偶校驗和CRC聯(lián)合輔助極化碼的編譯碼方法。如果第一層或者前幾層譯碼結(jié)束后奇偶校驗或者CRC校驗沒有通過,可以直接反饋并重傳,不用等到全部譯碼結(jié)束CRC校驗不通過的話再重傳,這樣就可以降低時延,為實時通信帶來很大的便利。
附圖說明
圖1是傳統(tǒng)CRC輔助極化碼信息結(jié)構(gòu)示意圖;
圖2是本發(fā)明的分段CRC輔助極化碼的信息結(jié)構(gòu)示意圖;
圖3是本發(fā)明的譯碼算法流程圖;
圖4是傳統(tǒng)CRC輔助SCL譯碼算法的寄存器占用示意圖;
圖5是本發(fā)明的CRC輔助極化碼寄存器占用示意圖;
圖6是基于本發(fā)明的CRC輔助極化碼的HARQ協(xié)議系統(tǒng)框圖。
具體實施方式
下面結(jié)合附圖和實施例,詳細(xì)描述本發(fā)明的技術(shù)方案:
實施例:
碼長為N=1024比特的極化碼的碼字,碼率R=0.5,總的信息位比特為K=NR=512比特,現(xiàn)在犧牲一定的信息比特來校驗極化碼提升譯碼性能,把信息分為M=5段,前4段消息使用奇偶校驗,第5段消息使用8比特的CRC校驗,這樣總共有12個比特用于校驗。前4個信息分段就由100個消息比特和1個奇偶校驗比特組成;第5個信息分段就由100個消息比特和8個CRC比特組成,如圖1(b)所示,最大保存路徑設(shè)置為為L=16條。信息比特經(jīng)過編碼、信道傳輸,最后對接收端的接受信息進(jìn)行分段的SCL譯碼、校驗,最大保存路徑為L條。分段奇偶校驗和CRC聯(lián)合輔助的極化碼編譯碼方法,具體步驟如下:
第一步:對信息位進(jìn)行分段奇偶校驗和CRC聯(lián)合輔助的編碼;
1)采用的分段奇偶校驗和CRC聯(lián)合輔助的編碼,其信息結(jié)構(gòu)如圖2所示,把奇偶校驗和CRC校驗信息分配到每層的信息做校驗,圖1所示為傳統(tǒng)的CRC輔助編碼的信息結(jié)構(gòu)示意圖;
2)在第一層信息比特位當(dāng)中,每產(chǎn)生100信息比特位,就對其進(jìn)行奇偶校驗并將產(chǎn)生的校驗比特級聯(lián)到信息比特后面,構(gòu)成第一段長度為101的信息比特;
3)按照圖2的信息結(jié)構(gòu)重復(fù)第2)個步驟,對第i段(1≤i≤4)的信息進(jìn)行編碼,產(chǎn)生長度為101的信息比特,最終產(chǎn)生4段長度為101的信息比特;
4)對第5段,對剩余的100個信息比特進(jìn)行CRC編碼并產(chǎn)生8個校驗比特位,將這8個校驗比特位級聯(lián)在100個信息比特之后,構(gòu)成第5段信息比特,長度為108。將這5段連接起來,就得到了512比特信息參與極化碼編碼,得到分段奇偶校驗和CRC聯(lián)合輔助校驗的極化碼碼字。
第二步:對生成的碼字經(jīng)過信道進(jìn)行傳輸,選擇AWGN信道傳輸;
第三步:接收端對接受到的信息進(jìn)行譯碼,得到信息估計,譯碼流程圖如圖2所示。
1)在接收端對第一層接受的101個信息比特進(jìn)行SCL譯碼,最大保存路徑為16條;
2)當(dāng)?shù)谝粚又械?01個信息比特譯碼結(jié)束,對16條保留的路徑做奇偶校驗,選擇以下作為輸出:當(dāng)僅有一條路徑通過奇偶校驗時,就輸出該路徑;當(dāng)有多條路徑通過奇偶校驗時,輸出這些路徑中似然概率最大的一條路徑;當(dāng)沒有通過奇偶校驗的路徑的時,輸出似然概率最大的一條路徑,這段的譯碼結(jié)束,將這條路徑保存并且傳送到下段的譯碼器中;
3)重復(fù)第1)、2)個步驟,對第i段(1≤i≤M-1)的接收信息完成SCL譯碼并進(jìn)行CRC校驗,直到最終完成4段的譯碼校驗。
4)對第5段進(jìn)行SCL譯碼,對L條保留的路徑做CRC校驗,選擇以下作為輸出:當(dāng)僅有一條路徑通過CRC校驗時,就輸出該路徑;當(dāng)有多條路徑通過CRC校驗時,輸出這些路徑中似然概率最大的一條路徑;當(dāng)沒有通過CRC校驗的路徑的時,輸出似然概率最大的一條路徑,最終得到碼字的譯碼的結(jié)果。
如圖3所示,本發(fā)明與傳統(tǒng)CRC輔助校驗極化碼相比較,此時,L=16,N=1024,M=5,圖4給出了傳統(tǒng)CRC輔助極化碼SCL譯碼占用寄存器的存儲情況,在傳統(tǒng)CRC輔助的SCL譯碼過程中,由于保存路徑隨著譯碼比特數(shù)的增加呈現(xiàn)2的冪次增長,很快達(dá)到最大保存路徑數(shù)16,忽略在路徑未達(dá)到L時未占用的存儲單元,認(rèn)為在每一比特譯碼時都存儲了16個路徑,SCL譯碼結(jié)束時就總共占了1024×16比特的存儲空間,如圖4的陰影部分所示。圖5給出了分段CRC輔助極化碼SCL譯碼占用寄存器的存儲情況,在分段CRC輔助SCL的譯碼過程中,譯碼路徑被分成了5段,每層205個比特,每譯完一層,選擇一條最優(yōu)路徑保存并舍棄其他的路徑,然后進(jìn)入下一層的譯碼,譯碼結(jié)束總的存儲占有空間為由圖5中的陰影部分和斜線部分組成。由此,可以得到多層CRC校驗與傳統(tǒng)CRC校驗節(jié)省的存儲空間為:
當(dāng)分段數(shù)M=8時,可以得到多層CRC校驗與傳統(tǒng)CRC校驗節(jié)省的存儲空間為:
由此可以看出,分段CRC輔助的極化碼的SCL譯碼的存儲利用率確實要超出傳統(tǒng)CRC輔助的極化碼,并且隨著最大保留路徑條數(shù)L和分段數(shù)M的增大,寄存器存儲量的利用率越高。圖6顯示了在HARQ協(xié)議中,傳統(tǒng)CRC輔助的極化碼和分段CRC輔助的極化碼的性能對比,從圖中我們可以看出隨著最大重傳次數(shù)的增加,雖然兩種結(jié)構(gòu)的極化碼性能都有明顯的提高,但是分段CRC輔助極化碼的提高更加明顯,即重傳帶來的性能增益要比傳統(tǒng)CRC的性能增益要高很多。本發(fā)明提出的多層奇偶校驗和CRC聯(lián)合輔助的極化碼編譯碼方法比傳統(tǒng)CRC輔助的方法具有很大優(yōu)越性。