Main Content

dvbsLDPCPCM

Generate parity-check matrix for DVB-S2 LDPC codes

Since R2024b

    Description

    H = dvbsLDPCPCM(r) returns a parity-check matrix, H, of the low-density parity-check (LDPC) code with code rate r from the Digital Video Broadcasting Satellite Second Generation (DVB-S2) standard.

    example

    H = dvbsLDPCPCM(r,frameType) specifies the DVB-S2 frame type.

    H = dvbsLDPCPCM(r,frameType,outputFormat) specifies the format for the output parity-check matrix.

    Examples

    collapse all

    Create a parity-check matrix for a 2/3 code rate DVB-S2 LDPC code.

    pcmatrix = dvbsLDPCPCM("2/3");

    Configure the Communications Toolbox™ LDPC encoder using the parity-check matrix.

    cfgLDPCEnc = ldpcEncoderConfig(pcmatrix);

    Generate random information bits as a binary column vector, where the number of bits matches the number of information bits for the encoder configuration.

    infoBits = rand(cfgLDPCEnc.NumInformationBits,1) < 0.5;

    Produce the codeword by encoding the information bits using the LDPC encoder configuration.

    codeword = ldpcEncode(infoBits,cfgLDPCEnc);

    Input Arguments

    collapse all

    DVB-S2 LDPC code rate, specified as "1/4", "1/3", "2/5", "1/2", "3/5", "2/3", "3/4", "4/5", "5/6", "8/9", or "9/10".

    Note

    When you specify frameType as "short", you cannot specify a code rate of "9/10".

    Data Types: char | string

    DVB-S2 frame type, specified as one of these two values.

    • "normal" — Sets the LDPC code block length to 64,800 bits.

    • "short" — Sets the LDPC code block length to 16,200 bits.

    Data Types: char | string

    Output format for parity-check matrix H, specified as one of these two values.

    • "sparse" — The function returns H as a sparse logical matrix.

    • "indices" — The function returns H as a two-column, double-precision matrix that defines the row and column indices of the 1s in H.

    Data Types: char | string

    Output Arguments

    collapse all

    Parity-check matrix, returned as a matrix.

    The default parity-check matrix of size 32,400-by-64,800 corresponds to an irregular LDPC code with the structure shown in this table.

    RowNumber of 1s per Row
    16
    2 to 32,4007
    ColumnNumber of 1s per Column
    1 to 12,9608
    12,961–32,4003

    Columns from 32,401 to 64,800 form a lower triangular matrix. Only the elements on the main diagonal of the matrix and the subdiagonal immediately below the main diagonal are 1s. This LDPC code is used in conjunction with a BCH code in the DVB-S2 standard to achieve a packet error rate below 10–7 at about 0.7 dB to 1 dB from the Shannon limit.

    References

    [1] ETSI Standard EN 302 307-1 V1.4.1 (2014-11). Digital Video Broadcasting (DVB); Second Generation Framing Structure, Channel Coding and Modulation Systems for Broadcasting, Interactive Services, News Gathering and other Broadband Satellite Applications (DVB-S2).

    Extended Capabilities

    Version History

    Introduced in R2024b