DVB-S2中的LDPC

DVB-S2 LDPC校验矩阵生成方法

DVB-S2中的LDPC

H=[H1 H2]H=[H_1\ H_2]

参数说明:

F_NUM:H1H_1矩阵中第一种列重每列中的1;

S_NUM:H1H_1矩阵中第二种列重每列中的1;;

F_ADDR:H1H_1矩阵中第一种列重每360列一组中每行的1;

S_ADDR:H1H_1矩阵中第一种列重每360列一组中每行的1;

H1TH_1^{T}是一个稀疏矩阵,标准中有H1TH_1^{T}矩阵中1的详细位置

H2H_2是一个满秩的下三角矩阵,即一个简单的累加器

HH矩阵的存储方法:

  1. 每360列存为1组,存储其中第一列的1的位置;

DVB-S2中的LDPC

  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编码方法

  1. BCH码的编码输出dd乘以稀疏矩阵H1TH_1^{T},得到中间结果pp完成信息位的重复编码dH1T=pd\cdot H_1^{T}=p

  2. 通过置换矩阵Π\Pi置换完成校验位的贡献

  3. 对中间结果进行微分编码得到奇偶校验位p=pH2Tp=p'H_2^{-T}

  4. c=[d p]c=[d\ p]

DVB-S2中的LDPC

该设计时钟频率达到了114MHz,

[编码硬件设计参考文献]:基于FPGA的DVB-S2通用LDPC编码器设计与实现

DVB-S2中的LDPC
DVB-S2中的LDPC

[参考文献]基于DVB_S2协议的LDPC码编译码电路设计与实现_刘盟.caj "11-12页"

LDPC译码算法

对数域BP算法

  1. 初始化变量节点
  2. 更新校验节点
  3. 更新变量节点
  4. 硬判决

缺点:在设计硬件电路时,有tanh(x)tanh(x)tanh1(x)tanh^{-1}(x)函数,译码过程中只能查表,所以复杂度高。

改进——>最小和算法(MS)、归一化最小和算法(NMS)、偏移量最小和算法(OMS)

改进牺牲了一定的译码性能(误码率提高),但是降低了译码复杂度。