dvbrcs2WaveformGenerator
Description
The dvbrcs2WaveformGenerator
System object™ generates a Digital Video Broadcasting Second Generation Return Channel over
Satellite (DVB-RCS2) time-domain reference or a custom waveform. The object implements the
waveform generation aspects of ETSI EN 301 545-2 V1.2.1 (2014-11) [1].
To generate a DVB-RCS2 waveform:
Create the
dvbrcs2WaveformGenerator
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 DVB-RCS2 waveform generator System object.rcs2WaveGen
= dvbrcs2WaveformGenerator
sets properties using one or more
name-value arguments. For example, rcs2WaveGen
= dvbrcs2WaveformGenerator(Name,Value
)'TransmissionFormat',"SS-TC-LM"
specifies to generate a reference DVB-RCS2 waveform of spread spectrum turbo codes with
linear modulation (SS-TC-LM) format.
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.
TransmissionFormat
— Transmission format
"TC-LM"
(default) | "SS-TC-LM"
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)
Tunable: Yes
Data Types: char
| string
ContentType
— Frame PDU burst content type
"traffic"
(default) | "logon"
| "control"
Frame protocol data unit (PDU) burst content type, specified as
"traffic"
, "logon"
, or
"control"
.
Data Types: char
| string
IsCustomWaveform
— Custom waveform indicator
false
or 0
(default) | true
or 1
Custom waveform indicator, specified as one of these numeric or logical values.
0
(false
) — Generate a standard-defined reference waveform. For details, refer to ETSI EN 301 545-2 V1.2.1 (2014-11) Annex A Tables A-1 and A-2 [1].1
(true
) — Generate a custom waveform.
Tunable: Yes
Data Types: logical
WaveformID
— Reference waveform ID
1
(default) | positive integer
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 TransmissionFormat
and
WaveformID
properties, the System object considers the transmission parameters according to ETSI EN 301 545-2 Annex
A Table A-1 and A-2 [1].
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
false
.
Data Types: double
| unit8
PreBurstGuardLength
— Preburst guard length
0
(default) | nonnegative integer
Preburst guard length, specified as a nonnegative integer. This length represents the number of zero-valued symbols in the guard time that are prefixed to the burst symbols, prior to the preamble.
A value of 0
indicates no guard symbols are prefixed.
Tunable: Yes
Data Types: double
PostBurstGuardLength
— Postburst guard length
0
(default) | nonnegative integer
Postburst guard length, specified as a nonnegative integer. This length represents the number of zero-valued symbols in the guard time that are suffixed to the burst symbols, after the postamble.
In absence of the postamble, these symbols are suffixed directly after the payload symbols.
Tunable: Yes
Data Types: double
FilterSpanInSymbols
— Filter span in symbols
10
(default) | positive integer
Filter span in symbols, specified as a positive integer.
The ideal impulse response of the raised cosine filter is truncated to a length that spans the number of symbols specified in this property.
Data Types: double
SamplesPerSymbol
— Number of samples per symbol
4
(default) | positive integer
Number of samples per symbol, specified as a positive integer.
Data Types: double
PayloadLengthInBytes
— Payload length
10
(default) | positive integer
Payload length in bytes, specified as one of these options.
Integer in the range [3, 65,535] — Use this option when you set the
ContentType
property to"control"
or"logon"
.Integer in the range [5, 65,535] — Use this option when you set the
ContentType
property to"traffic"
.
This length represents the size of the input data to the turbo encoder of this System object. Input data includes the frame PDU and the cyclic redundancy check (CRC) bits.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
MappingScheme
— Mapping scheme
"pi/2-BPSK"
(default) | "QPSK"
| "8PSK"
| "16QAM"
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
CodeRate
— Code rate
"1/3"
(default) | "1/2"
| "2/3"
| "3/4"
| "4/5"
| "5/6"
| "6/7"
| "7/8"
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 theMappingScheme
property to"8PSK"
."3/4"
,"4/5"
,"5/6"
,"6/7"
, or"7/8"
— Use one of these values when you set theMappingScheme
property to"16QAM"
.
All code rates are applicable if MappingScheme
property is set to
"pi/2-BPSK"
or "QPSK"
.
This code rate is passed as an input to the turbo encoder function, that is,
dvbrcs2TurboEncode
, of
this System object.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: char
| string
PreambleLength
— Preamble length
8
(default) | integer in the range [0, 255]
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 burst sequence, prior to the modulation.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
PostambleLength
— Postamble length
8
(default) | integer in the range [0, 255]
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 burst sequence, prior to the modulation.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
PilotPeriod
— Pilot period
0
(default) | integer in the range [0, 4095]
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.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
PilotBlockLength
— Pilot block length
1
(default) | integer in the range [1, 255]
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 added in the burst sequence.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
and PilotPeriod
property to a positive
integer.
Data Types: double
PermutationParameters
— Permutation control parameters
[9 0 0 0 0]
(default) | vector
Permutation control parameters that the dvbrcs2WaveformGenerator 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.
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
UniqueWord
— Unique word
"FFFF"
(default) | character array | string scalar
Unique word, specified as a character array or string scalar.
A unique word is a string of hexadecimal values that include the combination of the
preamble, one pilot block, and the postamble sequence. Pilots are included only when you
set the PilotPeriod
property as nonzero.
To know the minimum required length of the unique word, use this formula.
ceil
((PreambleLength
+ PostambleLength
+
PilotBlockLength
)*bps/4); where
bps is the bits per seconds, determined by the
MappingScheme
specified.
For example, if PreambleLength
= 9
,
PostambleLength
= 8
,
PilotBlockLength
= 1
, and
MappingScheme
= "QPSK"
(bps
= 2) then the minimum required length of the unique word by using this formula:
ceil
((9 + 8 + 1)*2/4) = 9 (hexadecimal values)
Tunable: Yes
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: char
| string
SpreadingFactor
— Spreading factor
2
(default) | integer in the range [2, 16]
Spreading factor, specified as an integer in the range [2, 16].
Tunable: Yes
Dependencies
To enable this property, set the TransmissionFormat
property
to "SS-TC-LM"
and the IsCustomWaveform
property to true
.
Data Types: double
ScramblingPolynomial
— Scrambling polynomial
16-bit zero vector (default) | 16-bit vector of binary values | numeric vector
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
, all of
the reference waveforms use this default scrambling sequence.
Tunable: Yes
Dependencies
To enable this property, set the TransmissionFormat
property
to "SS-TC-LM"
and the IsCustomWaveform
property to true
.
Data Types: double
| logical
ScramblingInitialConditions
— Scrambling initial conditions
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
(default) | 1
| 16-bit vector of binary values
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.
For this System object to generate a nonzero sequence, you must specify at least one nonzero element in this vector.
Tunable: Yes
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
FramePDULength
— Frame PDU length
48
(default) | positive integer
This property is read-only.
Frame PDU length, returned as a positive integer.
The frame PDU length indicates the length in bits of the input data to this System object. This length is calculated by subtracting the length of the CRC sequence from the payload length in bits.
Data Types: double
Usage
Syntax
Description
Input Arguments
pdu
— Frame PDU
binary-valued column vector
Frame PDU, specified as a binary-valued column vector.
Data Types: double
| logical
Output Arguments
burst
— DVB-RCS2-based burst samples
column vector
DVB-RCS2-based burst samples, returned as a column vector.
The System object outputs these burst symbols (including the guard symbols) post modulation and pulse shaping.
Data Types: double
Complex Number Support: Yes
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 dvbrcs2WaveformGenerator
info | Characteristic information about object |
Examples
Generate Reference DVB-RCS2 Waveform
Generate a reference DVB-RCS2 time-domain waveform with SS-TC-LM format.
Create and then set the properties of a DVB-RCS2 waveform generator System object™.
wg = dvbrcs2WaveformGenerator; wg.TransmissionFormat = "SS-TC-LM"; wg.ContentType = "logon"; wg.WaveformID = 10; wg.SamplesPerSymbol = 6;
Display the properties of the waveform generator.
disp(wg)
dvbrcs2WaveformGenerator with properties: TransmissionFormat: "SS-TC-LM" ContentType: "logon" IsCustomWaveform: false WaveformID: 10 PreBurstGuardLength: 0 PostBurstGuardLength: 0 FilterSpanInSymbols: 10 SamplesPerSymbol: 6 Read-only: FramePDULength: 1344
Generate a frame PDU.
framePDU = randi([0 1],wg.FramePDULength,1);
Generate the DVB-RCS2-based burst samples.
txWaveform = wg(framePDU);
Generate Custom DVB-RCS2 Waveform
Generate a custom DVB-RCS2 time-domain waveform having TC-LM format.
Create and then set the properties of the DVB-RCS2 waveform generator System object™.
wg = dvbrcs2WaveformGenerator; wg.IsCustomWaveform = true; wg.ContentType = "control"; wg.MappingScheme = "QPSK"; wg.CodeRate = "2/3"; wg.PreambleLength = 10; wg.PostambleLength = 8; wg.PermutationParameters = [13 4 2 1 2]; wg.UniqueWord = "FFFFFFFFF";
Display the properties of the waveform generator.
disp(wg)
dvbrcs2WaveformGenerator with properties: TransmissionFormat: "TC-LM" ContentType: "control" IsCustomWaveform: true PreBurstGuardLength: 0 PostBurstGuardLength: 0 FilterSpanInSymbols: 10 SamplesPerSymbol: 4 PayloadLengthInBytes: 10 Coding and Modulation: MappingScheme: "QPSK" CodeRate: "2/3" PermutationParameters: [13 4 2 1 2] Unique Word: PreambleLength: 10 PostambleLength: 8 PilotPeriod: 0 PilotBlockLength: 1 UniqueWord: "FFFFFFFFF" Read-only: FramePDULength: 64
Generate a frame PDU.
framePDU = randi([0 1],wg.FramePDULength,1);
Generate the DVB-RCS2-based burst samples.
txWaveform = wg(framePDU);
Generate Multiple Content Type DVB-RCS2 Bursts
Generate multiple ContentType
DVB-RCS2 bursts.
Set the ContentType
of the DVB-RCS2 waveform generator System Object™ as logon
.
wg = dvbrcs2WaveformGenerator;
wg.ContentType = "logon";
Generate a frame PDU.
framePDU1 = randi([0 1],wg.FramePDULength,1);
Generate the DVB-RCS2 logon burst samples.
txWaveform1 = wg(framePDU1);
Now, generate the DVB-RCS2 traffic burst samples.
% ContentType property is tunable wg.ContentType = "traffic"; framePDU2 = randi([0 1],wg.FramePDULength,1); txWaveform2 = wg(framePDU2);
References
[1] ETSI Standard EN 301 545-2 V1.2.1(2014-11). Digital Video Broadcasting (DVB); Second Generation Interactive Satellite Systems (DVB-RCS2).
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2021b
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 (한국어)