Contenido principal

dvbrcs2CPMDemodConfig

R2026b

DVB-RCS2 CPM demodulator configuration object

Since R2026b

Description

The dvbrcs2CPMDemodConfig object sets the configuration parameters for the dvbrcs2CPMDemodulate function, which demodulates signals modulated using the continuous phase modulation (CPM) method, as specified in the Digital Video Broadcasting Second Generation Return Channel over Satellite (DVB-RCS2) standard ETSI EN 301 545-2 V1.4.1 [1]. For more information on demodulation, filtering applied, and iterative decoding, see the More About section.

Creation

Description

cpmDemodCfg = dvbrcs2CPMDemodConfig creates a default DVB-RCS2 CPM demodulator configuration object.

example

cpmDemodCfg = dvbrcs2CPMDemodConfig(PropertyName=Value) sets properties using one or more name-value arguments. For example, dvbrcs2CPMDemodConfig(ModulationIndex=0.4) sets the modulation index to 0.4.

Properties

expand all

Modulation index, specified as a nonnegative scalar. For more information, see CPM Method.

Data Types: double

Phase response coefficient, specified as a scalar in the range [0, 1]. This value represents the weighting of the raised cosine component in the weighted average CPM pulse shape defined by the DVB-RCS2 standard. For more information, see Pulse Shape Filtering.

Data Types: double

Number of samples per symbol, specified as a positive integer. This value represents the number of samples per CPM symbol in the input signal to the dvbrcs2CPMDemodulate function. The length of the input signal must be an integer multiple of this property.

Data Types: double

Traceback depth for CPM demodulation, specified as a nonnegative scalar. The demodulator uses a trellis-based algorithm, and a larger traceback depth can improve demodulation accuracy at the cost of increased computation. The demodulator appends termination symbols internally to flush the trellis.

Data Types: double | int8

Type of demodulator output, specified as one of these options.

  • "integer" — Output demodulated CPM symbols from the set {-3, -1, 1, 3}. Use this option for symbol error rate performance simulations.

  • "bit" — Output demodulated binary bits obtained by demapping the CPM symbols using Gray mapping. Use this option for bit error rate performance simulations.

  • "approxLLR" — Output approximate log-likelihood ratios (LLRs) for iterative decoding within the DVB-RCS2 serially concatenated convolutional code (SCCC) structure. The LLRs enable exchange of extrinsic information between the CPM demodulator and the outer convolutional decoder. For more information, see Iterative Decoding.

Data Types: char | string

Data type of the demodulator output, specified as "double", "single", "int8", or "logical".

Dependencies

To enable this property, set the OutputType property to "bit" or "integer".

When you set the OutputType property to "approxLLR", the output inherits the data type of the input signal to the dvbrcs2CPMDemodulate function.

Data Types: char | string

Object Functions

expand all

dvbrcs2CPMDemodulateDemodulate signal using CPM method specified in DVB-RCS2 standard

Examples

collapse all

Create a DVB-RCS2 CPM demodulator configuration object and demodulate a CPM modulated signal.

Define modulation parameters for DVB-RCS2 reference waveform ID 9.

payloadBitLen = 2052; % Payload length in bits
preambleLen = 64;     % Preamble length in bits
sps = 4;              
modulationIndex = 2/5;
alphaRC = 0.98;       % phase response coefficient

Create a CPM modulator object.

modulatorObj = dvbrcs2CPMModulator(ModulationIndex=modulationIndex, ...
    PhaseResponseCoefficient=alphaRC, ...
    SamplesPerSymbol=sps, ...
    OutputDataType="double");

Generate and interleave the input bits.

numBits = preambleLen+payloadBitLen;
bits = randi([0,1],numBits,1);
% Specify the initial state for random number generator
seed = 4831; 
inpBits = randintrlv(bits,seed);

Map interleaved bits to CPM input symbols using Gray mapping.

bit1 = inpBits(1:2:end);
bit2 = inpBits(2:2:end);
modIn = -3 + 4*bit1 + 2*(xor(bit1,bit2));

Generate the CPM-modulated waveform.

modOut = modulatorObj(modIn);

Add noise to the modulated signal.

rxIn = awgn(modOut,10,"measured");

Create a demodulator configuration object with matching parameters and demodulate the received CPM-modulated signal.

cpmDemodCfg = dvbrcs2CPMDemodConfig(ModulationIndex=modulationIndex, ...
    PhaseResponseCoefficient=alphaRC, ...
    SamplesPerSymbol=sps, ...
    OutputType="integer");

Demodulate the received waveform.

demodOutSymbols = dvbrcs2CPMDemodulate(rxIn,cpmDemodCfg);

Verify the demodulation by comparing the output symbols to the original modulator input.

isequal(demodOutSymbols(1:end-2),modIn(1:end-2))
ans = logical
   1

More About

expand all

References

[1] ETSI Standard EN 301 545-2 V1.4.1(2024-01). Digital Video Broadcasting (DVB); Second Generation Interactive Satellite Systems (DVB-RCS2); Part-2: Lower Layers for Satellite Standard.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2026b