周 泉,陳海強(qiáng),曾俏麗,廖蘭娟,孫友明,黎相成
(1.廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,南寧530004;2.廣西多媒體通信與網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,南寧530004)
Polar碼是Arikan[1]提出的一種信道編碼方案,該方案在理論上可達(dá)到香農(nóng)限。然而在信道極化不充分時(shí),串行抵消(Successive Cancellation,SC)譯碼算法性能不理想。文獻(xiàn)[2]提出了串行抵消列表(Successive Cancellation List,SCL)譯碼算法,通過在列表中保留多條生存路徑提高譯碼性能。為了降低SCL譯碼算法的復(fù)雜度,文獻(xiàn)[3]提出了一種自適應(yīng)快速SSCL譯碼算法;文獻(xiàn)[4]提出了基于SCL的CA-SCL譯碼算法,將循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)碼與Polar碼進(jìn)行級聯(lián),從而準(zhǔn)確識別路徑降低誤幀率。基于SC譯碼算法的另一種算法是串行抵消翻轉(zhuǎn)(Successive Cancellation Flip,SCF)譯碼算法[5],通過比特翻轉(zhuǎn)的方式進(jìn)行額外的譯碼嘗試,提高了譯碼性能。在SCF譯碼算法基礎(chǔ)上,動態(tài)SCF譯碼算法[6]、近似度量值動態(tài)SCF譯碼算法[7]被提出,進(jìn)一步提升了SCF譯碼性能。文獻(xiàn)[8]將比特翻轉(zhuǎn)的方法應(yīng)用在CA-SCL譯碼算法中,提出了串行抵消列表比特翻轉(zhuǎn)(Successive Cancellation List Bit-flip,SCLF,SCLF)譯碼算法,有效提升了譯碼性能,但是具有較高的譯碼復(fù)雜度。為了降低譯碼復(fù)雜度,文獻(xiàn)[9]提出了基于關(guān)鍵集的比特選擇度量值的SCLF譯碼算法。為了提升短碼字的譯碼性能,文獻(xiàn)[10]提出了一種基于行權(quán)重的串行抵消列表翻轉(zhuǎn)(Row Weight Based SCL-F,RWB-SCL-F)譯碼算法,在保持長碼字譯碼性能的同時(shí)提高了短碼字的譯碼性能。類似的譯碼算法包括置信傳播(Belief Propagation,BP)譯碼算法[11]及其改進(jìn)算法[12-13]等。
本文針對SCLF譯碼算法復(fù)雜度較高的問題,提出了PM-LLR-SCL(Path Metric and Log-likelihood Ration)譯碼算法,綜合考慮LLR和PM對譯碼性能的影響,通過重排PM值完成翻轉(zhuǎn)功能。為了進(jìn)一步提高短碼字的譯碼性能,以支持在海量機(jī)器類型通信中的可靠短包傳輸,提出了PM-RW-SCL譯碼算法,綜合考慮最小碼距和極化比特信道可靠度,得到重排路徑度量值信息比特的關(guān)鍵集KHW。實(shí)驗(yàn)仿真表明,所提算法相對于RWB-SCL-Flipping譯碼算法,進(jìn)一步獲得了譯碼增益,同時(shí)也降低了譯碼復(fù)雜度。
(1)
圖1 錯(cuò)誤比特個(gè)數(shù)出現(xiàn)頻率
從圖1可知,由于信道噪聲的影響,SC譯碼過程中會發(fā)生一定的錯(cuò)誤傳播;在不同的信噪比下,出現(xiàn)單個(gè)錯(cuò)誤比特的頻率是最大的,并且錯(cuò)誤個(gè)數(shù)越大,出現(xiàn)的頻率也越低;同時(shí),隨著信噪比的增大,出現(xiàn)單個(gè)錯(cuò)誤比特的概率逐漸變大,例如當(dāng)Eb/N0=2.5 dB時(shí),單個(gè)錯(cuò)誤比特出現(xiàn)的頻率接近90%。
為了解決SC譯碼算法的錯(cuò)誤傳播問題,文獻(xiàn)[5]提出了SCF譯碼算法,其譯碼過程為首先執(zhí)行SC譯碼算法,若譯碼結(jié)果通過CRC校驗(yàn),則譯碼成功;若校驗(yàn)失敗,則在翻轉(zhuǎn)集合中選擇易錯(cuò)比特進(jìn)行翻轉(zhuǎn)操作,并從此處重新開始譯碼;若譯碼再次失敗則繼續(xù)選擇下一個(gè)易錯(cuò)比特進(jìn)行譯碼嘗試,直到譯碼成功或者達(dá)到最大譯碼嘗試次數(shù)T。
SCF譯碼算法翻轉(zhuǎn)集合的獲取步驟為將初次譯碼時(shí)信息比特的對數(shù)似然比|LLR|按照升序進(jìn)行排列,并得到與其對應(yīng)的索引序號,最后根據(jù)設(shè)定的最大譯碼嘗試次數(shù)取出排序后的前T位索引序號構(gòu)成翻轉(zhuǎn)集合。
文獻(xiàn)[8]將比特翻轉(zhuǎn)的思想應(yīng)用在CA-SCL算法中,提出了SCLF譯碼算法。該文獻(xiàn)分析了CA-SCL譯碼過程中路徑分裂的3種狀態(tài):第一種為克隆狀態(tài),此狀態(tài)由于保存了路徑分裂后的ui=0和ui=1的路徑無法進(jìn)行比特翻轉(zhuǎn);第二種為刪除狀態(tài),此狀態(tài)由于刪除了ui=0和ui=1的路徑故也無法進(jìn)行比特翻轉(zhuǎn);第三種為SC狀態(tài),此狀態(tài)由于只保存了ui=0和ui=1中的一條路徑故可以進(jìn)行比特翻轉(zhuǎn)。SCLF譯碼算法提出了修訂的翻轉(zhuǎn)關(guān)鍵集:
(2)
通過RCS可以確定當(dāng)CA-SCL譯碼失敗時(shí)應(yīng)該翻轉(zhuǎn)的信息比特位。SCLF 譯碼算法的過程與SCF 譯碼算法相類似,增加了對路徑狀態(tài)的判斷,這里不再贅述。
在SCL譯碼算法中,定義路徑度量的計(jì)算公式為
(3)
(4)
重排路徑度量值策略:當(dāng)譯碼失敗,再次啟動譯碼嘗試時(shí),遇到K中的信息位索引序號,則將對應(yīng)的2L條路徑的度量值由原來的升序排列調(diào)整為降序排列,并從2L條路徑中選擇前L條路徑進(jìn)入下一級的譯碼。由于PM值越大,該條路徑越不可靠,所以原始的PM值選取策略是將其中PM值最小的L條路徑選擇出來,但是由于在關(guān)鍵集K中的信息比特為易錯(cuò)比特,故可以將PM值最大的L條路徑選擇出來進(jìn)行下一級譯碼,從而實(shí)現(xiàn)比特翻轉(zhuǎn)的效果。
根據(jù)上述描述,PM-LLR-SCL譯碼算法偽代碼如下:
3 執(zhí)行CA-SCL譯碼,并進(jìn)行CRC校驗(yàn)
4 if CRC_Check=true then
5 輸出譯碼結(jié)果
6 else
7 根據(jù)K的選取策略,得到K
8 Fort 9 選擇第t個(gè)位置,從該比特處重新執(zhí)行CA-SCL譯碼,并且對該比特執(zhí)行重排路徑度量值策略 10t++,并進(jìn)行CRC校驗(yàn) 11 if CRC_Check=true then 12 輸出譯碼結(jié)果 13 Break 14 結(jié)束 本小節(jié)將提出的PM-LLR-SCL譯碼算法與CA-SCL和SCLF譯碼算法進(jìn)行性能對比。仿真參數(shù)設(shè)置為CRC=12,碼率R=1/2,最大嘗試譯碼次數(shù)T=32,仿真結(jié)果如圖2和圖3所示。 圖2 L=8時(shí)不同譯碼算法性能對比 圖3 L=16時(shí)不同譯碼算法性能對比 由圖2可知,當(dāng)碼長N=256,FER=10-4時(shí),相比于CA-SCL譯碼算法和SCLF譯碼算法,PM-LLR-SCL譯碼算法分別獲得了約0.37 dB和0.15 dB的性能增益;當(dāng)碼長N=512,FER=10-4時(shí),相比于CA-SCL譯碼算法和SCLF譯碼算法,PM-LLR-SCL譯碼算法分別獲得了約0.25 dB和0.1 dB的性能增益。 由圖3可知,當(dāng)碼長N=256,FER=10-3時(shí),相比于CA-SCL譯碼算法和SCLF譯碼算法,PM-LLR-SCL譯碼算法獲得了分別約0.39 dB和0.23 dB的性能增益;當(dāng)碼長N=512,FER=10-4時(shí),相比于CA-SCL譯碼算法和SCLF譯碼算法,PM-LLR-SCL譯碼算法分別獲得了約0.23 dB和0.1 dB的性能增益。 給定Polar碼,則其最小碼距可以計(jì)算為 (5) 式中:wt(i)表示漢明距離。根據(jù)文獻(xiàn)[1]可知,2wt(i) 等于Polar碼生成矩陣GN的第i行行重,故式(5)可以進(jìn)一步推導(dǎo)為 (6) 本文通過高斯近似的方法計(jì)算極化子信道的可靠度,從而得到信息位集合A。根據(jù)式(6)將A中信息比特劃分為3部分,第一部分為最小碼距集合ΦM,第二部分為次小碼距集合ΦS,第三部分為A中剩余的信息位集合ΦR,即 (7) 式中:dsmin為次小的極化碼距。 在本次的設(shè)計(jì)工作開展過程中,充分地將城市的建筑開發(fā)與自然生態(tài)環(huán)境的保護(hù)進(jìn)行了有效融合。從設(shè)計(jì)區(qū)域至外部交通以及空間層面都十分符合生態(tài)建筑理念,濕地公園水岸與周邊城市居民之間相互呼應(yīng)的效果十分貼合于城市可持續(xù)發(fā)展的目標(biāo)[1]。具體而言,在進(jìn)行景觀設(shè)計(jì)時(shí),使用的是一種幾何抽象的折線形湖水紋樣斑塊,然后在其中融入了工程當(dāng)?shù)氐奈幕栆约吧鷳B(tài)環(huán)境形象。另外一方面,在進(jìn)行生態(tài)濕地設(shè)計(jì)時(shí),需充分與城市的發(fā)展理念相融合,為城市的發(fā)展創(chuàng)造了良好的休閑與綠化空間,同時(shí)也為當(dāng)?shù)氐穆糜?、綠化生態(tài)帶以及經(jīng)濟(jì)活力提供了有效的發(fā)展活力。 2 輸出KHW={K1,K1,…,KT} 3 ifT≤|ΦM|,then Ki=ΦM[i],i=1,2,…,T 4 if|ΦM| 5 if|ΦM|+|ΦS| 7 返回KHW PM-RW-SCL譯碼算法的重排路徑度量值策略與PM-LLR-SCL譯碼算法類似,當(dāng)?shù)谝淮蜟A-SCL譯碼結(jié)果未通過CRC校驗(yàn)時(shí),再次啟動譯碼嘗試;當(dāng)譯碼信息比特為KHW中索引序號時(shí),則將對應(yīng)的2L條路徑的度量值由原來的升序排列調(diào)整為降序排列,并從2L條路徑中選擇前L條路徑進(jìn)入下一級的譯碼。 本節(jié)提出的PM-RW-SCL算法將沿用3.3節(jié) PM-LLR-SCL譯碼算法的譯碼框架,但是對需要重排的路徑度量值集合進(jìn)行了重新選取,即將關(guān)鍵集K替換為關(guān)鍵集KHW。 本小節(jié)將提出的PM-RW-SCL譯碼算法與CA-SCL和RWB-SCL-F算法進(jìn)行性能對比。仿真參數(shù)設(shè)置為CRC=12,碼率R=1/2,列表長度L=8。 首先,考慮PM-RW-SCL譯碼算法在短碼字長度下的糾錯(cuò)性能,采用兩個(gè)典型的短碼字長度N=64,N=128進(jìn)行仿真,結(jié)果如圖4所示。由圖可知,在T=16,N=64,FER=10-3時(shí),與RWB-SCL-F譯碼算法和CA-SCL譯碼算法相比,PM-RW-SCL譯碼算法實(shí)現(xiàn)了大約1.5 dB和0.25 dB的性能增益;在T=16,N=128,FER=10-3時(shí),與RWB-SCL-F譯碼算法和CA-SCL譯碼算法相比,PM-RW-SCL譯碼算法實(shí)現(xiàn)了大約0.9 dB和0.4 dB的性能增益;當(dāng)T增加到32時(shí),相比于CA-SCL譯碼算法,可提高大約0.5 dB性能增益。 圖4 N=64,128時(shí)不同譯碼算法性能對比 為了進(jìn)一步研究碼字長度對于PM-RW-SCL譯碼算法的影響,將碼字長度拓展到圖5中的N=256。如圖4和圖5所示,在不同的碼字長度下,本文提出的PM-RW-SCL譯碼算法始終優(yōu)于RWB-SCL-F譯碼算法,但其性能增益隨著碼字長度的增長而下降,如在N=256,T=16時(shí),增益大約僅為0.35 dB;隨著最大嘗試譯碼次數(shù)T的增加,譯碼性能增益也會逐漸增大。 圖5 N=256,T=16,32時(shí)不同譯碼算法性能對比 本文提出的兩種譯碼算法的譯碼復(fù)雜度指的是總的列表大小,即平均執(zhí)行SCL譯碼的次數(shù)。例如列表大小為L的CA-SCL譯碼算法執(zhí)行一次譯碼過程的譯碼復(fù)雜度為L,如果PM-LLR-SCL譯碼算法、PM-RW-SCL譯碼算法以T次重新嘗試譯碼結(jié)束,則復(fù)雜度為(T+1)L。 仿真參數(shù)設(shè)置為N=256,R=1/2,T=32,CRC=12,圖6展示了3種譯碼算法在不同信噪比下的平均譯碼復(fù)雜度。 圖6 PM-LLR-SCL譯碼算法與其他譯碼算法的平均復(fù)雜度對比 PM-LLR-SCL譯碼算法不僅考慮了初始譯碼時(shí)信息比特的LLR值,并且對譯碼時(shí)分裂路徑的度量值進(jìn)行了重新排序,所以在信噪比小于2.5 dB時(shí)比SCLF譯碼算法具有更低的譯碼復(fù)雜度。隨著信噪比的逐漸增大,兩種譯碼算法的譯碼復(fù)雜度逐漸降低,并且當(dāng)信噪比大于2.5 dB后,都收斂于CA-SCL算法的列表大小L。當(dāng)信噪比為2 dB時(shí),PM-LLR-SCL譯碼算法較SCLF譯碼算法在L=4,8,16的復(fù)雜度分別降低了約57%,62%,54%。 仿真參數(shù)設(shè)置為N=256,R=1/2,T=16,CRC=12,圖7展示了3種譯碼算法在不同信噪比下的平均譯碼復(fù)雜度。PM-RW-SCL譯碼算法比RWB-SCL-F需要更少的譯碼次數(shù),尤其在低信噪比區(qū)域。這是由于PM-RW-SCL譯碼算法不僅考慮了Polar碼的最小碼間距和極化信道可靠度對譯碼性能的影響,還綜合判斷每一次譯碼過程中關(guān)鍵集KHW對應(yīng)的信息比特在進(jìn)行路徑分裂時(shí)路徑度量值對下一級譯碼的影響,從而能夠在重新嘗試譯碼時(shí)能夠更加準(zhǔn)確的將易錯(cuò)比特進(jìn)行校正。同樣地,當(dāng)信噪比大于2 dB時(shí),PM-RW-SCL譯碼算法的譯碼延遲可以忽略不計(jì),這是因?yàn)樗行枰嘏诺男畔⒈忍氐膹?fù)雜度都收斂于CA-SCL譯碼復(fù)雜度L。當(dāng)信噪比為1 dB時(shí),PM-RW-SCL譯碼算法較RWB-SCL-F譯碼算法在L=4,8,16的復(fù)雜度分別降低了37%,38%,39%。 圖7 PM-RW-SCL譯碼算法與其他譯碼算法的平均復(fù)雜度對比 為了降低Polar碼SCLF譯碼算法在低信噪比區(qū)域的譯碼復(fù)雜度,提升譯碼性能,本文提出了一種PM-LLR-SCL譯碼算法。該算法建立初始LLR和PM值之間的映射關(guān)系,并通過重排完成翻轉(zhuǎn)功能,進(jìn)一步提高了嘗試譯碼的成功率,從而減少了譯碼次數(shù)。仿真結(jié)果表明,PM-LLR-SCL譯碼算法較于SCLF譯碼算法在低信噪處降低了約62%的譯碼復(fù)雜度,同時(shí)獲得了最大約為0.23 dB性能增益。為了提升Polar碼在短碼傳輸時(shí)的譯碼性能,進(jìn)一步提出了基于生成矩陣行重特性和PM值的PM-RW-SCL譯碼算法,不僅考慮了Polar碼的最小碼距和極化子信道可靠度,同時(shí)將路徑分裂每一層的PM值引入到譯碼策略中,從而提高了譯碼性能。仿真結(jié)果表明,PM-RW-SCL譯碼算法在短碼字場景中比RWB-SCL-F譯碼算法獲得了最大約1.5 dB的性能增益,并且在低信噪比區(qū)域降低了約39%的譯碼復(fù)雜度。3.4 PM-LLR-SCL譯碼算法的性能分析
4 PM-RW-SCL譯碼算法
4.1 極化碼的最小碼距
4.2 關(guān)鍵集KHW的選取和重排路徑度量值
4.3 PM-RW-SCL譯碼算法描述
4.4 PM-RW-SCL譯碼算法性能分析
5 復(fù)雜度分析
5.1 PM-LLR-SCL譯碼復(fù)雜度分析
5.2 PM-RW-SCL譯碼復(fù)雜度分析
6 結(jié) 論