DVB-S2中的LDPC
DVB-S2 LDPC校验矩阵生成方法
参数说明:
F_NUM:矩阵中第一种列重每列中的1;
S_NUM:矩阵中第二种列重每列中的1;;
F_ADDR:矩阵中第一种列重每360列一组中每行的1;
S_ADDR:矩阵中第一种列重每360列一组中每行的1;
是一个稀疏矩阵,标准中有矩阵中1的详细位置
是一个满秩的下三角矩阵,即一个简单的累加器
矩阵的存储方法:
- 每360列存为1组,存储其中第一列的1的位置;
-
恢复时,取出存储矩阵的一行,恢复第一列,然后根据移位Q恢复一组
(该方法与MATLAB中dvbs2ldpc的存储方式一致)
DVBS2标准中 长码 R=5/6的存储矩阵:
H1 = [0 4362 416 8909 4156 3216 3112 2560 2912 6405 8593 4969 6723
1 2479 1786 8978 3011 4339 9313 6397 2957 7288 5484 6031 10217
2 10175 9009 9889 3091 4985 7267 4092 8874 5671 2777 2189 8716
3 9052 4795 3924 3370 10058 1128 9996 10165 9360 4297 434 5138
4 2379 7834 4835 2327 9843 804 329 8353 7167 3070 1528 7311
5 3435 7871 348 3693 1876 6585 10340 7144 5870 2084 4052 2780
6 3917 3111 3476 1304 10331 5939 5199 1611 1991 699 8316 9960
7 6883 3237 1717 10752 7891 9764 4745 3888 10009 4176 4614 1567
8 10587 2195 1689 2968 5420 2580 2883 6496 111 6023 1024 4449
9 3786 8593 2074 3321 5057 1450 3840 5444 6572 3094 9892 1512
10 8548 1848 10372 4585 7313 6536 6379 1766 9462 2456 5606 9975
11 8204 10593 7935 3636 3882 394 5968 8561 2395 7289 9267 9978
12 7795 74 1633 9542 6867 7352 6417 7568 10623 725 2531 9115
13 7151 2482 4260 5003 10105 7419 9203 6691 8798 2092 8263 3755
14 3600 570 4527 200 9718 6771 1995 8902 5446 768 1103 6520];
H2 = [15 6304 7621
16 6498 9209
17 7293 6786
18 5950 1708
19 8521 1793
20 6174 7854
21 9773 1190
22 9517 10268
23 2181 9349
24 1949 5560
25 1556 555
26 8600 3827
27 5072 1057
28 7928 3542
29 3226 3762
0 7045 2420
1 9645 2641
2 2774 2452
3 5331 2031
4 9400 7503
5 1850 2338
6 10456 9774
7 1692 9276
8 10037 4038
9 3964 338
10 2640 5087
11 858 3473
12 5582 5683
13 9523 916
14 4107 1559
15 4506 3491
16 8191 4182
17 10192 6157
18 5668 3305
19 3449 1540
20 4766 2697
21 4069 6675
22 1117 1016
23 5619 3085
24 8483 8400
25 8255 394
26 6338 5042
27 6174 5119
28 7203 1989
29 1781 5174
0 1464 3559
1 3376 4214
2 7238 67
3 10595 8831
4 1221 6513
5 5300 4652
6 1429 9749
7 7878 5131
8 4435 10284
9 6331 5507
10 6662 4941
11 9614 10238
12 8400 8025
13 9156 5630
14 7067 8878
15 9027 3415
16 1690 3866
17 2854 8469
18 6206 630
19 363 5453
20 4125 7008
21 1612 6702
22 9069 9226
23 5767 4060
24 3743 9237
25 7018 5572
26 8892 4536
27 853 6064
28 8069 5893
29 2051 2885
0 10691 3153
1 3602 4055
2 328 1717
3 2219 9299
4 1939 7898
5 617 206
6 8544 1374
7 10676 3240
8 6672 9489
9 3170 7457
10 7868 5731
11 6121 10732
12 4843 9132
13 580 9591
14 6267 9290
15 3009 2268
16 195 2419
17 8016 1557
18 1516 9195
19 8062 9064
20 2095 8968
21 753 7326
22 6291 3833
23 2614 7844
24 2303 646
25 2075 611
26 4687 362
27 8684 9940
28 4830 2065
29 7038 1363
0 1769 7837
1 3801 1689
2 10070 2359
3 3667 9918
4 1914 6920
5 4244 5669
6 10245 7821
7 7648 3944
8 3310 5488
9 6346 9666
10 7088 6122
11 1291 7827
12 10592 8945
13 3609 7120
14 9168 9112
15 6203 8052
16 3330 2895
17 4264 10563
18 10556 6496
19 8807 7645
20 1999 4530
21 9202 6818
22 3403 1734
23 2106 9023
24 6881 3883
25 3895 2171
26 4062 6424
27 3755 9536
28 4683 2131
29 7347 8027];
DVB-S2 LDPC编码方法
-
BCH码的编码输出乘以稀疏矩阵,得到中间结果完成信息位的重复编码
-
通过置换矩阵置换完成校验位的贡献
-
对中间结果进行微分编码得到奇偶校验位
-
该设计时钟频率达到了114MHz,
[编码硬件设计参考文献]:基于FPGA的DVB-S2通用LDPC编码器设计与实现
[参考文献]基于DVB_S2协议的LDPC码编译码电路设计与实现_刘盟.caj "11-12页"
LDPC译码算法
对数域BP算法
- 初始化变量节点
- 更新校验节点
- 更新变量节点
- 硬判决
缺点:在设计硬件电路时,有和函数,译码过程中只能查表,所以复杂度高。
改进——>最小和算法(MS)、归一化最小和算法(NMS)、偏移量最小和算法(OMS)
改进牺牲了一定的译码性能(误码率提高),但是降低了译码复杂度。