Main Content

Create Configuration or System Objects

Satellite Communications Toolbox configuration and System object™ initialize, store, and validate object properties. These properties correspond to parameters that define the standards-specific waveforms.

After you create the various objects described here, you can use them to generate waveforms. The functions in the toolbox initialize parameter settings for waveform transmission and reception by using the relevant object properties.

Create CCSDS TC Configuration Object

This example shows how to create a Consultative Committee for Space Data Systems (CCSDS) Telecommand (TC) configuration object. It also shows how to change the default property settings by using dot notation or by overriding the default settings by using Name,Value pairs when creating the object.

Create Object and Then Modify Properties

Create a CCSDS TC configuration object with default settings.

cfg = ccsdsTCConfig
cfg = 
  ccsdsTCConfig with properties:

             DataFormat: "CLTU"
          ChannelCoding: "BCH"
          HasRandomizer: 1
             Modulation: "PCM/PSK/PM"
              PCMFormat: "NRZ-L"
        ModulationIndex: 0.4000
    SubcarrierFrequency: 16000
             SymbolRate: 4000
       SamplesPerSymbol: 10

   Read-only properties:
     SubcarrierWaveform: "sine"

Modify the defaults to specify for BPSK modulation scheme.

cfg.Modulation = "BPSK"
cfg = 
  ccsdsTCConfig with properties:

       DataFormat: "CLTU"
    ChannelCoding: "BCH"
    HasRandomizer: 1
       Modulation: "BPSK"

   Read-only properties:
    No properties.

Override Default Property Values During Object Creation

Create a CCSDS TC configuration object, using Name,Value pairs to specify LDPC codes with codeword length of 512.

cfg = ccsdsTCConfig("ChannelCoding","LDPC","LDPCCodewordLength",512)
cfg = 
  ccsdsTCConfig with properties:

             DataFormat: "CLTU"
          ChannelCoding: "LDPC"
     LDPCCodewordLength: 512
             Modulation: "PCM/PSK/PM"
              PCMFormat: "NRZ-L"
        ModulationIndex: 0.4000
    SubcarrierFrequency: 16000
             SymbolRate: 4000
       SamplesPerSymbol: 10

   Read-only properties:
     SubcarrierWaveform: "sine"

Create CCSDS TM Object

This example shows how to create a Consultative Committee for Space Data Systems (CCSDS) Telemetry (TM) System object. It also shows how to change the default property settings by using dot notation or by overriding the default settings by using Name,Value pairs when creating the object.

The System object ccsdsTMWaveformGenerator supports these two CCSDS TM standards, depending on the type of input to WaveformSource property.

  • CCSDS TM synchronization and channel coding standard (CCSDS 131.0-B-3)

  • CCSDS flexible advanced coding and modulation scheme for high rate telemetry standard (CCSDS 131.2-B-1)

The default standard for this object is CCSDS TM synchronization and channel coding.

Create Object and Then Modify Properties

Create a CCSDS TM System object with default settings.

tmWaveGen = ccsdsTMWaveformGenerator
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

          WaveformSource: "synchronization and channel coding"
           HasRandomizer: true
                  HasASM: true
               PCMFormat: "NRZ-L"

   Channel coding
           ChannelCoding: "RS"
         RSMessageLength: 223
     RSInterleavingDepth: 1
    IsRSMessageShortened: false

   Digital modulation and filter
              Modulation: "QPSK"
      PulseShapingFilter: "root raised cosine"
           RolloffFactor: 0.3500
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 10

  Show all properties

Modify the defaults to specify for turbo codes and QPSK modulation.

tmWaveGen.ChannelCoding = "turbo";
tmWaveGen.Modulation = "QPSK"
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

               WaveformSource: "synchronization and channel coding"
                HasRandomizer: true
                       HasASM: true
                    PCMFormat: "NRZ-L"

   Channel coding
                ChannelCoding: "turbo"
    NumBitsInInformationBlock: 7136
                     CodeRate: "1/2"

   Digital modulation and filter
                   Modulation: "QPSK"
           PulseShapingFilter: "root raised cosine"
                RolloffFactor: 0.3500
          FilterSpanInSymbols: 10
             SamplesPerSymbol: 10

  Show all properties

Override Default Property Values During Object Creation

Create a CCSDS TM System object, using Name,Value pairs, to specify the object for flexible advanced coding and modulation scheme for high rate TM applications standard, and specifying the ACM format as 9.

tmWaveGen = ccsdsTMWaveformGenerator("WaveformSource","flexible advanced coding and modulation","ACMFormat",9)
tmWaveGen = 
  ccsdsTMWaveformGenerator with properties:

             WaveformSource: "flexible advanced coding and modulation"
                  ACMFormat: 9
    NumBytesInTransferFrame: 223

   Channel coding
    No properties.

   Digital modulation and filter
         PulseShapingFilter: "root raised cosine"
              RolloffFactor: 0.3500
        FilterSpanInSymbols: 10
           SamplesPerSymbol: 10
                  HasPilots: false
       ScramblingCodeNumber: 0

  Show all properties

Create DVB-S2 Object

This example shows how to create a Digital Video Broadcasting Satellite Second Generation (DVB-S2) System object. It also shows how to change the default property settings by using dot notation or by overriding the default settings by using Name,Value pairs when creating the object.

To create a DVB-S2 System object, you must use MAT-files with LDPC parity matrices. If the MAT-files are not available on the path, download and unzip the MAT-files by entering this code at the MATLAB command prompt.

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

Create Object and Then Modify Properties

Create a DVB-S2 System object with default settings.

s2WaveGen = dvbs2WaveformGenerator
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "TS"
        NumInputStreams: 1
               FECFrame: "normal"
                 MODCOD: 1
                    DFL: 15928
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

Modify the defaults to specify multi-input generic stream and the data field length (DFL) for each stream.

s2WaveGen.StreamFormat = "GS";
s2WaveGen.NumInputStreams = 3;
s2WaveGen.DFL = [44500 51387 42960]
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "GS"
        NumInputStreams: 3
                    UPL: 0
               FECFrame: "normal"
                 MODCOD: 1
                    DFL: [44500 51387 42960]
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

Override Default Property Values During Object Creation

Create a DVB-S2 System object, using Name,Value pairs for a single-input transport stream with short FEC frame format, and specified modulation scheme and FEC rate (MODCOD).

s2WaveGen = dvbs2WaveformGenerator("FECFrame","short","MODCOD",10)
s2WaveGen = 
  dvbs2WaveformGenerator with properties:

           StreamFormat: "TS"
        NumInputStreams: 1
               FECFrame: "short"
                 MODCOD: 10
                    DFL: 15928
              HasPilots: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

Create a DVB-S2X Object

This example shows how to create a Digital Video Broadcasting Satellite Second Generation extended (DVB-S2X) System object. It also shows how to change the default property settings by using dot notation or by overriding the default settings by using Name,Value pairs when creating the object.

To create a DVB-S2X System object, you must use MAT-files with LDPC parity matrices. If the MAT-files are not available on the path, download and unzip the MAT-files by entering this code at the MATLAB command prompt.

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

Create Object and Then Modify Properties

Create a DVB-S2X System object with default settings.

s2xWaveGen = dvbs2xWaveformGenerator
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: false
        NumInputStreams: 1
         PLSDecimalCode: 132
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

Modify the defaults to specify multi-input transport stream with time slicing enabled.

s2xWaveGen.NumInputStreams = 4;
s2xWaveGen.HasTimeSlicing = true
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: true
        NumInputStreams: 4
         PLSDecimalCode: 132
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4
                  ISSYI: false

  Show all properties

Override Default Property Values During Object Creation

Create a DVB-S2X System object, using Name,Value pairs to specify the very low signal to noise ratio (VL-SNR) frame set 2, and specfying the modulation scheme and code rate as BPSK 1/5.

s2xWaveGen = dvbs2xWaveformGenerator("PLSDecimalCode",131,"CanonicalMODCODName","BPSK 1/5")
s2xWaveGen = 
  dvbs2xWaveformGenerator with properties:

           StreamFormat: "TS"
         HasTimeSlicing: false
        NumInputStreams: 1
         PLSDecimalCode: 131
    CanonicalMODCODName: "BPSK 1/5"
                    DFL: 18448
      PLScramblingIndex: 0
          RolloffFactor: 0.3500
    FilterSpanInSymbols: 10
       SamplesPerSymbol: 4

  Show all properties

Create DVB-RCS2 Object

This example shows how to create a Digital Video Broadcasting Second Generation Return Channel over Satellite (DVB-RCS2) System object. It also shows how to change the default property settings by using dot notation or by overriding the default settings by using Name,Value pairs when creating the object.

Create Object and Then Modify Properties

Create a DVB-RCS2 System object with default settings.

wg = dvbrcs2WaveformGenerator
wg = 
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "TC-LM"
             ContentType: "traffic"
        IsCustomWaveform: false
              WaveformID: 1
     PreBurstGuardLength: 0
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 4

  Show all properties

Modify the defaults to specify the transmission format and the burst content type.

wg.TransmissionFormat = "SS-TC-LM";
wg.ContentType = "logon"
wg = 
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "SS-TC-LM"
             ContentType: "logon"
        IsCustomWaveform: false
              WaveformID: 1
     PreBurstGuardLength: 0
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 4

  Show all properties

Override Default Property Values During Object Creation

Create a DVB-RCS2 System object, using Name,Value pairs, to specify the object for a custom waveform with pre burst guard length as 4.

wg = dvbrcs2WaveformGenerator("IsCustomWaveform",true,"PreBurstGuardLength",4)
wg = 
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "TC-LM"
             ContentType: "traffic"
        IsCustomWaveform: true
     PreBurstGuardLength: 4
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 4
    PayloadLengthInBytes: 10

  Show all properties

References

[1] TM Synchronization and Channel Coding. Recommendation for Space Data System Standards. CCSDS 131.0-B-3. Blue Book. Issue 3. Washington, D.C.: CCSDS, September 2017.

[2] Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry Applications. Recommendation for Space Data System Standards. CCSDS 131.2-B-1. Blue Book. Issue 1. Washington, D.C.: CCSDS, March 2012.

See Also

| | | |

Related Topics