Main Content

DVB-S2X Super-Frame Generation for Formats 2 and 3

This example shows how to generate a Super-Frame (SF) complex baseband waveform for formats 2 and 3. The SF waveform consists of several fields that are inserted in the SF structure, such as start of super-frame (SOSF), super-frame format indicator (SFFI), complex forward error correction frames (XFECFRAMEs), SF-aligned pilots and modulated pilot symbols (P2), and the physical layer header (PLH).

Introduction

The super-framing structure provides better support for synchronization algorithms using several SF-specific fields, such as SOSF, SFFI, and SF-aligned pilots, to enhance the receiver performance. The structure for formats 2 and 3 is of a fixed-length of 612,540 symbols and hosts bundled physical layer frames of length 64,800 and 16,200 symbols, respectively.

  • The first field in the SF is the SOSF, which is of length 270 symbols.

  • The second field is the SFFI, which is of length 450 symbols.

  • The remaining portion of the SF is allocated to the bundled PLFRAMEs, PLHs, P2 fields, and SF-aligned pilots.

The SF symbols are scrambled using a SF-wide scrambling technique, where two scramblers are used. The reference scrambler is used to scramble the SOSF and the SF-aligned pilots. The payload scrambler is used to scramble the SFFI field, PLH fields, P2 fields, dummy symbols, and bundled PLFRAMEs.

These figures show the SF structure:

  • Format 2

  • Format 3

SOSF, SFFI, SF-aligned Pilots, PLH, and P2

The SOSF field is of length 270 symbols, and is a sequence derived from a Walsh-Hadamard matrix of size 256, padded with a sequence of length 14 symbols. Any one of the 256 sequences can be used as the SOSF sequence for the SF. The SOSF sequence is mapped onto the constellation by multiplying the selected sequence by (1+j)/2.

The SFFI field is of length 450 symbols. The format can be either 2 or 3. These operations generate the SFFI field:

  1. Converting the numeric format value to a 4-bit representation

  2. Performing simplex coding as described in Annexure E.2.3 [1], to achieve the required code rate of 4/15

  3. Bit-wise repetition of the encoded bits by a factor for 30 to obtain Xsffi

  4. Constellation mapping using the equation (-2*Xsffi+1)(1+j)/2

For format 2, the pilot field (P) length is 36 symbols and is derived from a Walsh-Hadamard matrix of size 32, padded with a sequence of 4 symbols. For format 3, P is of length 48 symbols and is a sequence derived from a Walsh-Hadamard matrix of size 32 padded with a sequence of length 16 symbols. Any one of the 32 sequences can be used as the pilot sequence for the SF. The pilot sequence is mapped onto the constellation by multiplying the selected sequence with (1+j)/2.

The PLH has the physical layer signalling (PLS) information of the corresponding bundled PL-frame. The PLH is generated by repeating the 64-bit PLS information, as defined in 5.5.2.4 [2]. To generate the PLH, use a repetition factor of 6 for format 2 and a repetition factor of 4 for format 3. The bits are modulated using π2-BPSK.

Modulate P2 using the same modulation scheme used by the XFECFRAMEs in the bundle. The generation of P2 for format 2 is described in Annexure E.3.4.3 [1], and Annexure E.3.5.3 [1] for format 3.

Download DVB-S2X LDPC Parity Matrices Data Set

This example loads a MAT-file with DVB-S2X LDPC parity matrices. If the MAT-file is not available on the MATLAB® path, use these commands to download and unzip the MAT-file.

if ~exist('dvbs2xLDPCParityMatrices.mat','file')
    if ~exist('s2xLDPCParityMatrices.zip','file')
        url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip';
        websave('s2xLDPCParityMatrices.zip',url);
        unzip('s2xLDPCParityMatrices.zip');
    end
    addpath('s2xLDPCParityMatrices');
end

SOSF, SFFI, Pulse-Shaping and Scrambling Properties of SF

Generate the SF using the HelperSuperFrameGenerator2And3 object and set its parameters.

  • SF Format Set to 2 or 3.

  • SOSFIndex Select the appropriate Walsh-Hadamard sequence from the range [0, 255] to use as the SOSF.

  • Pulse-Shaping Parameters These include SamplesPerSymbol, RolloffFactor, and FilterSpanInSymbols.

  • ScramblingCodeNumbers Select the Nth gold code for generating the scrambling sequence for the reference and the payload scramblers. This property accepts a row vector of length two, [Nref Npayload]. The value of N is in the range [0, 148,574].

sfWaveGen = HelperSuperFrameGenerator2And3;
sfWaveGen.Format = 2;
sfWaveGen.SOSFIndex = 0;
sfWaveGen.ScramblingCodeNumbers = [14 26];
sfWaveGen.RolloffFactor = 0.05;
sfWaveGen.FilterSpanInSymbols = 10;
sfWaveGen.SamplesPerSymbol = 4;

SF-aligned Pilots property

The following property determines the pilot sequence to be used. Select an appropriate Walsh-Hadamard sequence from the range [0, 31] to use as the pilot sequence.

sfWaveGen.PilotIndex = 0;            

XFECFRAMEs properties

The following properties are used to generate the XFECFRAMEs that constitute a bundle:

  • StreamFormat Set as either "TS" or "GS", corresponding to transport stream and generic stream respectively.

  • PLSDecimalCode Physical layer signalling, specified as a decimal value.

  • DFL Data field length.

sfWaveGen.StreamFormat = "TS";                
sfWaveGen.PLSDecimalCodeValue = 33;               
sfWaveGen.DFL = 2992;             

If StreamFormat is "GS", you must set the user packet length (UPL). UPL can either be 0 or less than the data field length (DFL) value.

if strcmp(sfWaveGen.StreamFormat,"GS")
    sfWaveGen.UPL = 0;                       
end
disp(sfWaveGen)
  HelperSuperFrameGenerator2And3 with properties:

                   Format: 2
                SOSFIndex: 0
               PilotIndex: 0
    ScramblingCodeNumbers: [14 26]
            RolloffFactor: 0.0500
      FilterSpanInSymbols: 10
         SamplesPerSymbol: 4

  Show all properties

Set the number of bundles to be generated and inserted into the SF.

numBundlesToGenerate = 9;

Obtain characteristic information regarding the construction of the SF and the individual XFECFRAMEs. The fields are as follows.

  1. FECFrame Forward error correction (FEC) frame format, specified as "normal", "medium", or "short".

  2. ModulationScheme Modulation scheme used to map DVB-S2/S2X frames to the constellation.

  3. LDPCCodeIdentifier Output code rate of the low density parity code (LDPC) encoder.

superFrameInfo = sfWaveGen.info
superFrameInfo = struct with fields:
              FECFrame: "short"
      ModulationScheme: "QPSK"
    LDPCCodeIdentifier: "1/4"

Initialize random number generator with seed. Vary the seed to obtain different input data. The value used here, 73, is arbitrary.

seed = 73;
rng(seed);

Create an iterative loop to generate the SF output.

superFrameOut = [];
for numBundles = 1:numBundlesToGenerate
    % Generate data using the generateInputData method
    data = sfWaveGen.generateInputData;
    sfOutputFiltered = sfWaveGen(data);
    superFrameOut = [superFrameOut; sfOutputFiltered]; %#ok<AGROW> 
end
Super-Frame Number 1 is being generated.
Super-Frame Number 1 is complete.

Visualization

Plot the signal power spectral density at the baseband. Set the channel bandwidth to get an appropriate plot.

chanBW = 36e6;  % Channel Bandwidth
Rsymb = chanBW/(1 + sfWaveGen.RolloffFactor);
Fsamp = Rsymb*sfWaveGen.SamplesPerSymbol;
bbscope = dsp.SpectrumAnalyzer('SampleRate',Fsamp, ...
    'PlotAsTwoSidedSpectrum',true, ...
    'SpectrumType','Power density', ...
    'AveragingMethod','Exponential', ...        
    'Title', 'Power Spectral Density of Complex Baseband DVB-S2X SF Waveform');
bbscope(superFrameOut);

Further Exploration

The example shows how to generate the SF output for formats 2 and 3. Explore these options to generate unique waveforms.

  • Vary the number of bundles. You can also try to change the PLSDecimalCodeValue of each bundle, and then generate the SF.

  • Adjust the ScramblingCodeNumbers to get SFs scrambled with different scrambling sequences. You can perform cross-correlation on the scrambling sequences in the SF output.

  • Select different SOSF and pilot sequences by varying their respective property values.

Appendix

The example uses the helper function:

Bibliography

  1. ETSI Standard EN 302 307-2 V1.3.1(2021-07). Digital Video Broadcasting (DVB); Second Generation Framing Structure, Channel Coding and Modulation Systems for Broadcasting, Interactive Services, News Gathering and other Broadband Satellite Applications; Part 2: DVB-S2 extensions (DVB-S2X).

  2. 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).

  3. ETSI Standard TR 102 376-2 V1.3.1(2015-11). Digital Video Broadcasting (DVB); Implementation Guidelines for the Second Generation System for Broadcasting, Interactive Services, News Gathering and other Broadband Satellite Applications; Part 2: S2 extensions (DVB-S2X).

  4. ETSI Standard TR 102 376-1 V1.2.1(2015-11). Digital Video Broadcasting (DVB); Implementation Guidelines for the Second Generation System for Broadcasting, Interactive Services, News Gathering and other Broadband Satellite Applications (DVB-S2).

See Also

Objects

Related Topics