極化碼信道組合與分裂-倒位排序-對二進制而言-Rader算法

雷德(Rader)算法

假如使用A[I]存的是順序位序,而B[J]存的是倒位序。I<J的時候需要變序,I>J的時候就不用。

注意:倒位排序-對二進制而言。

倒位序 順序          二進制表示      倒位序順序

0 0                   000          000
4 1                   100          001
2 2                   010          010           
6 3                   110          011
1 4                    001         100
5 5                    101         101
3 6                    011         110
7 7                    111          111

由上面的表可以看出,按自然順序排列的二進制數,其下面一個數總是比其上面一個數大1,即下面一個數是上面一個數在最低位加1並向高位進位而得到的。而倒位序二進制數的下面一個數是上面一個數在最高位加1並由高位向低位進位而得到。

I、J都是從0開始,若已知某個倒位序J,要求下一個倒位序數,則應先判斷J的最高位是否爲0,這可與k=N/2相比較,因爲N/2總是等於100..的。如果k>J,則J的最高位爲0,只要把該位變爲1(J與k=N/2相加即可),就得到下一個倒位序數;如果K<=J,則J的最高位爲1,可將最高位變爲0(J與k=N/2相減即可)。然後還需判斷次高位,這可與k=N\4相比較,若次高位爲0,則需將它變爲1(加N\4即可)其他位不變,既得到下一個倒位序數;若次高位是1,則需將它也變爲0。然後再判斷下一位。。。。
由上面的表可以看出,按自然順序排列的二進制數,其下面一個數總是比其上面一個數大1,即下面一個數是上面一個數在最低位加1並向高位進位而得到的。而倒位序二進制數的下面一個數是上面一個數在最高位加1並由高位向低位進位而得到。
I、J都是從0開始,若已知某個倒位序J,要求下一個倒位序數,則應先判斷J的最高位是否爲0,這可與k=N/2相比較,因爲N/2總是等於100..的。如果k>J,則J的最高位爲0,只要把該位變爲1(J與k=N/2相加即可),就得到下一個倒位序數;如果K<=J,則J的最高位爲1,可將最高位變爲0(J與k=N/2相減即可)。然後還需判斷次高位,這可與k=N\4相比較,若次高位爲0,則需將它變爲1(加N\4即可)其他位不變,既得到下一個倒位序數;若次高位是1,則需將它也變爲0。然後再判斷下一位。。。。

發佈了12 篇原創文章 · 獲贊 15 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章