ccsdsTMWaveformGenerator
Description
The ccsdsTMWaveformGenerator
System object™ generates a Consultative Committee for Space Data Systems (CCSDS) Telemetry (TM)
time-domain waveform. The object implements the waveform generation aspects of CCSDS standard
blue books:
Note
The object supports waveform generation specified by the CCSDS TM synchronization and
channel coding standard [1] and CCSDS flexible advanced
coding and modulation scheme for high rate TM standard [3]. To obtain the waveform for
either of the desired standard, set the WaveformSource
property.
To generate a CCSDS TM waveform:
Create the
ccsdsTMWaveformGenerator
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Description
creates
a default CCSDS TM waveform generator System object.tmWaveGen
= ccsdsTMWaveformGenerator
sets Properties using one or more name-value pairs.
For example, tmWaveGen
= ccsdsTMWaveformGenerator(Name,Value
)ccsdsTMWaveformGenerator("WaveformSource","flexible advanced coding
and modulation","ACMFormat",20)
specifies the CSSDS TM waveform source as
flexible advanced coding and modulation standard with ACM format as 20 for the generated
waveform.
Properties
Unless otherwise indicated, properties are nontunable, which means you cannot change their
values after calling the object. Objects lock when you call them, and the
release
function unlocks them.
If a property is tunable, you can change its value at any time.
For more information on changing property values, see System Design in MATLAB Using System Objects.
General
WaveformSource
— CCSDS TM waveform source
"synchronization and channel coding"
(default) | "flexible advanced coding and modulation"
CCSDS TM waveform source, specified as one of these values.
"synchronization and channel coding"
— Use this option to set the waveform to CCSDS TM synchronization and channel coding, as specified in CCSDS 131.0-B-3 [1]."flexible advanced coding and modulation"
— Use this option to set the waveform to CCSDS flexible advanced coding and modulation for high rate TM applications, as specified in CCSDS 131.2-B-1 [3].
Data Types: char
| string
ACMFormat
— ACM format
1
(default) | integer in the range [1, 27]
Adaptive coding and modulation (ACM) format, specified as an integer in the range [1, 27], as specified in CCSDS 131.2-B-1 Section 5.2.4 Table 5-2 [3].
Tunable: Yes
Dependencies
To enable this property, set the WaveformSource
property to
"flexible advanced coding and modulation"
.
Data Types: double
| uint8
NumBytesInTransferFrame
— Number of bytes in one transfer frame
223
(default) | integer in the range [1, 2048]
Number of bytes in one transfer frame, specified as an integer in the range [1, 2048].
Dependencies
To enable this property, one of these conditions should be satisfied:
Set
WaveformSource
property to"synchronization and channel coding"
and theChannelCoding
property to"none"
,"convolutional"
, or"LDPC"
on stream of sync marked transfer frame (SMTF).Set
WaveformSource
property to"flexible advanced coding and modulation"
. In this case, the minimum number ofNumBytesInTransferFrame
is 223.
For other values of ChannelCoding
, this
NumBytesInTransferFrame
property is calculated internally
based on other properties.
Data Types: double
| uint16
HasRandomizer
— Option for randomizing data
1
or true
(default) | 0
or false
Option for randomizing the data, specified as a numeric or
logical
value of 1
(true
)
or 0
(false
). Set this value to
1
(true
) to randomize the data present in the
channel access data unit (CADU).
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
.
When you set the ChannelCoding
property to
"LDPC"
and IsLDPCOnSMTF
property to
1
(true
), this property is not applicable,
and is set to 1
(true
).
Data Types: double
| logical
HasASM
— Option for inserting ASM
1
or true
(default) | 0
or false
Option for inserting attached sync marker (ASM), specified as a numeric or
logical
value of 1
(true
)
or 0
(false
). Set this value to
1
(true
) to indicate the data in CADU is
attached with ASM.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
.
When you set the ChannelCoding
property to
"LDPC"
and IsLDPCOnSMTF
property to
1
(true
), this property is not applicable,
and is set to 1
(true
).
Data Types: double
| logical
PCMFormat
— PCM format
"NRZ-L"
(default) | "NRZ-M"
Pulse code modulation (PCM) format to select the PCM coding in the CCSDS TM waveform, specified as one of these values.
"NRZ-L"
— Non-return-to-zero (NRZ)-level"NRZ-M"
— Non-return-to-zero (NRZ)-mark
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to "BPSK"
,
"QPSK"
, "8PSK"
, "OPSK"
,
or "PCM/PSK/PM"
.
Data Types: char
| string
NumNRZMEncoders
— Number of NRZ-M encoders
1
(default) | 2
Number of NRZ-M encoders, specified as one of these values.
1
— Use this option to differentially encode the bit stream, and then divide the stream into in-phase (I) and quadrature phase (Q) branches to map to the signal.2
— Use this option to spilt data bits into I and Q branches, and then differentially encode each stream independently. Map these differentially encoded bits to the signal.
Dependencies
To enable this property, all these four conditions must be satisfied:
Set the
WaveformSource
property to"synchronization and channel coding"
.Set the
PCMFormat
property to"NRZ-M"
.Set the
ChannelCoding
property to"none"
,"RS"
,"turbo"
, or"LDPC"
.Set the
Modulation
property toQPSK
or"OQPSK"
.
Data Types: double
Channel Coding
ChannelCoding
— Forward error correction coding scheme
"RS"
(default) | "none"
| "convolutional"
| "concatenated"
| "turbo"
| "LDPC"
Forward error correction coding scheme, specified as one of these values.
"none"
"RS"
"convolutional"
"concatenated"
"turbo"
"LDPC"
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
.
Data Types: char
| string
NumBitsInInformationBlock
— Number of bits in turbo or LDPC message
7136
(default) | 1784
| 3568
| 8920
| 1024
| 4096
| 16384
Number of bits in the turbo or lower density parity check (LDPC) message, specified as one of these values.
1784
,3568
,7136
, or8920
— Use one of these values when you set theChannelCoding
property to"turbo"
.1024
,4096
,16384
, or7136
— Use one of these values when you set theChannelCoding
property to"LDPC"
.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to either "turbo"
or "LDPC"
.
Data Types: double
| uint16
ConvolutionalCodeRate
— Code rate of convolutional code
"1/2"
(default) | "2/3"
| "3/4"
| "5/6"
| "7/8"
Code rate of convolutional code, specified as a one of these values.
"1/2"
"2/3"
"3/4"
"5/6"
"7/8"
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to either
"convolutional"
or "concatenated"
.
When you set the ChannelCoding
property to
"concatenated"
, the numeric value of the code rate also depends
on the constituent Reed-Solomon (RS) code. You can obtain the actual numeric value
for any code from the output field ActualCodeRate
of the
info
object function.
Data Types: char
| string
InvertCCPath2
— Option to indicate inverter presence
1
(true
) (default) | 0
(false
)
Option to indicate inverter presence on second path of the convolutional code
(CC), specified as a numeric or logical
value of
0
(false
) or 1
(true
). Set this value to 1
(true
) to indicate presence of inverter on the second path of the
convolutional encoder.
Though the CCSDS standard specifies that there is an inverter on the second path of convolutional encoder for half rate codes, yet you can disable it using this flag.
Dependencies
To enable this property, both these conditions must be satisfied:
Set
ChannelCoding
property to either"convolutional"
or"concatenated"
.Set
ConvolutionalCodeRate
property to"1/2"
.
Data Types: double
| logical
CodeRate
— Code rate of turbo or LDPC code
"1/2"
(for turbo code) (default) | "7/8"
(for LDPC code) (default) | "2/3"
| "1/3"
| "1/4"
| "1/6"
| "4/5"
Code rate of turbo or LDPC code, specified as one of these values.
"1/2"
,"1/3"
,"1/4"
, or"1/6"
— Use one of these values when you set theChannelCoding
property to"turbo"
."1/2"
,"2/3"
,"4/5"
, or"7/8"
— Use one of these values when you set theChannelCoding
property to"LDPC"
.
Note
When you set the ChannelCoding
property to
"LDPC"
and the NumBitsInInformationBlock
property to 7136
, the CodeRate
must be
"7/8"
.
For an LDPC code, setting CodeRate
to
7/8
implies an actual code rate numeric value of 223/255. You
can obtain the actual numeric value for any code from the output field
ActualCodeRate
of the info
object function.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to either "turbo"
or "LDPC"
.
Data Types: char
| string
RSMessageLength
— Number of bytes in one RS message block
223
(default) | 239
Number of bytes in one RS message block, specified as 223
or
239
.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to "RS"
or
"concatenated"
.
Data Types: double
| uint8
RSInterleavingDepth
— Interleaving depth of RS code
1
(default) | 2
| 3
| 4
| 5
| 8
Interleaving depth of the RS code, specified as 1
,
2
, 3
, 4
,
5
, or 8
. The interleaving depth is the number
of RS codewords in one code block.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to "RS"
or
"concatenated"
.
Data Types: double
| uint8
IsRSMessageShortened
— Option to shorten RS code
0
or false
(default) | 1
or true
Option to shorten the RS code, specified as a numeric or
logical
value of 0
(false
)
or 1
(true
). Set this value to
1
(true
) to shorten the RS code.
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to "RS"
or
"concatenated"
.
Data Types: double
| logical
RSShortenedMessageLength
— Number of bytes in RS shortened message block
223
(default) | integer in the range [1, RSMessageLength
]
Number of bytes in the RS shortened message block, specified as an integer in the
range [1, RSMessageLength
].
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
, the
ChannelCoding
property to "RS"
or
"concatenated"
, and the
IsRSMessageShortened
property to 1
(true
).
Data Types: double
| uint8
IsLDPCOnSMTF
— Option for using LDPC on stream of SMTF
0
or false
(default) | 1
or true
Option for using LDPC on the stream of a sync marked transfer frame (SMTF),
specified as a numeric or logical
value of 0
(false
) or 1
(true
). Set
this value to 1
(true
) to indicate LDPC on the
stream of SMTF as specified in CCSDS 131.0-B-3 Section 8 of the TM synchronization and
channel coding standard [1]. To indicate LDPC on the
transfer frame, set this value to 0
(false
).
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
and the
ChannelCoding
property to "LDPC"
.
Data Types: double
| logical
LDPCCodeBlockSize
— Number of LDPC codewords in LDPC code block of stream of SMTF
1
(default) | integer in the range [1, 8]
Number of LDPC codewords in the LDPC code block of the stream of SMTF, specified as an integer in the range [1, 8].
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
, the
ChannelCoding
property to "LDPC"
, and the
IsLDPCOnSMTF
property to true
.
Data Types: double
| uint8
Digital Modulation and Filter
Modulation
— Modulation scheme
"QPSK"
(default) | "BPSK"
| "8PSK"
| "OQPSK"
| "GMSK"
| "PCM/PSK/PM"
| "PCM/PM/biphase-L"
| "4D-8PSK-TCM"
Modulation scheme used in CCSDS TC waveform, specified as one of these values.
"QPSK"
"BPSK"
"8PSK"
"OQPSK"
"GMSK"
"PCM/PSK/PM"
"PCM/PM/biphase-L"
"4D-8PSK-TCM"
Dependencies
To enable this property, set the WaveformSource
property to
"synchronization and channel coding"
.
Data Types: char
| string
PulseShapingFilter
— Pulse shaping filter
"root raised cosine"
(default) | "none"
Pulse shaping filter, specified as "root raised cosine"
or
"none"
.
Dependencies
To enable this property, one of these conditions must be satisfied:
Set
WaveformSource
property to"synchronization and channel coding"
and theModulation
property to"BPSK"
,"QPSK"
,"8PSK"
, or"4D-8PSK-TCM"
.Set
WaveformSource
property to"flexible advanced coding and modulation"
.
Data Types: char
| string
RolloffFactor
— Roll-off factor of SRRC baseband filter
0.35
(default) | scalar in the range [0, 1]
Roll-off factor of the square root raised cosine (SRRC) baseband filter, specified as a scalar in the range [0, 1].
Note
This property is not applicable when you set the
PulseShapingFilter
property to "none"
for
either value of the WaveformSource
property.
Dependencies
To enable this property, one of these conditions must be satisfied:
Set
WaveformSource
property to"synchronization and channel coding"
and theModulation
property to either"BPSK"
,"QPSK"
,"8PSK"
,"OQPSK"
, or"4D-8PSK-TCM"
.Set
WaveformSource
property to"flexible advanced coding and modulation"
.
Data Types: double
FilterSpanInSymbols
— Filter span in number of symbols
10
(default) | positive integer
Filter span in number of symbols, specified as a positive integer.
The ccsdsTMWaveformGenerator
System object truncates the infinite impulse response of the ideal root raised cosine
filter to this value.
Note
This property is not applicable when you set the
PulseShapingFilter
property to "none"
for
either value of the WaveformSource
property.
Dependencies
To enable this property, one of these conditions must be satisfied:
Set
WaveformSource
property to"synchronization and channel coding"
and theModulation
property to either"BPSK"
,"QPSK"
,"8PSK"
,"OQPSK"
, or"4D-8PSK-TCM"
.Set
WaveformSource
property to"flexible advanced coding and modulation"
.
Data Types: double
| uint32
BandwidthTimeProduct
— Bandwidth time product for GMSK modulator
0.25
(default) | 0.5
Bandwidth time product for the Gaussian minimum shift keying (GMSK) modulator,
specified as 0.25
or 0.5
.
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to "GMSK"
.
Data Types: double
ModulationEfficiency
— Modulation efficiency of 4D-8PSK-TCM
2
(default) | 2.25
| 2.5
| 2.75
Modulation efficiency of 4D-8PSK trellis coded modulator (TCM), specified as
2
, 2.25
, 2.5
, or
2.75
. This property indicates the number of bits for each complex
baseband symbol.
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to
"4D-8PSK-TCM"
.
Data Types: double
SubcarrierWaveform
— Type of waveform to PSK-modulate NRZ data
"sine"
(default) | "square"
Type of waveform to PSK-modulate the NRZ data, specified as
"sine"
or "square"
.
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to
"PCM/PSK/PM"
.
Data Types: char
| string
ModulationIndex
— Modulation index in residual carrier phase modulation
0.4
(default) | scalar in the range [0.2, 2]
Modulation index in the residual carrier phase modulation, specified as a scalar in the range [0.2, 2]. Units are in radians.
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to "PCM/PSK/PM"
or
"PCM/PM/biphase-L"
.
Data Types: double
SymbolRate
— Coded symbol rate
2000
(default) | positive scalar
Coded symbol rate in Hz, specified as a positive scalar.
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to
"PCM/PSK/PM"
.
Data Types: double
SubcarrierToSymbolRateRatio
— Ratio of subcarrier frequency to symbol rate
4
(default) | integer in the range [1, 50]
Ratio of the subcarrier frequency to the symbol rate, specified as an integer in the range [1, 50].
Dependencies
To enable this property, set WaveformSource
property to
"synchronization and channel coding"
and the
Modulation
property to
"PCM/PSK/PM"
.
Data Types: double
| uint8
SamplesPerSymbol
— Number of samples per symbol
10
(default) | positive integer
Number of samples per symbol, specified as a positive integer.
This property is applicable for either input value of the
WaveformSource
property.
Dependencies
To enable this property, one of these conditions must be satisfied:
Set the
Modulation
property to"OQPSK"
,"PCM/PSK/PM"
, or"GMSK"
.Set the
PulseShapingFilter
to"root raised cosine"
.
Data Types: double
| uint8
HasPilots
— Option for inserting pilot symbols
0
or false
(default) | 1
or true
Option for inserting pilot symbols within data, specified as a numeric or
logical
value of 0
(false
)
or 1
(true
). Set this value to
1
(true
) to indicate pilots are inserted, as
described in CCSDS flexible advanced coding and modulation scheme for high rate TM
standard [3].
Dependencies
To enable this property, set the WaveformSource
property to
"flexible advanced coding and modulation"
.
Data Types: double
| logical
ScramblingCodeNumber
— Scrambling code number
0
(default) | integer in the range [0, (218 – 2)]
Scrambling code number for flexible advanced coding and modulation for high rate TM applications standard [3], specified as an integer in the range [0, (218 – 2)].
ScramblingCodeNumber
is used to randomize the complex
baseband symbols.
Dependencies
To enable this property, set the WaveformSource
property to
"flexible advanced coding and modulation"
.
Data Types: double
| uint32
Read-Only
NumInputBits
— Minimum number of bits required to generate waveform
integer
This property is read-only.
Minimum number of input bits to generate a waveform, returned as an integer.
The number of input bits must be an integer multiple of
NumInputBits
.
Data Types: double
MinNumTransferFrames
— Minimum number of transfer frames for nonempty output
integer
This property is read-only.
Minimum number of transfer frames for a nonempty System object output, returned as an integer.
When you set the WaveformSource
property to
"flexible advanced coding and modulation"
, or to
"synchronization and channel coding"
with the
IsLDPCOnSMTF
property set to 1
(true
), System object output is empty until it has sufficient input to process through channel
coding and modulation.
Data Types: double
Usage
Description
generates a CCSDS TM time-domain waveform for the corresponding input bits.txWaveform
= tmWaveGen(bits
)
[
also returns the bits obtained after TM synchronization and channel coding sublayer
operations.txWaveform
,encodedBits
] = tmWaveGen(bits
)
Input Arguments
bits
— Information bits
binary-valued column vector
Information bits, in the form of transfer frames, specified as a binary-valued
column vector. The length of this vector must be an integer multiple of the number of
bits in one transfer frame. The NumInputBits
property indicates
the number of bits in one transfer frame.
Data Types: double
| int8
| logical
Output Arguments
txWaveform
— Generated CCSDS TM time-domain waveform
column vector
Generated CCSDS TM time-domain waveform, returned as a column vector. This output is generated in the form of complex in-phase quadrature (IQ) samples.
Data Types: double
Complex Number Support: Yes
encodedBits
— Output bits obtained after TM synchronization and channel coding sublayer operations
binary-valued column vector
Output bits obtained after TM synchronization and channel coding sublayer operations, returned as a binary-valued column vector.
Data Types: int8
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
Specific to ccsdsTMWaveformGenerator
info | Characteristic information about object |
flushFilter | Flush transmit filter |
Examples
Generate CCSDS TM Waveform for Synchronization and Channel Coding Scheme
Generate a Consultative Committee for Space Data Systems (CCSDS) Telemetry (TM) waveform for the synchronization and channel coding standard, for multiple transfer frames. Visualize the waveform by using a spectrum plot.
Create a CCSDS TM System object. Set the waveform type as synchronization and channel coding
with GMSK-modulated concatenated codes.
tmWaveGen = ccsdsTMWaveformGenerator; tmWaveGen.WaveformSource = "synchronization and channel coding"; tmWaveGen.ChannelCoding = "concatenated"; tmWaveGen.Modulation = "GMSK"; tmWaveGen.RSMessageLength = 239; tmWaveGen.RSInterleavingDepth = 2; tmWaveGen.BandwidthTimeProduct = 0.5; disp(tmWaveGen)
ccsdsTMWaveformGenerator with properties: WaveformSource: "synchronization and channel coding" HasRandomizer: true HasASM: true Channel coding ChannelCoding: "concatenated" ConvolutionalCodeRate: "1/2" InvertCCPath2: true RSMessageLength: 239 RSInterleavingDepth: 2 IsRSMessageShortened: false Digital modulation and filter Modulation: "GMSK" BandwidthTimeProduct: 0.5000 SamplesPerSymbol: 10 Use get to show all properties
Specify the number of transfer frames.
numTF = 15;
waveform = []; % Initialize waveform as null
Generate the CCSDS TM waveform for the synchronization and channel coding standard by using multiple System object calls.
rng default % For reproducible results for iTF = 1:numTF bits = randi([0 1],tmWaveGen.NumInputBits,1); waveform = [waveform; tmWaveGen(bits)]; end
Create a spectrum analyzer System object to display the frequency spectrum of the generated CCSDS TM time-domain waveform.
BW = 36e6; % Typical satellite channel bandwidth Fsamp = tmWaveGen.SamplesPerSymbol*BW; scope = spectrumAnalyzer('SampleRate',Fsamp,... 'AveragingMethod','Exponential'); scope(waveform)
Generate CCSDS TM Waveform for Flexible Advanced Coding and Modulation Scheme
Generate a Consultative Committee for Space Data Systems (CCSDS) Telemetry (TM) waveform for the flexible advanced coding and modulation scheme for high rate TM applications standard, for one physical layer (PL) frame. Visualize the waveform by using a scatter plot.
Create a CCSDS TM System object, and then specify its properties.
tmWaveGen = ccsdsTMWaveformGenerator; tmWaveGen.WaveformSource = "flexible advanced coding and modulation"; tmWaveGen.ACMFormat = 17; % 16APSK tmWaveGen.PulseShapingFilter = "none"; disp(tmWaveGen)
ccsdsTMWaveformGenerator with properties: WaveformSource: "flexible advanced coding and modulation" ACMFormat: 17 NumBytesInTransferFrame: 223 Channel coding No properties. Digital modulation and filter PulseShapingFilter: "none" HasPilots: false ScramblingCodeNumber: 0 Use get to show all properties
Calculate the number of transfer frames in one PL frame.
NumTFInOnePL = tmWaveGen.MinNumTransferFrames*16; % One PL frame consists of 16 codewords, as specified in the standard waveform = []; % Initialize waveform as null
Generate the CCSDS TM waveform for the flexible advanced coding and modulation scheme for high rate TM applications standard.
rng default % For reproducible results for iTF = 1:NumTFInOnePL bits = randi([0 1],tmWaveGen.NumInputBits,1); waveform = [waveform; tmWaveGen(bits)]; end
Display the scatter plot of the constellation for the generated waveform.
scatterplot(waveform);
legend off;
Get CCSDS TM Waveform Generator Information and Check Transmit Filter Delay
Get information from a ccsdsTMWaveformGenerator
System object by using the info
function. Then retrieve the filter residual samples by using the flushFilter
object function.
Create a Consultative Committee for Space Data Systems (CCSDS) Telemetry (TM) System object. Set the waveform type as synchronization and channel coding
with low-density parity-check (LDPC) channel coding. Display the properties.
tmWaveGen = ccsdsTMWaveformGenerator; tmWaveGen.WaveformSource = "synchronization and channel coding"; tmWaveGen.ChannelCoding = "LDPC"; tmWaveGen.NumBitsInInformationBlock = 1024; tmWaveGen.Modulation = "QPSK"; tmWaveGen.CodeRate = "1/2"; disp(tmWaveGen)
ccsdsTMWaveformGenerator with properties: WaveformSource: "synchronization and channel coding" HasRandomizer: true HasASM: true PCMFormat: "NRZ-L" Channel coding ChannelCoding: "LDPC" NumBitsInInformationBlock: 1024 CodeRate: "1/2" IsLDPCOnSMTF: false Digital modulation and filter Modulation: "QPSK" PulseShapingFilter: "root raised cosine" RolloffFactor: 0.3500 FilterSpanInSymbols: 10 SamplesPerSymbol: 10 Use get to show all properties
Specify the number of transfer frames.
numTF = 20;
Get the characteristic information about the CCSDS TM waveform generator.
info(tmWaveGen)
ans = struct with fields:
ActualCodeRate: 0.5000
NumBitsPerSymbol: 2
SubcarrierFrequency: []
Generate the input bits for the CCSDS TM waveform generator, and then generate the waveform.
bits = randi([0 1], tmWaveGen.NumInputBits*numTF,1); waveform = tmWaveGen(bits);
Check the filter residual data samples that remain in the filter delay.
flushFilter(tmWaveGen)
ans = 100×1 complex
-0.0772 - 0.0867i
-0.0751 - 0.0859i
-0.0673 - 0.0788i
-0.0549 - 0.0654i
-0.0388 - 0.0469i
-0.0200 - 0.0250i
0.0002 - 0.0012i
0.0208 + 0.0227i
0.0405 + 0.0453i
0.0587 + 0.0653i
⋮
References
[1] CCSDS 131.0-B-3. Blue Book. Issue 3. "TM Synchronization and Channel Coding." Recommendation for Space Data System Standards. Washington, D.C.: CCSDS, September 2017.
[2] CCSDS 401.0-B-30. Blue Book. Issue 30. "Radio Frequency and Modulation Systems - Part 1: Earth Stations and Spacecraft." Recommendation for Space Data System Standards. Washington, D.C.: CCSDS, February 2020.
[3] CCSDS 131.2-B-1. Blue Book. Issue 1. "Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry Applications." Recommendation for Space Data System Standards. Washington, D.C.: CCSDS, March 2012.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2021aR2023b: Additional properties — NumNRZMEncoders
and
InvertCCPath2
The System object now includes these two new properties.
NumNRZMEncoders
— Option to independently spilt data into I and Q branches for NRZ-M encoding.InvertCCPath2
— Option to disable inverting CC path 2.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)