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 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 Read-only: FramePDULength: 272
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 Read-only: FramePDULength: 784
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 Coding and Modulation: MappingScheme: "pi/2-BPSK" CodeRate: "1/3" PermutationParameters: [9 0 0 0 0] Unique Word: PreambleLength: 8 PostambleLength: 8 PilotPeriod: 0 PilotBlockLength: 1 UniqueWord: "FFFF" Read-only: FramePDULength: 48
Create CCSDS HPE Object
Create a Consultative Committee for Space Data Systems (CCSDS) optical high photon efficiency (HPE) System object. Change the default property settings by using dot notation or by overriding the default settings by using Name=Value
pairs when creating the object.
This object supports two transmission types - CCSDS HPE telemetry (TM) and beacon-and-data.
By default, the transmission type is set to telemetry.
Create Object and Then Modify Properties
Create a CCSDS HPE TM System object with default settings.
hpeWaveform = ccsdsHPEWaveformGenerator
hpeWaveform = ccsdsHPEWaveformGenerator with properties: TransmissionType: "telemetry" NumBytesInTransferFrame: 223 NumBitsInInformationBlock: 7526 PPMOrder: 16 RepeatFactor: 1 IsEndOfTransmission: 1 Use get to show all properties
Modify the default to specify PPM order as 4 and number of bits in information block as 5006.
hpeWaveform.PPMOrder = 4; hpeWaveform.NumBitsInInformationBlock = 5006
hpeWaveform = ccsdsHPEWaveformGenerator with properties: TransmissionType: "telemetry" NumBytesInTransferFrame: 223 NumBitsInInformationBlock: 5006 PPMOrder: 4 RepeatFactor: 1 IsEndOfTransmission: 1 Use get to show all properties
Override Default Property Values During Object Creation
Create a CCSDS optical HPE System object, using Name=Value
pairs, to specify the transmission type as beacon-and-data and beacon length as 4000.
hpeWaveform = ccsdsHPEWaveformGenerator(TransmissionType="beacon-and-data",BeaconLength=4000)
hpeWaveform = ccsdsHPEWaveformGenerator with properties: TransmissionType: "beacon-and-data" BeaconLength: 4000 NumBytesInTransferFrame: 223 NumBitsInInformationBlock: 7526 HasChannelInterleaver: 1 PNSpreadFactor: 1 IsEndOfTransmission: 1 Use get to show all properties
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 Use get to 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 Use get to 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 Use get to show all 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"
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"
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
dvbs2WaveformGenerator
| dvbs2xWaveformGenerator
| dvbrcs2WaveformGenerator
| ccsdsHPEWaveformGenerator
| ccsdsTMWaveformGenerator
| ccsdsTCConfig