Main Content

dvbrcs2RecoveryConfig

Receiver configuration parameters for DVB-RCS2

    Description

    The dvbrcs2RecoveryConfig object creates a Digital Video Broadcasting Second Generation Return Channel over Satellite (DVB-RCS2) recovery configuration object. Recover the frame protocol data unit (PDU) from the received DVB-RCS2 waveform by using object properties.

    Creation

    Description

    example

    cfgrcs2 = dvbrcs2RecoveryConfig creates a default DVB-RCS2 recovery configuration object.

    example

    cfgrcs2 = dvbrcs2RecoveryConfig(Name,Value) sets Properties using one or more name-value pairs. Enclose each property name in quotes. For example, dvbrcs2RecoveryConfig('IsCustomWaveform',true) recovers a custom DVB-RCS2 waveform with the specified property values.

    Properties

    expand all

    Transmission format, specified as one of these values.

    • "TC-LM" — Turbo codes with linear modulation (TC-LM)

    • "SS-TC-LM" — Spread spectrum turbo codes with linear modulation (SS-TC-LM)

    Data Types: char | string

    Frame protocol data unit (PDU) burst content type, specified as "traffic", "logon", or "control".

    Data Types: char | string

    Custom waveform indicator, specified as one of these values.

    • 0 (false) — Use this option to demodulate the complex in-phase quadrature (IQ) samples from a standard-defined reference waveform.

    • 1 (true) — Use this option to demodulate the complex IQ samples from a custom waveform.

    Data Types: logical

    Reference waveform ID, specified as one of these options.

    • Integer in the range [1, 22] or [32, 49] — Use this option when you set the TransmissionFormat property to "TC-LM".

    • Integer in the range [1, 19] — Use this option when you set the TransmissionFormat property to "SS-TC-LM".

    Based on the values set for TransmissionFormat and WaveformID properties, this object considers the receiver parameters according to ETSI EN 301 545-2 Annex A Table A-1 and A-2 [1].

    Dependencies

    To enable this property, set the IsCustomWaveform property to false.

    Data Types: double | unit8

    Spreading factor, specified as an integer in the range [2, 16].

    Dependencies

    To enable this property, set the TransmissionFormat property to "SS-TC-LM" and the IsCustomWaveform property to true.

    Data Types: double

    Burst length, specified as an integer in the range [7, 25,233,405]. This length includes the preamble, postamble, and pilot sum, in addition to the payload symbols.

    When you set the TransmissionFormat property to "TC-LM", the unit of burst length is symbols. When you set the TransmissionFormat property to "SS-TC-LM", the unit of burst length is chips.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: double

    Mapping scheme, specified as one of these values.

    • "pi/2-BPSK"

    • "QPSK"

    • "8PSK"

    • "16QAM"

    Dependencies

    To enable this property, set the TransmissionFormat property to "TC-LM" and the IsCustomWaveform property to true.

    Note

    When you set the TransmissionFormat property to "SS-TC-LM", the only valid value of MappingScheme is "pi/2-BPSK".

    Data Types: char | string

    Code rate, specified as one of these values.

    • "2/3", "3/4", "4/5", "5/6", "6/7", or "7/8" — Use one of these values when you set the MappingScheme property to "8PSK".

    • "3/4", "4/5", "5/6", "6/7", or "7/8" — Use one of these values when you set the MappingScheme property to "16QAM".

    All code rates are applicable if MappingScheme property is set to "pi/2-BPSK" or "QPSK".

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: char | string

    Permutation control parameters that the dvbrcs2RecoveryConfig uses to generate turbo encoder interleaver indices, specified as a five-element vector in order: P, Q0, Q1, Q2, and Q3. P must be in the range [9, 255], and Q0, Q1, Q2, and Q3 must be in the range [0, 15].

    To generate unique interleaver indices, the value of P must be co-prime to PayloadLengthInBytes*4.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: double

    Preamble length, specified as an integer in the range [0, 255].

    When you set the TransmissionFormat property to "TC-LM", the unit of preamble length is symbols. When you set the TransmissionFormat property to "SS-TC-LM", the unit of preamble length is chips.

    A preamble of this specified length is prefixed to the payload symbols.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: double

    Postamble length, specified as an integer in the range [0, 255].

    When you set the TransmissionFormat property to "TC-LM", the unit of postamble length is symbols. When you set the TransmissionFormat property to "SS-TC-LM", the unit of postamble length is chips.

    A postamble of this specified length is suffixed to the payload symbols in the burst sequence.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: double

    Pilot period, specified as an integer in the range [0, 4095]. A value of 0 indicates no pilots are inserted.

    When you set the TransmissionFormat property to "TC-LM", the unit of pilot period is symbols. When you set the TransmissionFormat property to "SS-TC-LM", the unit of pilot period is chips.

    The pilot period represents the length of the sequence from first symbol of a pilot block to the first symbol of the next pilot block in symbols or chips.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true.

    Data Types: double

    Pilot block length, specified as an integer in the range [1, 255].

    After every PilotPeriod symbols or chips, a pilot block of this specified length is detected, which must be removed to recover the payload symbols.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true and PilotPeriod property to a positive integer.

    Data Types: double

    Total pilot symbols or chips in the received waveform, specified as one of these options.

    • Integer in the range [0, 255] — Use this option when you set the TransmissionFormat property to "TC-LM".

    • Integer in the range [0, 65,535] — Use this option when you set the TransmissionFormat property to "SS-TC-LM".

    When you set the TransmissionFormat property to "TC-LM", the unit of pilot sum is symbols. When you set the TransmissionFormat property to "SS-TC-LM", the unit of pilot sum is chips.

    Dependencies

    To enable this property, set the IsCustomWaveform property to true and PilotPeriod property to a positive integer.

    Data Types: double

    Scrambling polynomial, specified as one of these options.

    • 16-bit vector of binary values from the most significant bit (MSB), z16, to least significant bit (LSB), z1. Each element of this vector corresponds to the coefficient of z and its exponent, specified from MSB to LSB. For details on the binary representation, see ETSI EN 301 545-2 Section 7.3.7.1.5.

    • Numeric vector containing the exponents of z for nonzero terms of the polynomial in descending order.

    The scrambling polynomial determines the shift register feedback connection to generate the spreading sequence.

    The coefficient of z0 is always 1.

    The default value of this scrambling polynomial indicates the default scrambling sequence provided in the standard. When you set the TransmissionFormat property to "SS-TC-LM" and the IsCustomWaveform property to false, the default scrambling sequence is used to descramble the received reference waveform.

    Dependencies

    To enable this property, set the TransmissionFormat property to "SS-TC-LM" and the IsCustomWaveform property to true.

    Data Types: double | logical

    Scrambling initial conditions of the shift register, specified as one of these options.

    • 1 — Use this option to set the initial condition of each cell of the shift register to this value.

    • 16-bit vector of binary values from the MSB (z16) to LSB (z1) — Use this option to set the initial condition of each cell of the shift register to the corresponding element in this vector.

    Dependencies

    To enable this property, set the TransmissionFormat property to "SS-TC-LM" and the ScramblingPolynomial property to a value other than the default value.

    Data Types: double | logical

    Number of decoding iterations of the DVB-RCS2 turbo decoder, specified as a positive integer.

    Data Types: double

    This property is read-only.

    Payload length in bytes, retuned as a positive integer. This length represents the DVB-RCS2 turbo decoder output length.

    Use this property output to choose a valid value for the first element of PermutationParameters property (that is, P).

    PayloadLengthInBytes*4 and P must be co-primes.

    Data Types: double

    Object Functions

    expand all

    dvbrcs2BitRecoverRecover bits for DVB-RCS2 waveform

    Examples

    collapse all

    Create a DVB-RCS2 recovery configuration object.

    Create and then set the properties of the object.

    cfgrcs2 = dvbrcs2RecoveryConfig;
    cfgrcs2.TransmissionFormat = "SS-TC-LM";
    cfgrcs2.ContentType = "control";
    cfgrcs2.WaveformID = 20;
    cfgrcs2.NumDecodingIterations = 6;

    Display the properties of the DVB-RCS2 object.

    disp(cfgrcs2)
      dvbrcs2RecoveryConfig with properties:
    
           TransmissionFormat: "SS-TC-LM"
                  ContentType: "control"
             IsCustomWaveform: 0
                   WaveformID: 20
    
       Coding and Modulation:
        NumDecodingIterations: 6
    
       Unique Word:
        No properties.
    
       Read-only:
        No properties.
    

    Recover the frame PDU for a DVB-RCS2 reference waveform.

    Set the properties of a DVB-RCS2 waveform generator System object™.

    wg = dvbrcs2WaveformGenerator;
    wg.TransmissionFormat = "SS-TC-LM";
    wg.WaveformID = 7;
    wg.SamplesPerSymbol = 2;

    Generate a frame PDU.

    framePDU = randi([0 1],wg.FramePDULength,1);

    Generate the DVB-RCS2-based burst symbols.

    txWaveform = wg(framePDU);

    Add additive white Gaussian noise (AWGN) to the generated waveform.

    sps = wg.SamplesPerSymbol; 
    EsNodB = 1;
    snrdB = EsNodB - 10*log10(sps);
    rxIn = awgn(txWaveform,snrdB,"measured");

    Create and then configure the DVB-RCS2 recovery configuration object.

    cfg = dvbrcs2RecoveryConfig;
    cfg.TransmissionFormat = wg.TransmissionFormat;
    cfg.WaveformID = wg.WaveformID;

    Create a raised cosine receiver filter.

    rxFilter = comm.RaisedCosineReceiveFilter( ...
                     'RolloffFactor',0.2, ...
                     'InputSamplesPerSymbol',sps, ...
                     'DecimationFactor',sps);
    span = rxFilter.FilterSpanInSymbols;

    Apply matched filtering and remove the filter delay.

    filtOut = rxFilter([rxIn; ...
                   complex(zeros(span/2*sps,1))]);
    rxSymb = filtOut(span+1:end);

    Recover user packets. Display the frame PDU cyclic redundancy check (CRC) status and the numbers of bit errors.

    [rxOut,pduErr] = dvbrcs2BitRecover(rxSymb,cfg,10^(-EsNodB/10));
    fprintf("Erroneous frame PDU = %d\n", pduErr)
    Erroneous frame PDU = 0
    
    fprintf("Number of bit errors = %d\n", sum(framePDU~=rxOut))
    Number of bit errors = 0
    

    References

    [1] ETSI Standard EN 301 545-2 V1.2.1(2014-11). Digital Video Broadcasting (DVB); Second Generation Interactive Satellite Systems (DVB-RCS2); Part 2: Lower Layers for Satellite Standard.

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Introduced in R2021b