本發(fā)明屬于信道編譯碼技術(shù)領(lǐng)域,具體涉及通信系統(tǒng)信道譯碼器中一種基于串行抵消列表譯碼的極化碼低時(shí)延改進(jìn)方法。
背景技術(shù):
極化碼是一種新型編碼方式,是目前唯一可理論證明在二進(jìn)制離散無記憶信道下達(dá)到香農(nóng)極限,并且具有可實(shí)用的線性復(fù)雜度編譯碼能力的信道編碼技術(shù),成為下一代通信系統(tǒng)(5g)中信道編碼方案的強(qiáng)有力候選者。串行抵消(sc,successivecancellation)譯碼是一種低復(fù)雜度的譯碼方法,而串行抵消列表(scl,successivecancellationlist)譯碼方法能夠?qū)崿F(xiàn)更好的誤碼率性能。串行抵消譯碼是從譯碼樹的根節(jié)點(diǎn)開始,通過遞歸計(jì)算的方式深入到葉節(jié)點(diǎn),在葉節(jié)點(diǎn)進(jìn)行判別。由于其串行抵消譯碼的特點(diǎn),時(shí)延較長是該譯碼方法最迫切需要解決的問題。然而基于串行抵消列表的譯碼方法,與經(jīng)典低時(shí)延置信傳播(bp,beliefpropagation)譯碼方法相比,仍有較大差距,譯碼時(shí)延和運(yùn)算復(fù)雜度均較高。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明公開了一種有效降低串行抵消譯碼時(shí)延的方法,在遍歷到譯碼樹的某一節(jié)點(diǎn)時(shí),運(yùn)用極化碼校驗(yàn)矩陣進(jìn)行校驗(yàn)。如果校驗(yàn)成功,則直接進(jìn)行門限判別譯碼后返回父節(jié)點(diǎn),從而降低譯碼時(shí)延。
為了達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
一種降低極化碼譯碼時(shí)延的方法,包括如下步驟:
步驟1,計(jì)算對數(shù)似然比初始值
采用樹形譯碼結(jié)構(gòu),對于一個(gè)碼長為n,信息位長度為k的極化碼,其譯碼樹為深度為n=log2n的二叉樹,采用基于串行抵消的譯碼方法從根節(jié)點(diǎn)開始遞歸遍歷整個(gè)譯碼樹,樹節(jié)點(diǎn)之間傳遞待譯符號的對數(shù)似然比llr,llr初始值通過如下方式計(jì)算得到:
其中,ui表示發(fā)送比特,l(ui)表示ui的對數(shù)似然比,yi為譯碼器接收到的待譯碼的符號,pr(yi|ui)表示發(fā)送符號為ui時(shí)接收到符號yi的概率,pr(yi|ui)從解調(diào)器的軟判決信息中得到,譯碼開始時(shí),由公式(1)計(jì)算接收符號的對數(shù)似然比并傳遞給根節(jié)點(diǎn),激活根節(jié)點(diǎn);
步驟2,遞歸遍歷譯碼樹
對于譯碼樹上的一個(gè)節(jié)點(diǎn)v,其包含的葉節(jié)點(diǎn)的個(gè)數(shù)為nv,該節(jié)點(diǎn)從父節(jié)點(diǎn)接收一個(gè)長度為nv的llr值序列,記為αv,由αv計(jì)算要傳遞給左子節(jié)點(diǎn)的llr值序列αl:
αl[i]=sgn(αv[i])sgn(αv[i+nv/2])min(|αv[i]|,|αv[i+nv/2]|),0≤i<nv/2(2)
其中,i是向量αv的位置索引,av[i]表示αv的第i個(gè)元素,
以遞歸的方式遍歷左子節(jié)點(diǎn),返回后從左子節(jié)點(diǎn)接收到長度為nv/2的比特序列βl,然后計(jì)算要傳遞給右子節(jié)點(diǎn)的llr值序列αr:
ar[i]=av[i+nv/2]-(2βl[i]-1)av[i],0≤i<nv/2(3)
以遞歸的方式遍歷右子節(jié)點(diǎn),返回后從右字節(jié)點(diǎn)接收到長度為nv的比特序列βr,然后計(jì)算要返回給父節(jié)點(diǎn)的比特序列βv:
其中,
步驟3,特殊節(jié)點(diǎn)譯碼
在步驟2遞歸遍歷左右節(jié)點(diǎn)的過程中,當(dāng)遇到特殊節(jié)點(diǎn)中的至少一種時(shí),則不再向下遞歸而直接譯碼后返回父節(jié)點(diǎn),所述特殊節(jié)點(diǎn)包括rate-0節(jié)點(diǎn)、rate-1節(jié)點(diǎn)、rep節(jié)點(diǎn),spc節(jié)點(diǎn);
所述rate-0節(jié)點(diǎn)包含的葉節(jié)點(diǎn)全是休眠位比特,所述rate-1節(jié)點(diǎn)包含的葉節(jié)點(diǎn)全是信息位比特,所述rep節(jié)點(diǎn)包含的葉節(jié)點(diǎn)只有最后一位是信息位比特,所述spc節(jié)點(diǎn)包含的葉節(jié)點(diǎn)只有第一位是休眠位比特;
rate-0節(jié)點(diǎn)的譯碼策略如下:
βv[i]=0,0≤i<nv(5)
rate-0節(jié)點(diǎn)不分裂新的譯碼路徑;
rate-1節(jié)點(diǎn)的譯碼策略如下:
βv[i]=h(αv[i]),0≤i<nv(6)
其中,
rate-1節(jié)點(diǎn)分裂出4個(gè)譯碼路徑,找到序列αv中絕對值最小的兩個(gè),記為αv[min1],αv[min2],min1、min2為其分別在序列av中的位置索引,將βv[min1]或βv[min2]比特位反轉(zhuǎn);
rep節(jié)點(diǎn)的譯碼策略如下:
rep節(jié)點(diǎn)分裂出2個(gè)譯碼路徑,βv分別為全0比特或者全1比特;
spc節(jié)點(diǎn)的譯碼策略如下:
βv[i]=h(αv[i]),0≤i<nv(9)
如果spc節(jié)點(diǎn)的譯碼結(jié)果βv不滿足奇偶校驗(yàn),則找到序列αv中絕對值最小的,記為αv[min],min是其在序列αv中的索引,然后將βv[min]中的比特位反轉(zhuǎn),spc節(jié)點(diǎn)分裂出4個(gè)譯碼路徑,方法與rate-1節(jié)點(diǎn)相同;
步驟4,利用校驗(yàn)矩陣降低譯碼時(shí)延
在步驟2遞歸遍歷譯碼樹節(jié)點(diǎn)的過程中,如果該節(jié)點(diǎn)不是步驟3中定義的特殊節(jié)點(diǎn),對于列表中的每個(gè)存活路徑,在利用公式(2)計(jì)算αl的同時(shí),判斷h(αv)ητ=0(h矩陣校驗(yàn))是否成立,h(·)為公式(7),h為極化碼校驗(yàn)矩陣:
其中,nv為該節(jié)點(diǎn)包含的葉節(jié)點(diǎn)的數(shù)量,()t表示矩陣轉(zhuǎn)置,
所有路徑都執(zhí)行完h矩陣校驗(yàn)后,按照下式判斷
其中,pmi是第i個(gè)路徑的度量值,zh為滿足h矩陣校驗(yàn)的路徑索引集合,l是列表大小,t是小于1的門限參數(shù)(t的取值用戶可以根據(jù)實(shí)際情況自行確定)。
如果公式(12)成立,則對應(yīng)每個(gè)譯碼路徑,都有
βv[i]=h(αv[i]),0≤i<nv(13)
譯碼路徑分裂方法同第三步中的rate-1節(jié)點(diǎn)相同,然后返回父節(jié)點(diǎn);
如果公式(12)不成立,則繼續(xù)執(zhí)行步驟2中剩余步驟;
步驟5,根據(jù)循環(huán)冗余校驗(yàn)選擇最終譯碼結(jié)果
如果譯碼樹從根節(jié)點(diǎn)返回,對于列表中的第l個(gè)譯碼路徑pl,其返回的比特序列βv記為βv(l),則路徑pl的譯碼結(jié)果
其中,gn為碼長為n的極化碼生成矩陣,如果
具體的,譯碼開始時(shí),列表里只有一條譯碼路徑,對于列表中的每條譯碼路徑,都需要獨(dú)立進(jìn)行譯碼和路徑分裂,分裂后產(chǎn)生的新路徑添加到同一列表中,當(dāng)列表中路徑數(shù)量多于設(shè)定的最大值lmax,則只保留pm值最大的lmax個(gè)路徑,所述pm為用于評價(jià)條譯碼路徑優(yōu)劣的度量值,每次分裂后新產(chǎn)生的路徑根據(jù)新產(chǎn)生的βv序列,更新每個(gè)路徑的度量值pm:
其中,pms為源路徑的pm值,pmn為新路徑的pm值。
作為優(yōu)選,初始路徑的pm值設(shè)為0。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和有益效果:
本發(fā)明在極化碼譯碼遞歸遍歷譯碼樹的過程中,利用極化碼的校驗(yàn)矩陣進(jìn)行校驗(yàn),在校驗(yàn)成立時(shí)不再遞歸遍歷子節(jié)點(diǎn),從而有效降低譯碼時(shí)延。由于利用校驗(yàn)矩陣進(jìn)行判定可以與其他步驟并發(fā)執(zhí)行,不會(huì)增加額外的譯碼時(shí)延。本發(fā)明能夠顯著降低串行抵消方法的譯碼時(shí)延,與經(jīng)典的低時(shí)譯碼方法延置信傳播譯碼相比,時(shí)延特性可以逼近置信傳播譯碼而誤碼率性能和計(jì)算復(fù)雜度顯著優(yōu)于置信傳播譯碼,當(dāng)信噪比越高時(shí),本方法的譯碼時(shí)延降低越明顯。
附圖說明
圖1為碼長n=8,信息位長度k=4的一個(gè)極化碼譯碼樹實(shí)例。
圖2為本發(fā)明提供的降低極化碼譯碼時(shí)延的方法步驟流程圖。
具體實(shí)施方式
以下將結(jié)合具體實(shí)施例對本發(fā)明提供的技術(shù)方案進(jìn)行詳細(xì)說明,應(yīng)理解下述具體實(shí)施方式僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。
本發(fā)明以終端接收設(shè)備為例來給出一種譯碼器實(shí)施例,硬件環(huán)境為nic6000系列dsp芯片,用于說明基于串行抵消列表的降低極化碼譯碼時(shí)延的方法。如圖2所述,本發(fā)明方法包括如下步驟:
步驟1,計(jì)算對數(shù)似然比初始值。
本發(fā)明采用樹形譯碼結(jié)構(gòu),對于一個(gè)碼長為n,信息位長度為k的極化碼,其譯碼樹為深度為n=log2n的二叉樹。圖1給出了n=8、k=4一個(gè)譯碼樹實(shí)例,圖中白色葉節(jié)點(diǎn)表示休眠位比特,黑色葉節(jié)點(diǎn)表示信息位比特?;诖械窒淖g碼方法從根節(jié)點(diǎn)開始遞歸遍歷整個(gè)譯碼樹。
譯碼時(shí)需要在節(jié)點(diǎn)之間傳遞待譯符號的對數(shù)似然比(llr,log-likelihoodratio),llr初始值通過如下方式計(jì)算得到:
其中,ui表示發(fā)送比特,l(ui)表示ui的對數(shù)似然比,yi為譯碼器接收到的待譯碼的符號,pr(yi|ui)表示發(fā)送符號為ui時(shí),接收到符號yi的概率。pr(yi|ui)可從解調(diào)器的軟判決信息中得到。譯碼開始時(shí),由公式(1)計(jì)算接收符號的對數(shù)似然比并傳遞給根節(jié)點(diǎn),激活根節(jié)點(diǎn)。
步驟2,遞歸遍歷譯碼樹。
如圖1所示,對于譯碼樹上的一個(gè)節(jié)點(diǎn)v,其包含的葉節(jié)點(diǎn)的個(gè)數(shù)為nv,該節(jié)點(diǎn)從父節(jié)點(diǎn)接收一個(gè)長度為nv的llr值序列,記為αv。然后由αv計(jì)算要傳遞給左子節(jié)點(diǎn)的llr值序列αl:
αl[i]=sgn(αv[i])sgn(αv[i+nv/2])min(|αv[i]|,|αv[i+nv/2]|),0≤i<nv/2(2)
其中,i是向量αv的位置索引,av[i]表示αv的第i個(gè)元素,
以遞歸的方式遍歷左子節(jié)點(diǎn),返回后從左子節(jié)點(diǎn)接收到長度為nv/2的比特序列βl,然后計(jì)算要傳遞給右子節(jié)點(diǎn)的llr值序列αr:
ar[i]=av[i+nv/2]-(2βl[i]-1)av[i],0≤i<nv/2(3)
以遞歸的方式遍歷右子節(jié)點(diǎn),返回后從右字節(jié)點(diǎn)接收到長度為nv的比特序列βr,然后計(jì)算要返回給父節(jié)點(diǎn)的比特序列βv:
其中,
步驟3,特殊節(jié)點(diǎn)譯碼。
在步驟2遞歸遍歷左右節(jié)點(diǎn)的過程中,如果遇到以下幾種類型的節(jié)點(diǎn),則不再向下遞歸而直接譯碼后返回父節(jié)點(diǎn)。這幾種節(jié)點(diǎn)類型分別是:若其包含的葉節(jié)點(diǎn)全是休眠位比特,則記為rate-0節(jié)點(diǎn);若其包含的葉節(jié)點(diǎn)全是信息位比特,則記為rate-1節(jié)點(diǎn);若其包含的葉節(jié)點(diǎn)只有最后一位是信息位比特,則記為rep(repetitionnodes)節(jié)點(diǎn);若其包含的葉節(jié)點(diǎn)只有第一位是休眠位比特,則記為spc(singleparitychecknodes)節(jié)點(diǎn)。
本步驟中nv、αv、βv的定義同第一步。以下是上述4種類型的節(jié)點(diǎn)相應(yīng)的譯碼策略。
如果是rate-0節(jié)點(diǎn),則:
βv[i]=0,0≤i<nv(5)
rate-0節(jié)點(diǎn)不分裂新的譯碼路徑。
如果是rate-1節(jié)點(diǎn),則:
βv[i]=h(αv[i]),0≤i<nv(6)
其中,
rate-1節(jié)點(diǎn)分裂出4個(gè)譯碼路徑,找到序列αv中絕對值最小的兩個(gè),記為αv[min1],αv[min2],min1、min2為其分別在序列av中的位置索引。αv向量中的數(shù)值的絕對值越小,βv中對應(yīng)位置的比特譯碼置信度越低,即越容易發(fā)生錯(cuò)誤判決。將βv[min1]或βv[min2]比特位反轉(zhuǎn),則可以有4種組合方式,即產(chǎn)生4個(gè)新的βv,分別對應(yīng)于4個(gè)譯碼路徑。把βv[min1]和βv[min2]兩個(gè)比特的所有可能性都考慮進(jìn)來,可以降低譯碼出錯(cuò)的概率。
如果是rep節(jié)點(diǎn),則:
rep節(jié)點(diǎn)分裂出2個(gè)譯碼路徑,βv分別為全0比特或者全1比特。
如果是spc節(jié)點(diǎn),則:
βv[i]=h(αv[i]),0≤i<nv(9)
如果spc節(jié)點(diǎn)的譯碼結(jié)果βv不滿足奇偶校驗(yàn),則找到序列αv中絕對值最小的,記為αv[min],min是其在序列αv中的索引,然后將βv[min]中的比特位反轉(zhuǎn);如果滿足奇偶校驗(yàn),則βv[min]不需要反轉(zhuǎn)。spc節(jié)點(diǎn)分裂出4個(gè)譯碼路徑,方法與rate-1節(jié)點(diǎn)相同,即找出αv中絕對值最小的兩個(gè)。
譯碼開始時(shí),列表里只有一條譯碼路徑,每條譯碼路徑都有一個(gè)評價(jià)路徑優(yōu)劣的度量值pm(pathmetric),初始路徑的pm值設(shè)為0。每次分裂后新產(chǎn)生的路徑根據(jù)新產(chǎn)生的βv序列,更新每個(gè)路徑的度量值pm:
其中,pms為源路徑的pm值,pmn為新路徑的pm值,|·|表示取絕對值符號。
對于列表中的每條譯碼路徑,都需要獨(dú)立進(jìn)行譯碼和路徑分裂,分裂后產(chǎn)生的新路徑添加到同一列表中,如果列表中路徑數(shù)量多于設(shè)定的最大值lmax(lmax取值為常整數(shù),該取值可由運(yùn)營商根據(jù)誤碼率要求情況自行確定,lmax越大,誤碼率越低),則只保留pm值最大的lmax個(gè)路徑。
步驟4,利用校驗(yàn)矩陣降低譯碼時(shí)延。
在步驟2遞歸遍歷譯碼樹節(jié)點(diǎn)的過程中,如果該節(jié)點(diǎn)不是步驟3中定義的特殊節(jié)點(diǎn)。對于列表中的每個(gè)存活路徑,在利用公式(2)計(jì)算αl的同時(shí),判斷h(αv)ητ=0(h矩陣校驗(yàn))是否成立,h(·)為公式(7),h為極化碼校驗(yàn)矩陣:
其中,nv為該節(jié)點(diǎn)包含的葉節(jié)點(diǎn)的數(shù)量,()t表示矩陣轉(zhuǎn)置,
如果要求所有路徑都滿足h矩陣校驗(yàn),條件過于苛刻。所以考慮到每個(gè)路徑的優(yōu)先級不同,按照下列方法判斷
其中,pmi是第i個(gè)路徑的度量值,zh為滿足h矩陣校驗(yàn)的路徑索引集合,l是列表大小,t是小于1的門限參數(shù)(t的取值用戶可以根據(jù)實(shí)際情況自行確定)。
如果公式(12)成立,則對應(yīng)每個(gè)譯碼路徑,都有
βv[i]=h(αv[i]),0≤i<nv(13)
譯碼路徑分裂方法同第三步中的rate-1節(jié)點(diǎn)相同,即找出αv中絕對值最小的兩個(gè),然后反轉(zhuǎn)對應(yīng)的比特位,分裂出四個(gè)譯碼路徑。然后返回父節(jié)點(diǎn)。
如果公式(12)不成立,則繼續(xù)執(zhí)行步驟2中剩余步驟。由于本方法采用的校驗(yàn)矩陣檢測是與αl的計(jì)算同時(shí)進(jìn)行的,校驗(yàn)矩陣檢測不成立時(shí)也不會(huì)增加額外的計(jì)算時(shí)延。h(αv)ητ=0成立時(shí),不再往下遞歸遍歷子節(jié)點(diǎn),因而可以有效降低譯碼時(shí)延。
步驟5,根據(jù)循環(huán)冗余校驗(yàn)選擇最終譯碼結(jié)果。
如果譯碼樹從根節(jié)點(diǎn)返回,對于列表中的第l個(gè)譯碼路徑pl,其返回的比特序列βv記為βv(l),則路徑pl的譯碼結(jié)果
其中,gn為碼長為n的極化碼生成矩陣。如果
本發(fā)明方案所公開的技術(shù)手段不僅限于上述實(shí)施方式所公開的技術(shù)手段,還包括由以上技術(shù)特征任意組合所組成的技術(shù)方案。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。