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