欢迎光临散文网 会员登陆 & 注册

卷积码 BCJR 译码算法(五)--代码讲解以及总结

2023-01-16 22:37 作者:乐吧的数学  | 我要投稿

(录制的视频在:https://www.bilibili.com/video/BV1cM41187Ub/)

我们假如要计算如下这个概率

P(X_6%3D1%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)

注意上面公式中每个 r_i  其实是接收到的两个数据,分别对应 v_t%5E%7B(0)%7D%2C%20v_t%5E%7B(1)%7D 通过信道发送后得到的数据(这里要稍微注意一下,我们用 BPSK,则 0--> -1,  1---->1 , 发送的是 -1 或者 +1).


输入 为 比特 1, 对应的状态转移有如下几种情况:


%5Cpsi_6%3D0%20%5Cquad%20%5Cquad%20%20----%3E%20%20%5Cpsi_7%3D2%20%5C%5C%0A%0A%5Cpsi_6%3D1%20%5Cquad%20%5Cquad%20%20----%3E%20%20%5Cpsi_7%3D0%20%5C%5C%0A%0A%5Cpsi_6%3D2%20%5Cquad%20%5Cquad%20%20----%3E%20%20%5Cpsi_7%3D3%20%5C%5C%0A%0A%5Cpsi_6%3D3%20%5Cquad%20%5Cquad%20%20----%3E%20%20%5Cpsi_7%3D1%20%5C%5C



所以:

%5Cbegin%7Baligned%7D%0A%0AP(X_6%3D1%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%20%3D%20%26%20P(%5Cpsi_6%3D0%2C%5Cpsi_7%3D2%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%2B%20%20%5C%5C%0A%0A%20%20%26%20P(%5Cpsi_6%3D1%2C%5Cpsi_7%3D0%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%2B%20%20%5C%5C%0A%0A%20%20%26%20P(%5Cpsi_6%3D2%2C%5Cpsi_7%3D3%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%2B%20%20%5C%5C%0A%0A%20%20%26%20P(%5Cpsi_6%3D3%2C%5Cpsi_7%3D1%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%20%0A%0A%20%20%5Cquad%20%20----%20%5Cquad%20(4)%0A%0A%5Cend%7Baligned%7D


那么公式 (4) 中任何一个求和都可以按照下面这个例子来展开,我们以 P(%5Cpsi_6%3D2%2C%5Cpsi_7%3D3%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9) 为例:



%5Cbegin%7Baligned%7D%0A%0AP(%5Cpsi_6%3D2%2C%5Cpsi_7%3D3%7Cr_0%2Cr_1%2C%5Ccdots%2Cr_9)%20%26%3D%20p(%20%5Cpsi_6%3D2%20%2C%20r_%7B%3C6%7D)%20p(%5Cpsi_7%3D3%2C%20r_6%20%7C%20%20%5Cpsi_6%3D2)%20%20p(r_%7B%3E6%7D%20%7C%20%5Cpsi_7%3D3%20)%20%5C%5C%0A%0A%26%3Dp(%20%5Cpsi_6%3D2%20%2C%20r_0%2Cr_1%2C%5Ccdots%2Cr_5)%20p(%5Cpsi_7%3D3%2C%20r_6%20%7C%20%20%5Cpsi_6%3D2)%20%20p(r_7%2C%5Ccdots%2Cr_9%20%7C%20%5Cpsi_7%3D3%20)%20%5C%5C%0A%0A%26%3D%20%5Calpha_6(2)%20%20%5Cgamma_6(2%2C3)%20%20%5Cbeta_7(3)%0A%0A%5Cend%7Baligned%7D










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]


编码的状态转移:%5Cpsi%20%3D%5B0%2C2%2C3%2C3%2C3%2C1%2C2%2C3%2C3%2C1%2C0%5D


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开始算)比特是译码错了。





卷积码 BCJR 译码算法(五)--代码讲解以及总结的评论 (共 条)

分享到微博请遵守国家法律