卷積碼 BCJR 譯碼算法(五)--代碼講解以及總結(jié)
(錄制的視頻在:https://www.bilibili.com/video/BV1cM41187Ub/)
我們假如要計(jì)算如下這個(gè)概率
注意上面公式中每個(gè) ? 其實(shí)是接收到的兩個(gè)數(shù)據(jù),分別對(duì)應(yīng)
?通過(guò)信道發(fā)送后得到的數(shù)據(jù)(這里要稍微注意一下,我們用 BPSK,則 0--> -1,? 1---->1 , 發(fā)送的是 -1 或者 +1).
輸入 為 比特 1, 對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移有如下幾種情況:
所以:
那么公式 (4) 中任何一個(gè)求和都可以按照下面這個(gè)例子來(lái)展開(kāi),我們以 ?為例:

Python 代碼:
編碼前的數(shù)據(jù)為:x=[1,1,0,0,1,0,1,0,1,1]
編碼后:v=[1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0]
編碼的狀態(tài)轉(zhuǎn)移:
r = [? (2.53008, 0.731636), (-0.523916, 1.93052), (-0.793262, 0.307327), (1.24029, 0.784426),(1.83461, -0.968171),??
(-0.433259, 1.26344),? ?(1.31717, 0.995695), ( -1.50301, 2.04413), (1.60015, -1.15293), (0.108878, -1.57889)]
如果根據(jù) r 直接譯碼,則
[1,1,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0]
第三個(gè)(從1開(kāi)始算)比特是譯碼錯(cuò)了。
