dvbrcs2RecoveryConfig
Description
The dvbrcs2RecoveryConfig
object creates a Digital Video Broadcasting
Second Generation Return Channel over Satellite (DVB-RCS2) recovery configuration object.
Recover the frame protocol data unit (PDU) from the received DVB-RCS2 waveform by using object
properties.
Creation
Description
creates a
default DVB-RCS2 recovery configuration object.cfgrcs2
= dvbrcs2RecoveryConfig
sets Properties using one or more name-value pairs.
Enclose each property name in quotes. For example,
cfgrcs2
= dvbrcs2RecoveryConfig(Name,Value
)dvbrcs2RecoveryConfig('IsCustomWaveform',true)
recovers a custom DVB-RCS2
waveform with the specified property values.
Properties
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)
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
0
or false
(default) | 1
or true
Custom waveform indicator, specified as one of these values.
0
(false
) — Use this option to demodulate the complex in-phase quadrature (IQ) samples from a standard-defined reference waveform.1
(true
) — Use this option to demodulate the complex IQ samples from a custom waveform.
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 values set for TransmissionFormat
and
WaveformID
properties, this object considers the receiver
parameters according to ETSI EN 301 545-2 Annex A Table A-1 and A-2 [1].
Dependencies
To enable this property, set the IsCustomWaveform
property to
false
.
Data Types: double
| unit8
SpreadingFactor
— Spreading factor
2
(default) | integer in the range [2, 16]
Spreading factor, specified as an integer in the range [2, 16].
Dependencies
To enable this property, set the TransmissionFormat
property
to "SS-TC-LM"
and the IsCustomWaveform
property to true
.
Data Types: double
BurstLength
— Burst length
256
(default) | integer in the range [7, 25,233,405]
Burst length, specified as an integer in the range [7, 25,233,405]. This length includes the preamble, postamble, and pilot sum, in addition to the payload symbols.
When you set the TransmissionFormat
property to
"TC-LM"
, the unit of burst length is symbols. When you set the
TransmissionFormat
property to "SS-TC-LM"
, the
unit of burst length is chips.
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"
.
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: char
| string
PermutationParameters
— Permutation control parameters
[9 0 0 0 0]
(default) | vector
Permutation control parameters that the dvbrcs2RecoveryConfig 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.
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
.
Data Types: double
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 payload symbols.
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 payload symbols in the burst sequence.
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.
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 detected, which must be removed to recover the payload
symbols.
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
and PilotPeriod
property to a positive
integer.
Data Types: double
PilotSum
— Total pilot symbols or chips in received waveform
0
(default) | nonnegative integer
Total pilot symbols or chips in the received waveform, specified as one of these options.
Integer in the range [0, 255] — Use this option when you set the
TransmissionFormat
property to"TC-LM"
.Integer in the range [0, 65,535] — Use this option when you set the
TransmissionFormat
property to"SS-TC-LM"
.
When you set the TransmissionFormat
property to
"TC-LM"
, the unit of pilot sum is symbols. When you set the
TransmissionFormat
property to "SS-TC-LM"
, the
unit of pilot sum is chips.
Dependencies
To enable this property, set the IsCustomWaveform
property to
true
and PilotPeriod
property to a positive
integer.
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
, the
default scrambling sequence is used to descramble the received reference
waveform.
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.
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
NumDecodingIterations
— Number of decoding iterations
8
(default) | positive integer
Number of decoding iterations of the DVB-RCS2 turbo decoder, specified as a positive integer.
Data Types: double
PayloadLengthInBytes
— Payload length in bytes
10
(default) | positive integer
This property is read-only.
Payload length in bytes, returned as a positive integer. This length represents the DVB-RCS2 turbo decoder output length.
Use this property output to choose a valid value for the first element of
PermutationParameters
property (that is,
P).
PayloadLengthInBytes
*4 and P must be
co-primes.
Data Types: double
Object Functions
Specific to This Object
dvbrcs2BitRecover | Recover bits for DVB-RCS2 waveform |
Examples
Create DVB-RCS2 Receiver Object
Create a DVB-RCS2 recovery configuration object.
Create and then set the properties of the object.
cfgrcs2 = dvbrcs2RecoveryConfig; cfgrcs2.TransmissionFormat = "SS-TC-LM"; cfgrcs2.ContentType = "control"; cfgrcs2.WaveformID = 20; cfgrcs2.NumDecodingIterations = 6;
Display the properties of the DVB-RCS2 object.
disp(cfgrcs2)
dvbrcs2RecoveryConfig with properties: TransmissionFormat: "SS-TC-LM" ContentType: "control" IsCustomWaveform: 0 WaveformID: 20 Coding and Modulation: NumDecodingIterations: 6
Recover PDU from DVB-RCS2 Reference Waveform
Recover the frame PDU for a DVB-RCS2 reference waveform.
Set the properties of a DVB-RCS2 waveform generator System object™.
wg = dvbrcs2WaveformGenerator;
wg.TransmissionFormat = "SS-TC-LM";
wg.WaveformID = 7;
wg.SamplesPerSymbol = 2;
Generate a frame PDU.
framePDU = randi([0 1],wg.FramePDULength,1);
Generate the DVB-RCS2-based burst symbols.
txWaveform = wg(framePDU);
Add additive white Gaussian noise (AWGN) to the generated waveform.
sps = wg.SamplesPerSymbol;
EsNodB = 1;
snrdB = EsNodB - 10*log10(sps);
rxIn = awgn(txWaveform,snrdB,"measured");
Create and then configure the DVB-RCS2 recovery configuration object.
cfg = dvbrcs2RecoveryConfig; cfg.TransmissionFormat = wg.TransmissionFormat; cfg.WaveformID = wg.WaveformID;
Create a raised cosine receiver filter.
rxFilter = comm.RaisedCosineReceiveFilter( ... 'RolloffFactor',0.2, ... 'InputSamplesPerSymbol',sps, ... 'DecimationFactor',sps); span = rxFilter.FilterSpanInSymbols;
Apply matched filtering and remove the filter delay.
filtOut = rxFilter([rxIn; ...
complex(zeros(span/2*sps,1))]);
rxSymb = filtOut(span+1:end);
Recover user packets. Display the frame PDU cyclic redundancy check (CRC) status and the numbers of bit errors.
[rxOut,pduErr] = dvbrcs2BitRecover(rxSymb,cfg,10^(-EsNodB/10));
fprintf("Erroneous frame PDU = %d\n", pduErr)
Erroneous frame PDU = 0
fprintf("Number of bit errors = %d\n", sum(framePDU~=rxOut))
Number of bit errors = 0
References
[1] ETSI Standard EN 301 545-2 V1.2.1(2014-11). Digital Video Broadcasting (DVB); Second Generation Interactive Satellite Systems (DVB-RCS2); Part 2: Lower Layers for Satellite Standard.
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 (한국어)