本發(fā)明涉及通信編碼技術領域,具體來說是一種極化碼的高效構造方法。
背景技術:
極化碼被人們所熟知,是因為其對多種對稱離散無記憶信道(dmc)能夠實現達到香農限,同時具有明確的編碼構造方法和較低的編譯碼復雜度,被選定為控制信道在5g增強編碼方法。極化碼的構造問題是:對于給定的編碼率r,如何從
因此,如何降低極化碼構造的復雜度,提出一種高效的極化碼構造方法已經成為急需解決的技術問題。
技術實現要素:
本發(fā)明的目的是為了解決現有技術中極化碼構造算法復雜度高的缺陷,提供一種極化碼的高效構造方法來解決上述問題。
為了實現上述目的,本發(fā)明的技術方案如下:
一種極化碼的高效構造方法,包括以下步驟:
信道之間關系的確定,根據部分序列定理的兩種形式確定部分信道之間的關系,再利用廣義部分序列定理找到其他信道之間的關系,最后通過中間信道確定部分信道之間的間接關系;
根據信道關系矩陣o得到信息位和休眠位的判斷,根據信道關系矩陣o確定為信息位的信道和為休眠位的信道,并將這些信道分別放入集合i、f中,將余下的信道放入集合u中,設需選出k位信息位,其中i中已經確定的信息位個數為ki;
k位信息位的構成,對集合u進行信道的巴氏參數計算,選出集合u中最好的k-|i|個信道,將這k-|i|個信道放入集合i中,將集合i中的信道作為極化碼的k位信息位。
所述的信道之間關系的確定包括以下步驟:
利用部分序列定理的兩種形式確定部分信道之間的關系;
利用廣義部分序列定理找到其他信道之間的關系;
通過中間信道確定部分信道之間的間接關系,找出所有能夠利用中間信道確定部分信道之間的間接關系,其具體步驟如下:
獲取信道關系矩陣o;
對于i、j、k進行初始化,令i=2、j=1、k=1;
中間信道判斷,若信道i比信道k好且信道k比信道j好,則令oij=1,并跳至j值遞加后再判斷步驟;否則,按順序進行下一步驟;
若信道i比信道k差且信道k比信道j差,則令oij=-1;
j值遞加后再判斷,將j+1的值賦給j;判斷:若j<i,返回至中間信道判斷步驟,若j≥i,按順序進行下一步驟;
將i+1的值賦給i,若i≤n,返回至中間信道判斷步驟,若i>n,按順序進行下一步驟;
將k+1的值賦給k,若k≤n,返回至中間信道判斷步驟,若k>n,按順序進行下一步驟;
信道關系矩陣o更新完畢。
所述的根據信道關系矩陣o得到信息位和休眠位的判斷包括以下步驟:
設信息位信道集合為i、休眠位信道集合為f、待確定信道集合為u;
獲取更新完畢后的信道關系矩陣o,依次對n個信道分別進行判斷:
若信道c比n-k個信道好,則將信道c加入集合i;
若信道c比k個信道差,則將信道c加入集合f;
若信道c不比n-k個信道好且不比k個信道差,則將信道z加入集合u。
所述的利用部分序列定理的兩種形式確定部分信道之間的關系包括以下步驟:
獲取碼長n,其中n=2n;
建立信道關系矩陣o,其中信道關系矩陣o為n×n的矩陣,并將信道關系矩陣o初始化為全0;
用信道關系矩陣o去掉對角線的下三角來存放
其中,i表示第i信道,j表示第j信道,
對i、j進行初始化,令i=2,j=1;
第i信道進行二進制展開,對i-1,進行二進制展開,則i-1=(in,in-1,…,i1)b;
第j信道進行二進制展開,對j-1,進行二進制展開,則j-1=(jn,jn-1,…,j1)b;
將第i信道的二進制展開減去第j信道的二進制展開,
令x=(in,in-1,…,i1)b-(jn,jn-1,…,j1)b=(in-jn,in-1-jn-1,…,i1-j1);
判斷若x中有不少于-1個數的1都比相應的-1的位置大,那么信道i比信道j好,并令oij=1;
將j+1的值賦給j;
判斷:若j<i,則進行第j信道進行二進制展開步驟;
若j≥i,則將i+1的值賦給i,并判斷:若i≤n,則進行第i信道進行二進制展開步驟,若i>n,碼長n處理完畢,得到初步求出的信道關系矩陣o。
所述的利用廣義部分序列定理找到其他信道之間的關系步驟為根據廣義部分序列定理對信道關系矩陣o進行更新,其具體步驟如下:
獲取信道關系矩陣o,給定要降低的維度nu(nu<n),令nl=n-nu,
對于iu、ju、il、jl、k進行初始化,令iu=2,ju=1,il=1,jl=1,k=nu;
對i和j進行賦值,令i=(iu-1)×nl+il,j=(ju-1)×nl+jl;
調用tal-vardy算法計算nu低維度信道的巴氏參數,并存儲這些信息;
如果信道iu通過巴氏參數計算得到比信道ju好且信道il不比信道jl差,則信道i比信道j好;
如果i>j,則令oij=1。如果i<j,則令oji=-1;
將jl+1的值賦給jl;若jl≤il,則返回至對i和j進行賦值步驟;若jl>il,則按順序進行下一步;
將il+1的值賦給il;若il≤nl,則返回至對i和j進行賦值步驟;若il>nl,則按順序進行下一步;
將ju+1的值賦給ju;若ju≤nu,則返回至對i和j進行賦值步驟;若ju>nu,則按順序進行下一步;
將iu+1的值賦給iu;若iu≤nu,則返回至對i和j進行賦值步驟;若iu>nu,則按順序進行下一步;
將k-1的值賦給k,令nu=2k、nl=2n-k,若k≥3,則返回至對i和j進行賦值步驟;若k<3,則按順序進行下一步;
信道關系矩陣o更新完畢。
所述的廣義部分序列定理,定義如下:
給定一個作用信道w,對于信道i、j,則有i-1=(in,in-1,…,i1)b,j-1=(jn,jn-1,…,j1)b;
將n位i-1的二進制展開分成兩個部分:上半部分
則i-1=(iu-1)×nl+il-1;
將n位j-1的二進制展開分成兩個部分:上半部分
則j-1=(ju-1)×nl+jl-1;
若
其中:
有益效果
本發(fā)明的一種極化碼的高效構造方法,與現有技術相比降低了極化碼構造的復雜度,提出了極化碼的高效構造。本發(fā)明首先在不計算信道的巴氏參數的條件下,確定部分信道之間的關系,再確定哪些信道一定是信息位、休眠位,并將這些信道分別放入集合i、f中,將余下的信道放入集合u中。再針對集合u中信道的巴氏參數的計算,選出最好的k位信息位。本發(fā)明避免了針對所有信道均進行巴氏參數的計算,大大減少了計算量,提高了極化碼的構造效率。
附圖說明
圖1為本發(fā)明的方法順序圖;
圖2為經過信道之間關系的確定步驟后使用matlab編譯器畫出的信道關系矩陣o的示意圖;
圖3為經過利用部分序列定理的兩種形式確定部分信道之間的關系步驟后與通過中間信道確定部分信道之間的間接關系步驟后集合u的信道占總信道之比圖。
具體實施方式
為使對本發(fā)明的結構特征及所達成的功效有更進一步的了解與認識,用以較佳的實施例及附圖配合詳細的說明,說明如下:
如圖1所示,本發(fā)明所述的一種極化碼的高效構造方法,包括以下步驟:
第一步,信道之間關系的確定。在不計算信息的巴氏參數的條件下,根據部分序列定理(po定理)的兩種形式先確定部分信道之間的關系,再利用廣義部分序列定理找到其他信道之間的關系,最后通過中間信道確定部分信道之間的間接關系。避免所有信道均進行巴氏參數的計算,只針對無法判斷出的信道再進行巴氏參數的計算,從而大大減少計算量。其具體步驟如下:
首先,利用部分序列定理的兩種形式確定部分信道之間的關系。
部分序列定理為現有技術中的傳統(tǒng)定理,其定理描述如下:
在描述po定理之前先做如下定義
定義1:若1≤i,j≤n,其中i-1=(in,in-1,…,i1)b和j-1=(jn,jn-1,…,j1)b是i-1和j-1的二進制展開。在l<l′的條件下,若有
1)jl=1且jl′=0
2)il=0且il′=1
3)對于所有的
則有
定理1:如果
滿足定理1的兩個信道具有相同的漢明重,并將這樣的信道之間的序列寫成
定理2:若1≤i,j≤n,其中i-1=(in,in-1,…,i1)b和j-1=(jn,jn-1,…,j1)b是i-1和j-1的二進制展開。對于任何
滿足定理2的兩個信道之間的序列寫成
針對部分序列定理的兩種形式(上述的定理1和定理2),在此可以先確定部分信道之間的關系,其具體步驟如下:
(1)獲取碼長n,其中n=2n。
(2)建立信道關系矩陣o,其中信道關系矩陣o為n×n的矩陣,并將信道關系矩陣o初始化為全0。
在此,共有n個信道,所以有
其中,i表示第i信道,j表示第j信道,
(3)對i、j進行初始化,令i=2,j=1。
(4)第i信道進行二進制展開,對i-1,進行二進制展開,則i-1=(in,in-1,…,i1)b。
(5)第j信道進行二進制展開,對j-1,進行二進制展開,則j-1=(jn,jn-1,…,j1)b。
(6)將第i信道的二進制展開減去第j信道的二進制展開,令x=(in,in-1,…,i1)b-(jn,jn-1,…,j1)b=(in-jn,in-1-jn-1,…,i1-j1)。即前一信道與后一信道之間進行判斷。
(7)判斷若x中有不少于-1個數的1都比相應的-1的位置高,那么信道i比信道j好,并令oij=1。
舉例而言,i-1=(1,1,0,1,1,0)與j-1=(0,1,1,1,0,1),則x=(1,0,-1,0,1,-1)。x里有兩個-1,且可以找的兩個1的位置比相應的兩個-1的位置高(從右(低位)往左(高位),第2位的1比第1位的-1位置高,第6位的1比第4位的-1位置高)。
(8)將j+1的值賦給j,進行循環(huán)判斷。
判斷:若j<i,則進行第j信道進行二進制展開步驟;
若j≥i,則將i+1的值賦給i,并判斷:若i≤n,則進行第i信道進行二進制展開步驟,繼續(xù)進行相應的判斷。若i>n,碼長n處理完畢,得到初步求出的信道關系矩陣o。
其次,利用廣義部分序列定理找到其他信道之間的關系。廣義部分序列定理為本發(fā)明提出的創(chuàng)新技術,其特點是將信道的二進制展開分成兩個部分(上半部分和下半部分),如果上半部分的信道和下半部分的信道都比另一個信道的相應部分好(差),那么這個信道就比另一個信道好(差)。定理的具體描述如下:
對廣義部分序列定理進行定義,定義如下:
a、給定一個作用信道w,對于信道i、j,則有i-1=(in,in-1,…,i1)b,j-1=(jn,jn-1,…,j1)b;
將n位i-1的二進制展開分成兩個部分:上半部分
則i-1=(iu-1)×nl+il-1;
將n位j-1的二進制展開分成兩個部分:上半部分
則j-1=(ju-1)×nl+jl-1。
b、若
其中:
下面給出針對廣義部分序列定理的證明:
已知對于任何信道i,都有當
為了方便討論,做如下定義:
其中:記
首先,證明當
充分性:
因為
必要性:
因為
然后,證明當
充分性:
因為iu=ju,所以
必要性:
因為iu=ju,所以
最后,證明:
首先我們定義一個中間信道
在此,根據廣義部分序列定理對信道關系矩陣o進行更新,其具體步驟如下:
a、獲取信道關系矩陣o,給定要降低的維度nu(nu<n),令nl=n-nu,
b、對于iu、ju、il、jl、k進行初始化,令iu=2,ju=1,il=1,jl=1,k=nu。
c、對i和j進行賦值,令i=(iu-1)×nl+il,j=(ju-1)×nl+jl。按廣義部分序列定理將信道分成兩部分。
如果信道iu與信道ju的關系不能由部分序列定理得到(不滿足部分序列定理,或者說“差x”不滿足部分序列里給出的條件),但是可以通過計算相應信道的巴氏參數獲得,且信道il與信道jl關系是通過部分序列定理得到,則可以通過廣義部分序列定理得出之間的關系。
d、調用tal-vardy算法計算nu低維度信道的巴氏參數,并存儲這些信息。
e、如果信道iu比信道ju好(通過巴氏參數判斷得出)且信道il不比信道jl差,則信道i比信道j好。
例如信道i-1=(10011110)b與信道j-1=(10011011)b是不能由部分序列定理得到其關系的,如果信道iu-1=(1001)b與信道ju-1=(0110)b通過計算信道的巴氏參數可以得到信道iu比信道ju好,其中信道il-1=(1110)b比信道jl-1=(1011)b好可以通過部分序列定理的到,則可以判斷信道i-1=(10011110)b比信道j-1=(10011011)b好。
f、如果i>j,則令oij=1。如果i<j,則令oji=-1。
g、將jl+1的值賦給jl進行循環(huán)遍歷處理。若jl≤il,則返回至對i和j進行賦值步驟;若jl>il,則按順序進行下一步。
h、將il+1的值賦給il;若il≤nl,則返回至對i和j進行賦值步驟;若il>nl,則按順序進行下一步。
i、將ju+1的值賦給ju;若ju≤nu,則返回至對i和j進行賦值步驟;若ju>nu,則按順序進行下一步。
j、將iu+1的值賦給iu;若iu≤nu,則返回至對i和j進行賦值步驟;若iu>nu,則按順序進行下一步。
k、將k-1的值賦給k,令nu=2k、nl=2n-k,若k≥3,則返回至對i和j進行賦值步驟;若k<3,則按順序進行下一步。
l、信道關系矩陣o更新完畢。
最后,通過中間信道確定部分信道之間的間接關系。找出所有能夠利用中間信道確定部分信道之間的間接關系,其具體步驟如下:
(1)獲取更新后的信道關系矩陣o。
(2)對于i、j、k進行初始化,令i=2、j=1、k=1。所有的信道都可以是中間信道,比如信道2比信道1好,信道1比信道3好,那么信道2就比信道3好。不過由于最小的三個信道和最大的三個信道特殊,在實際應用中最小的三個信道和最大的三個信道通過傳統(tǒng)的判斷方式就可以判斷所有的關系(例如巴氏參數計算或部分序列定理),因此在此不需要考慮這6個信道。
(3)中間信道判斷,若信道i比信道k好且信道k比信道j好,則令oij=1,并跳至j值遞加后再判斷步驟;否則,按順序進行下一步驟。
(4)若信道i比信道k差且信道k比信道j差,則令oij=-1。
(5)j值遞加后再判斷,將j+1的值賦給j;判斷:若j<i,返回至中間信道判斷步驟,若j≥i,按順序進行下一步驟。
(6)將i+1的值賦給i,若i≤n,返回至中間信道判斷步驟,若i>n,按順序進行下一步驟。
(7)將k+1的值賦給k,若k≤n,返回至中間信道判斷步驟,若k>n,按順序進行下一步驟。
(8)信道關系矩陣o更新完畢。此時,經過此步驟更新后的信道關系矩陣o已經可以明確得到哪些信道為信息位、哪些信道為休眠位、哪些信道為不確定。
如圖2所示,圖2為信道關系矩陣o的示意圖。圖片在計算機里就是以矩陣的方式存儲(或者說一堆數據)的,每張圖片分成多少個像點,每個像點又有不同的像素,矩陣的里每個元素相當于像點,每個元數又可以是不同的值相當于像素,將得到的矩陣o模2后矩陣里就只有0、1了,再將0對應為白色,1對應為黑色(三原色),用matlab編譯器畫出。
圖2中黑色點表示矩陣o相應位置的點是1或者-1(表示該對信道的關系是已知的),白色點表示矩陣o相應位置的點是0(表示該對信道的關系是未知的),上三角白色區(qū)域為無意義的。該示意圖是以碼長為n=29=512,降低的維度為nu=6的示意圖,因此下三角區(qū)域有組合數
如圖3所示,碼長為n=29=512時,在不同的碼率r,比值γ的變化曲線。其中γ表示集合u里的信道個數占總信道個數的比值:γ=|u|/n??梢钥闯龃a率r=0.5是最壞的情況,在信道之間關系的確定步驟后,集合u中的信道個數在最壞的時候也只占總信道個數的0.2倍。
第二步,根據信道關系矩陣o得到信息位和休眠位的判斷,在此,矩陣o把已經可以判斷出來的關系存儲了起來,根據矩陣o可以得到每個信道比多少個信道好以及比多少個信道差,要選k位信息位,那么已經比n-k個信道好的信道一定會被選進集合i,已經比k個信道差的信道一定會被選進集合f,余下的信道放入集合u中。根據信道關系矩陣o確定為信息位的信道和為休眠位的信道,并將這些信道分別放入集合i、f中,將余下的信道放入集合u中,設需選出k位信息位,其中i中已經確定的信息位個數為ki。
其具體步驟如下:
(1)設信息位信道集合為i、休眠位信道集合為f、待確定信道集合為u。
(2)獲取更新完畢后的信道關系矩陣o,依次對n個信道分別進行判斷:
若信道c已經比n-k個信道好,則將信道c加入集合i;
若信道c已經比k個信道差,則將信道c加入集合f;
若信道c不比n-k個信道好且不比k個信道差,則將信道z加入集合u。
第三步,k位信息位的構成。對集合u進行信道的巴氏參數計算,選出集合u中最好的k-|i|個信道,將這k-|i|個信道放入集合i中,將集合i中的信道作為極化碼的k位信息位。
表1碼率為r=0.5時不同碼長的改進前后時間對比表
如表1所示,其顯示了碼率為r=0.5時(從圖3可以看出碼率為r=0.5是最壞的情況),不同碼長的改進前后時間對比表,可以看出即使在最壞的情況下,改進后的時間也不到原來時間的1/3。
以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明的范圍內。本發(fā)明要求的保護范圍由所附的權利要求書及其等同物界定。