作者Justinok (Sin)
看板comm_and_RF
标题Re: [问题] LDPC MSA解码器实现问题
时间Thu Jan 31 10:05:23 2013
※ 引述《Justinok (Sin)》之铭言:
: 小弟最近在做LDPC中的最小和演算法(MSA),要计算错误率(BER),利用Richardson在2001
: 年所提出的类下三角LDPC论文中所
: 使用的权重(3, 6)范例矩阵去实现MSA解码,在BPSK环境底下,叠代次数1次~10次去测试
: 一千万点跑出来的Waterfall,结果都正
: 确。现在程式作法一样,我利用IEEE 802.11n中的矩阵(z 为27bits,code rate为5/6, n
: 等648bits的检查矩阵),我已经测试过单纯
: AWGN环境下的Waterfall是没有问题的,但开始做第一次叠代的时候会解码失败,目前,
: 解码步骤我分为:
: 第一步将LLR = (2*经过杂讯後的接收讯号在除上变异数平方)
: 第二步SIGN(PRODUCT(范围值))*MIN(ABS(范围值))
: 第三步将对应的初始LLR加上第二步算出的对应Bit node,就可以完成第一次叠代
: 现在叠代出的LLR会受到SNR大小影响,以SNR为0为基准时,跑出的点会跟AWGN一样,後来
: SNR越大错误率都会变很大,越
: 小时也会错误率误判,我检查发现,第三步中,原本正确值为正(负)的数字,会因为在第
: 二步计算出的负(正)号较多,所以在会
: 相加成错误值,我已经检查过以下几点:
: 1. 矩阵的正确度
: 2. 矩阵中1的位置
: 3. 第一次叠代中,每一个check node中的bit node是否摆错
: 4. LLR公式是否错误
: 5. 使用的程式是excel ,所以有些重复格式是直接复制贴上的,
: 所以也检查过是否因为格式错误
:
补上我解码步骤再请各位先进一起帮我厘清我的问题点:
传送 648 bits
1.原始讯息:0,1
2.经过二位元调变转1, -1
3.加上杂讯
4.利用经过杂讯後算出 648 个bits,计算
出LLR
我的MSA解码步骤:
第一步:利用公式将bit node代入相对应的LLR
第二步:例:利用Tanner graph把所有连接到检查节点C1
的所有Bit node找出来,假设我要求C1中的Bi值
Sign(除了Bi以外,所有连接到C1的Bit node)
乘上MIN(除了Bi以外,所有连接到C1的Bit node)
第三步:将在第二步所有求出的Bi与LLR对应的Bi做相加
完成第一次叠代
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.170.40.186
1F:→ Justinok:我後来发现,因为我是直接将IEEE的矩阵直 1.170.40.186 01/31 11:47
2F:→ Justinok:接使用,可能我在参考文献上没注意到,这 1.170.40.186 01/31 11:48
3F:→ Justinok:个矩阵还需要经过编码,利用编码的码字当 1.170.40.186 01/31 11:48
4F:→ Justinok:做我的DECODE的input 1.170.40.186 01/31 11:49
5F:→ Justinok:我还在编码中,感谢各位 1.170.40.186 01/31 11:52
6F:→ Justinok:不晓得这个编码矩阵是否还需要经过类下三 1.170.40.186 01/31 11:53
7F:→ Justinok:角转换才可以做编码呢? 1.170.40.186 01/31 11:53
8F:推 cmh317:啊?!你没经过编码?那整个codeword全是 61.62.6.229 02/01 00:17
9F:→ cmh317:乱数产生?难怪会全错 61.62.6.229 02/01 00:17
10F:→ cmh317:11n的矩阵有特殊设计,双对角线已方便编码 61.62.6.229 02/01 00:19
11F:→ Justinok:已经产生好码字了,也确认正确了 1.170.40.186 02/02 10:01
12F:→ Justinok:感谢各位先进 1.170.40.186 02/02 10:01