卷积码 BCJR 译码算法(五)--代码讲解以及总结
(录制的视频在:https://www.bilibili.com/video/BV1cM41187Ub/)
我们假如要计算如下这个概率
注意上面公式中每个 其实是接收到的两个数据,分别对应
通过信道发送后得到的数据(这里要稍微注意一下,我们用 BPSK,则 0--> -1, 1---->1 , 发送的是 -1 或者 +1).
输入 为 比特 1, 对应的状态转移有如下几种情况:
所以:
那么公式 (4) 中任何一个求和都可以按照下面这个例子来展开,我们以 为例:

Python 代码:
编码前的数据为: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]
编码的状态转移:
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)]
如果根据 r 直接译码,则
[1,1,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0]
第三个(从1开始算)比特是译码错了。
