袁建國,張 瑞,張豐果,李志偉,黃 勝
(重慶郵電大學 光電工程學院,重慶 400065)
極化碼被采用在第5代移動通信增強移動帶寬下無線信道的控制信道標準中,成為當前研究熱點[1-3]。而循環(huán)冗余校驗(cyclic redundancy check,CRC)碼輔助串行抵消列表(successive cancellation list, SCL)算法[4-5]在所有極化碼方案中占據(jù)了主導地位,這種方案的極化碼可以和目前極為先進的低密度奇偶校驗碼擁有相當?shù)男阅堋榱诉M一步提升循環(huán)冗余校驗碼輔助極化碼(CRC-polar碼)的編碼算法在高信噪比下的性能,學者們對CRC碼進行了研究。文獻[6]分析了碼長和列表寬度L對極化碼性能的影響,以及CRC碼在不同信噪比下對極化碼性能產(chǎn)生影響的原因。文獻[7]設計了一個搜索方法來為標準的CRC-polar碼尋找CRC碼的最佳生成多項式,通過該多項式能夠在譯碼時減少具有最小漢明權(quán)重(minimum Hamming weight, MHW)的錯誤碼字數(shù)目,從而提高譯碼性能。文獻[8]設計了保護部分信息比特的CRC碼,在大列表下(L=64)比保護所有信息比特有更好的性能。更進一步,文獻[9]通過CRC碼優(yōu)化極化碼的MHW和信息位的選擇,提高了極化碼的譯碼性能。
然而,上述極化碼方案都存在譯碼過程中不能檢測并糾正錯誤比特的問題。為了解決這個問題,分段CRC碼輔助極化碼方案被提出了[10-12],這種方案能夠在譯碼過程中糾正錯誤比特,提高譯碼性能。但是與奇偶校驗(parity check, PC)碼輔助的極化碼(通常簡稱為PC-polar碼)相比,多重CRC碼糾正錯誤比特的效率低。于是,文獻[13]首次提出了奇偶校驗碼輔助極化碼的方案。文獻[14]使用循環(huán)位移寄存器(cycle shift register, CSR)來設計PC碼的校驗函數(shù),使得PC-polar碼在小列表(L=8)的情況下有比CRC-polar碼有更好的糾錯性能。
相比CRC碼,PC碼在譯碼中能提供更好的糾錯性能,但也有檢錯效率低的缺點,主要體現(xiàn)在:①對于同一個校驗函數(shù),增加PC比特的數(shù)量并不會提高糾錯效率;②只能檢測出奇數(shù)個比特出錯的情況,而無法檢測出偶數(shù)個比特出錯。與之相反,提升CRC碼的比特數(shù)目,能夠有效地提升其糾錯性能。文獻[15]結(jié)合2種極化碼的優(yōu)點,提出了雙重奇偶校驗輔助CRC-polar碼的編譯碼算法,相對于原始的CRC-polar碼,有效地提高了糾錯性能。
借助文獻[15]利用2種校驗碼輔助極化碼的思想,本文提出了一種CRC碼輔助的PC-polar碼(本文簡稱為CRC-PC-polar碼)的編碼算法,通過一部分高漢明權(quán)重的凍結(jié)比特替換信息比特,以及選擇低漢明權(quán)重的信息比特作為PC比特來共同優(yōu)化極化碼的距離譜,再通過PC碼和CRC碼的校驗函數(shù)對SCL譯碼的候選路徑進行篩選,提升正確路徑的概率,使得極化碼的糾錯性能明顯提升。
在PC-polar碼中,K+f個比特作為非凍結(jié)比特集合通過K+f個最可靠的信道傳輸,這K個比特的索引集合定義為信息比特集合A,A?{1,2,…,N},其中N為信道總個數(shù),N被限制為2n,n為正整數(shù);f個比特的索引集合定義為PC比特集合Apc;剩下的N-K-f個不可靠信道用來傳輸凍結(jié)比特,將凍結(jié)比特的集合定義為Ac,通常將凍結(jié)比特的值全設為0。極化碼的碼率為R=K/N。
極化碼的生成矩陣定義為
(1)
(1)式中:BN為比特反轉(zhuǎn)矩陣;F?n表示F的n次克羅內(nèi)克積。
(2)
在信道的可靠性方面,本文選擇文獻[16]提出的極化權(quán)重信道可靠性估計方法。對于一個給定的子信道索引i,它的二進制擴展為(bn-1,…,b1,b0)2,b為二進制序列元素,對應的極化權(quán)重定義為
(3)
(3)式中:b為二進制序列元素;β為21/4。
通過(3)式可計算出每個信道的極化權(quán)重值,從而對信道的可靠性進行排序,極化權(quán)重值越高代表信道可靠性越高。選擇K+f個最可靠的信道傳輸作為非凍結(jié)比特集合。
本文的PC比特校驗函數(shù)利用文獻[14]和5G標準中的5位CSR構(gòu)造,該循環(huán)位移寄存器如圖1所示。
圖1 5位循環(huán)位移寄存器的結(jié)構(gòu)圖Fig.1 Structure diagram of five-bit circular shift register
算法15位CSR的函數(shù)構(gòu)造算法。
3:初始化:r[1]1=r[2]1=…=r[5]1=0,j=1;
4:fori=2:N+1
5: 運行5位CSR:r[1]i=r[2]i-1,r[2]i=r[3]i-1,
r[3]i=r[4]i-1,r[4]i=r[5]i-1,r[5]i=r[1]i-1;
6: ifi-1∈A
7: ifj?Apc
8:r[1]i=uj⊕r[1]i,j=j+1;
9: else
10:uj=r[1]i,j=j+1;
11: end
12: end
13:end
Polar碼在碼長有限時,信道極化并不充分,傳統(tǒng)的極化碼構(gòu)造過程中,單純考慮信道的可靠性,導致非凍結(jié)比特集合對應生成矩陣的距離譜并不理想,其最小碼距較大地影響了極化碼的糾錯性能。
對于Polar碼,其最小碼距由其生成矩陣的最小行重,即MHW決定。定義MHW和次MHW集合為
(4)
(5)
本文共分兩步對極化碼的距離譜進行優(yōu)化。
第一步,提升MHW。由于傳統(tǒng)的極化碼構(gòu)造過程中,僅考慮了信道的可靠性,在凍結(jié)比特集合中有部分比特的漢明權(quán)重大于dm和ds,因而從這部分比特中選出最大漢明權(quán)重集合和次最大漢明權(quán)重集合,并用這2個集合中的比特來替換Am中的比特,使得MHW從dm提升為ds。對凍結(jié)比特集合的最大和次最大漢明權(quán)重集合的定義為
(6)
(7)
(6)—(7)式中:dmax和ds-max分別為凍結(jié)比特集合的最大漢明權(quán)重和次最大漢明權(quán)重。
第二步,減小MHW集合中信息比特的數(shù)目。從As中選取最不可靠的f個比特作為PC比特,使得PC比特的值由其保護的信息比特所決定,部分低漢明權(quán)重的碼字編碼后成為不合法的碼字,不會出現(xiàn)在編碼后的極化碼序列中,減小了具有MWH碼字的數(shù)目,進一步優(yōu)化了極化碼的距離譜。選擇最不可靠比特的原因是:①均勻地分布在信息比特序列中,譯碼時每隔一段時間進行校驗;②讓信息比特更加可靠。
CRC碼輔助PC-polar碼的編碼是將一段CRC碼添加到PC-polar碼的末端。其總的編碼流程如圖2所示。
圖2 CRC輔助PC-polar碼的編碼流程圖Fig.2 CRC-assisted PC-polar code encoding flowchart
算法2CRC輔助PC-polar碼的編碼算法。
1:輸入:N,K,f,m;
3:根據(jù)(3)式確定所有信道的可靠度,并進行排序;
4:選擇最可靠的K+f+m個信道作為非凍結(jié)比特集合;
8:else
10:end
11:從As中選擇最不可靠的f個比特作為Apc,從剩下的K+m個比特中選擇索引值最大的作為Acrc,其余的比特則為A;
因為2種校驗比特對于信息比特來說是一種冗余,校驗碼的比特數(shù)量越多,提供的糾錯性能就越好,同時冗余度就越大,糾錯性能也會下降,所以冗余度和校驗碼比特數(shù)量之間存在權(quán)衡問題,需要找到合適的校驗碼比特數(shù)量,使得極化碼的糾錯性能盡可能地提高。
本文采用了2種校驗碼,通過控制變量法來選取2種校驗碼的比特數(shù)量。圖3展示了極化碼碼長為512、R=1/2和信噪比(signal noise ratio, SNR)為3.2 dB的情況下,CRC糾錯性能表現(xiàn)較好的3個CRC比特數(shù)量6、8、10在不同PC碼比特數(shù)量下的性能表現(xiàn)。本文采用的仿真條件是:二進制相移鍵控調(diào)制,加性高斯白噪聲信道,SCL譯碼,列表寬度L=16,選用如表1所示的CRC碼的生成多項式。
圖3 不同PC碼比特數(shù)量的性能表現(xiàn)圖Fig.3 Performance graph of different PC code bits
表1 CRC碼的生成多項式Tab.1 CRC code generator polynomial
由圖3可知,在CRC碼比特數(shù)量為6、8、10時,PC碼比特數(shù)量分別為6、6、7時性能最優(yōu),因此,選擇這3種組合的校驗碼比特數(shù)量:①m=6,f=6;②m=8,f=6;③m=10,f=7。
編碼完成的極化碼簡易結(jié)構(gòu)圖如圖4所示,圖4中,CRC-polar碼是文獻[7]提出的CRC碼輔助極化碼結(jié)構(gòu),PC-polar碼是文獻[14]提出的PC碼輔助極化碼結(jié)構(gòu),Segmented-CRC-polar碼是文獻[10]提出的分段CRC碼輔助極化碼結(jié)構(gòu),CRC-PC-polar碼是本文提出的CRC碼輔助PC-polar碼結(jié)構(gòu)。
圖4 4種極化碼結(jié)構(gòu)的對比圖Fig.4 Comparison diagram of four polarization code structures
本文提出了一種CRC碼輔助PC-polar碼的編碼算法。為了驗證該算法糾錯性能的優(yōu)越性,選擇m=6、f=6,m=8、f=6和m=10、f=7這3種組合的校驗碼比特數(shù)量,構(gòu)造了碼長為N=512,碼率R=0.5的極化碼,并與其他極化碼進行了仿真對比分析,得到的糾錯性能對比圖如圖5—圖7所示。
圖5 m=6、 f=6時的性能對比圖Fig.5 Performance comparison chart at m=6、 f=6
圖6 m=8、 f=6時的性能對比圖Fig.6 Performance comparison chart at m=8、 f=6
圖7 m=10、 f=7時的性能對比圖Fig.7 Performance comparison chart at m=10、 f=7
由圖5可知,本文提出的CRC-PC-polar碼在m=6、f=6、BLER=10-5時,相比于CRC-polar碼、Segmented-CRC-polar碼和PC-polar碼分別有約0.2 dB、0.4 dB、0.3 dB的凈增益。
由圖6可知,本文提出的CRC-PC-polar碼在m=8、f=6、BLER=10-5時,相比于CRC-polar碼、Segmented-CRC-polar碼和PC-polar碼分別有約0.1 dB、0.2 dB、0.4 dB的凈增益。
由圖7可知,本文提出的CRC-PC-polar碼在m=10、f=7、BLER=10-6時,相比于CRC-polar碼、Segmented-CRC-polar碼和PC-polar碼分別有約0.2 dB、0.3 dB、0.4 dB的凈增益。
將本文提出的3種極化碼進行性能對比,得到圖8。由圖8可知,CRC-PC-polar(CRC8, PC6)和CRC-PC-polar(CRC10, PC7)碼均可在SNR約3.1 dB時,BLER到達10-6,且CRC-PC-polar(CRC8, PC6)碼在低信噪比區(qū)域表現(xiàn)更好,因此,在提出的3種極化碼結(jié)構(gòu)中,CRC-PC-polar(CRC8, PC6)表現(xiàn)最優(yōu)。
圖8 3種極化碼性能對比圖Fig.8 Performance comparison chart of the three proposed polarization codes
為了提高PC-polar碼檢錯效率,使之具有CRC碼同樣高效的檢錯效率,提高其誤碼率性能,本文提出了一種CRC碼輔助的PC-polar碼的編碼算法。
首先,利用凍結(jié)比特中最大漢明權(quán)重和次最大漢明權(quán)重集合的部分比特,替換非凍結(jié)比特集合中MHW集合中的所有比特,增大極化碼的最小碼距,并從次MHW集合中選擇PC比特進一步優(yōu)化極化碼的距離譜;其次,通過5位CSR優(yōu)化PC碼的校驗函數(shù),減少極化碼串行譯碼導致的比特錯誤;然后,加入了檢錯效率較高的CRC碼;最后,通過優(yōu)化,得到了CRC碼輔助的PC-polar碼的結(jié)構(gòu)。經(jīng)過仿真驗證,本文提出的編碼算法所構(gòu)造的CRC-PC-polar(CRC8, PC6)碼,在SNR為1到3.5 dB的時候,整體糾錯性能明顯優(yōu)于其他幾種碼型。