//本文均屬原創,轉載請注明出處。
//本課程以36.212 v10.4.0為教材,請自行到3GPP網站下載。
//由於保密的原因,暫不提供代碼查看。
模塊作用:對控制信息和廣播信道進行信道編碼,增強魯棒性。
相關模塊:速率匹配
咬尾卷積碼優缺點:克服了碼率損失的問題,並且適合迭代譯碼,但是譯碼復雜度增加了。
本文主要介紹咬尾卷積碼,協議上(v10.4.0)寫的很簡單,我一句句來分析下:
A tail biting convolutional code with constraint length 7 and coding rate 1/3 is defined.
這里有兩個概念,constraint length-約束長度;coding rate-編碼速率。
約束長度百度上搜下,介紹為:
很好理解。
編碼速率和卷積碼有關,介紹如下:
若以(k,n,m)來描述卷積碼,其中k為每次輸入到卷積編碼器的bit數,n為每個k元組碼字對應的卷積碼輸出n元組碼字,m稱為約束長度,編碼速率k/n。
也很好理解。
下面是標准中的卷積碼生成圖:
其中D從左到右分別對應標准上的S0,S1,。。。S5。
初始化時,S0=Ck-1,S1=Ck-2,。。。S5=Ck-6。 //initialization
輸入第一個比特C0,d0=C0^Ck-2^Ck-3^Ck-5^Ck-6, //^代表異或
d1,d2也是依樣畫葫蘆生成。 //
當輸入第二個比特C1時,寄存器右移一位,最末位拋棄,即S5拋棄,第一位變為輸入位,即S0=C0。 //registered update
當最后的比特Ck-1進行編碼完成后,寄存器又回到了初始狀態,就像一條蛇咬住了自己的尾巴,這就是tailbiting的由來。因此,這個卷積碼也叫做咬尾卷積碼。
G0,G1,G2是生成公式,與輸入比特異或的寄存器為1,不異或的寄存器為0,因此,第一個輸出d0的生成公式是011011,同CRC的生成公式一樣,最高位要置1,因此生成公式為1011011,寫成八進制就是133.
編碼代碼如下: