【LDPC编码】CDR系统中LDPC编码,LDPC编码的码长为9216

1.软件版本

matlab2013b

2.系统描述

       在广播通信系统中,消息发送的速度和性能是一对矛盾,当发送速度快,则必然会降低消息的可靠性,当要求系统的性能,则必然会降低发送码率。为了提高系统的性能,并尽可能的提高系统的传输码率。需要使用信源编码和信道编码,其中信源编码,其主要目的就是使用尽可能少的符号来传递信息,从而提高传输效率。信道编码的主要原理就是在待发送的二进制序列上加入监督码元,通过这些监督码元,可以使得发送的二进制序列之间产生相关性,因此信道编码是通过增加发送数据的冗余度来提高系统的性能。差错控制译码则利用这些规律性来鉴别传输过程是否发生错误,或进而纠正错误[05,06]。本章将主要介绍一种基于中国数字音频广播(CDR)系统的QC-LDPC编码实现方法,并通过MATLAB对其进行性能的仿真分析。

    CDR系统,其主要通过数字编码调制技术实现数字音频广播业务和数据业务的播出。CDR系统中规定了87MHz~108MHz频率范围内数字广播系统信息的各种技术指标,包括帧结构、信道编码以及调制技术。CDR整个系统的基本结构如下图所示:

图1CDR数字音频广播系统结构图

        从图1的结构可知,CDR系统同时可以传输多路数字信号,包括数字音频及数据业务,各路业务等,并通过复用的方式进行发送,然后在系统的发送端,通过编码和调制将数字信号发送出去。因此,信道编码部分在整个系统中起到一个决定性的功能,信道编码的性能直接影响着整个CDR系统的性能。

    在CDR系统中,稀疏校验矩阵H为一个二进制稀疏矩阵。根据国家的相关规定可知,CDR标准通过表明该稀疏校验矩阵中每一行非元素的位置来描述,以LDPC(9216,4608) 为例,其校验矩阵H结构如下所示:

         [0]: 495 1190 1527 2847 3289 3656 4800 4864  

         [1]: 496 1191 1528 2848 3290 3657 4801 4865  

         [2]: 497 1192 1529 2849 3291 3658 4802 4866  

         [3]: 498 1193 1530 2850 3292 3659 4803 4867 

         .........

         .........

         [4605]: 506 1430 2027 2893 3417 3656 4653 9213  

         [4606]: 507 1431 2028 2894 3418 3657 4654 9214  

         [4607]: 508 1432 2029 2895 3419 3658 4655 9215  

    其含义为,[0]表示第一行中的495,1190等列的元素表示的是取值为1的非零元素,而其他没有标注的列所对应的元素则为零元素。同样道理,[4607]: 508 1432....表示的是第4608行的508,1432等列的元素表示的是取值为1的非零元素,而其余列为零元素。

     该校验矩阵的整体01布局图如下图所示:

图2基于CDR的1/2码率LDPC码的校验矩阵

       从图2的校验矩阵的01布局图可知,该矩阵具有明显的准双对角线的性质。因此采用传统的基于生成矩阵的编码方式得到的码字将导致其稀疏性大大降低,因此,本文才去基于基于近似下三角矩阵LDPC编码实现方法。

      根据基矩阵,构建相应的校验矩阵H,这里我们选择如下形式的基矩阵。

3.部分源码

clc;
clear all;
close all;
warning off;
addpath 'func\'

load HG12.mat;
 
[m,n]= size(H);
R    =(n-m)/n;
N    = size(G,1);
Wlvel= [2000];
SNR  = [-1:1:7];
for i1=1:length(SNR)
    i1
    err= 0;
    j1 = 0;
    while err<Wlvel
        err
        j1          = j1+1;
        Ti          = randi([0,1],1,N);
        Ti_ldpc     = mod(Ti*G,2);                           
        Ti_ldpcN    = awgn(2*Ti_ldpc-1,SNR(i1));
        Ydecode     = decodeLogDomainSimple(Ti_ldpcN',H,15);    
        Ri          = Ydecode(end-N+1:end);
        err         = err + length(find(Ri~=Ti));
    end
    Errall(i1)=err/N/j1;
end

figure;
semilogy(SNR,Errall,'b-o');
xlabel('SNR(dB)');
ylabel('BER');
grid on;


save R12.mat SNR Errall

4.仿真结论

    将SNR信噪比设置为0到10dB,分别对LDPC(9216,6912) ,LDPC(9216,4608)、LDPC(9216,3072)以及LDPC(9216,2304)进行误码率仿真,得到如下的误码率曲线。

5.参考文献

[01]MAHDI A, PALIOURAS V. Construction of irregular QC-LDPC codes via masking with ACE optimization[J]. IEEE communications letters,2014,18(2):348-351.A14-39

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/125303715