本發(fā)明涉及一種極化碼譯碼方法,特別涉及一種基于分段hash序列的極化碼譯碼方法,屬于信道編碼領(lǐng)域。
背景技術(shù):
2009年,arikan在一篇文章中提出的極化碼編譯碼方案引起了信道編碼界的廣泛關(guān)注,這是信道編碼歷史上第一次給出了一種理論上可達(dá)信道容量的編譯碼方案。
極化碼的核心原理為信道極化理論,信道極化分為信道組合和信道拆分。信道組合是將n個(gè)獨(dú)立的信道w:x→y通過(guò)線性變換合并成一個(gè)整體的信道wn:xn→yn,如附圖1所示,圖中分別給出了兩個(gè)信道進(jìn)行組合以及通過(guò)遞歸實(shí)現(xiàn)n個(gè)信道進(jìn)行信道組合的示意圖,其中u∈x為待編碼信息,服從等概率分布,向量
雖然scl譯碼算法具有接近最大似然(maximumlikelihood,ml)的性能,但是它仍然存在兩個(gè)缺點(diǎn):(1)scl算法的高譯碼可靠性是以復(fù)雜度增加為代價(jià)的,其譯碼復(fù)雜度隨著搜索路徑l的增加而增加;(2)極化碼譯碼算法為順序譯碼,存在一定的錯(cuò)誤傳播現(xiàn)象,即如果前幾個(gè)比特譯碼錯(cuò)誤,后面的比特均會(huì)譯碼失敗,而現(xiàn)有的ca-scl算法,校驗(yàn)位在信息比特之后,只有所有比特全部譯出后才能進(jìn)行校驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述scl譯碼算法存在的問(wèn)題,本發(fā)明提供一種基于分段hash序列的極化碼譯碼方法,該方法降低了譯碼復(fù)雜度,并且具有提前終止譯碼的特點(diǎn),出現(xiàn)錯(cuò)誤傳播時(shí)可以及時(shí)停止譯碼,在反饋重傳的協(xié)議中,可以降低譯碼時(shí)延。
本發(fā)明的實(shí)質(zhì)是通過(guò)在信息比特序列中分段插入hash序列,譯碼過(guò)程中利用hash序列對(duì)該段信息進(jìn)行校驗(yàn),從而實(shí)現(xiàn)縮減譯碼搜索路徑和提前終止譯碼的效果,本發(fā)明的整體流程圖如附圖2所示。
假設(shè)待譯碼的是長(zhǎng)度為e經(jīng)分段hash極化碼編碼的序列y,所述分段hash極化碼編碼是將長(zhǎng)度為d比特的信息序列m分為k段,每段長(zhǎng)l,再通過(guò)hash極化碼編碼的序列u。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
步驟1、根據(jù)信道狀態(tài)信息(channelstateinformation,csi)計(jì)算各極化子信道的信道出錯(cuò)概率(常用的計(jì)算方法有巴氏參數(shù)計(jì)算法,密度演進(jìn)法和高斯近似法),從而得到信息比特集合、校驗(yàn)比特集合和凍結(jié)比特集合。
步驟2、對(duì)信息序列y按照u1,u2...,ue的順序依次分段進(jìn)行按照路徑搜索的極化碼譯碼,優(yōu)選的極化碼譯碼算法是scl算法。假設(shè)當(dāng)前譯碼到第k段wk=[mk,sk]的第i個(gè)比特ui,其中,i=1,2,...,e,k=1,2,...,k,具體方法為:
1.如果ui為凍結(jié)比特,則譯碼結(jié)果為
2.如果ui為信息比特中的任意信息位(即mk中任意比特)或hash校驗(yàn)位的前v-1位(即sk的前v-1個(gè)比特),其中v為每個(gè)譯碼段中hash校驗(yàn)序列的長(zhǎng)度,則按照scl譯碼規(guī)則進(jìn)行譯碼,搜索路徑從第一個(gè)非凍結(jié)比特開始,以2的冪數(shù)從20依比特?cái)U(kuò)展,直到搜索路徑達(dá)到2l,保留其中錯(cuò)誤概率最低的l條路徑繼續(xù)順序向下擴(kuò)展,其中l(wèi)為scl譯碼算法中最大保留路徑數(shù)目;
3.如果ui為信息比特中的hash位sk的第v個(gè)比特,則第k段譯碼結(jié)束。
步驟3、將第k段譯碼段2l條路徑中的信息位mk與第k-1段譯碼段中的hash位sk-1送入hash函數(shù),得到校驗(yàn)結(jié)果sk',與第k段譯碼段2l條路徑中的hash位sk作比較,保留sk'=sk的路徑中錯(cuò)誤概率最低的一條作為當(dāng)前譯碼段的譯碼結(jié)果,如果沒(méi)有路徑滿足條件:sk'=sk,則終止譯碼,判定譯碼失敗。
步驟4、如果上一段譯碼結(jié)果有路徑通過(guò)校驗(yàn),則重復(fù)步驟2和步驟3進(jìn)行下一段譯碼,該過(guò)程直到譯碼失敗或成功譯出最后一段信息。
上述譯碼過(guò)程如圖3所示。
本發(fā)明提出的基于分段hash序列的極化碼譯碼方案與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
1)由于本發(fā)明方法分段進(jìn)行hash校驗(yàn),每一段譯碼結(jié)束后都會(huì)進(jìn)行校驗(yàn)和路徑選擇,從而減小了路徑搜索寬度,降低了極化碼譯碼復(fù)雜度;
2)進(jìn)行分段hash校驗(yàn)時(shí),如果該譯碼段沒(méi)有通過(guò)校驗(yàn),則提前終止譯碼,不需要再進(jìn)行無(wú)意義的后續(xù)比特的譯碼,降低了譯碼時(shí)延;
3)與現(xiàn)有的scl譯碼算法相比,本發(fā)明由于分段校驗(yàn)譯碼,可以更為細(xì)化的定位譯碼錯(cuò)誤位置,可級(jí)聯(lián)比特翻轉(zhuǎn)等譯碼算法提高可靠性。
附圖說(shuō)明
圖1為信道組合示意圖。
圖2為發(fā)明整體流程圖。
圖3為基于分段hash校驗(yàn)的極化碼譯碼流程圖。
具體實(shí)施方式
下面結(jié)合附圖與具體實(shí)施過(guò)程對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
下面采用本發(fā)明提出的基于分段hash校驗(yàn)極化碼的譯碼方法對(duì)一個(gè)長(zhǎng)度為512比特的信息序列m進(jìn)行編譯碼,碼長(zhǎng)1024比特,碼率為1/2,list大小32。我們選擇one-at-a-time算法作為hash函數(shù)算法。將512比特的信息序列m平均分成k=4段,每段長(zhǎng)l=512/4=128比特,進(jìn)行分段hash極化碼編碼后,得到長(zhǎng)度為1024比特的編碼序列u并發(fā)送。接收端具體操作步驟如下:
步驟1、根據(jù)信道狀態(tài)信息按照高斯近似的方法計(jì)算各極化子信道的信道出錯(cuò)概率,得到信息比特集合、校驗(yàn)比特集合和凍結(jié)比特集合。
步驟2、接收端對(duì)接收到的信息序列y按照u1,u2...,u1024的順序依次進(jìn)行scl算法譯碼。
2.1如果當(dāng)前譯碼比特ui為凍結(jié)比特,則譯碼結(jié)果為
2.2如果ui為信息比特中的信息位(即mk)或hash位的前3位(即sk的前3個(gè)比特),則按照scl譯碼規(guī)則進(jìn)行譯碼,譯碼過(guò)程中搜索路徑從該譯碼段的第一個(gè)非凍結(jié)比特開始,以2的冪數(shù)從20依比特?cái)U(kuò)展,直到達(dá)到最大搜索路徑2×32=64,當(dāng)達(dá)到最大搜索路徑后,保留其中錯(cuò)誤概率最低的32條路徑繼續(xù)進(jìn)行譯碼;
2.3當(dāng)ui為信息比特中的hash位的最后一位(即sk的第4個(gè)比特),則在該比特譯碼結(jié)束后對(duì)包括該比特在內(nèi)的前128比特進(jìn)行hash校驗(yàn),具體校驗(yàn)過(guò)程如步驟3;
步驟3、將當(dāng)前譯碼段64條路徑中的信息位(mk)與分別上一個(gè)譯碼段中的hash位sk-1送入hash函數(shù),得到校驗(yàn)結(jié)果sk',與當(dāng)前譯碼段64條路徑中的hash位sk作比較,保留其中所有滿足sk'=sk的路徑中錯(cuò)誤概率最低的一條作為當(dāng)前譯碼段的譯碼結(jié)果,如果沒(méi)有路徑滿足sk'=sk,則終止譯碼,判定譯碼失敗。
步驟4、如果上一段譯碼結(jié)果有路徑通過(guò)校驗(yàn),則重復(fù)步驟2和步驟3進(jìn)行下一段譯碼,該過(guò)程直到譯碼失敗或成功譯出最后一段信息。