Contenido principal

DVB-S2X BCH Decoder

R2026b

Decode and recover message from BCH codeword according to DVB-S2X standard

Since R2026b

  • DVB-S2X BCH Decoder block

Libraries:
Wireless HDL Toolbox / Error Detection and Correction

Description

The DVB-S2X BCH Decoder block decodes and recovers messages from a Bose-Chaudhuri-Hocquenghem (BCH) codeword according to the Digital Video Broadcasting Satellite Second Generation (DVB-S2X) standard [1]. The block accepts low-density parity-check (LDPC) decoded codeword data bits and a stream of control signals. It outputs decoded message data bits, a stream of control signals, a signal that indicates when the block is ready to accept new input, and an optional signal that provided the number of corrected errors in the output. The block supports either a scalar or an 8-element column vector as input.

The block supports three forward error correction (FEC) frame types, normal, short, and medium. The block provides an architecture suitable for HDL code generation and hardware deployment. You can use this block in a DVB-S2X receiver for satellite communication.

Examples

Ports

Input

expand all

Codeword data bits, specified as a Boolean scalar or an eight-element column vector.

The length of the input data must be based on the FEC frame type and code rate according to the DVB-S2X standard. For more information, see section 5.3 in [1].

For example, if you specify the FEC frame type parameter to Normal and the Code rate parameter to 2/9, the length of the input data must be 14,400.

Data Types: Boolean

Control signals accompanying the sample stream, specified as a samplecontrol bus. The bus includes the start, end, and valid control signals, which indicate the boundaries of the frame and the validity of the samples.

  • start — Indicates the start of the input frame

  • end — Indicates the end of the input frame

  • valid — Indicates that the data on the input data port is valid

For more details, see Sample Control Bus.

Data Types: bus

Frame type, specified as a scalar.

Specify the frame type as one these options:

  • 0— Block considers the input data as a normal frame

  • 1— Block considers the input data as a short frame

  • 2— Block considers the input data as a medium frame

Dependencies

To enable this port, set the Frame type source parameter to Input port.

Data Types: ufix2

Code rate index, specified as an integer. Code rate index values range from 0 to 34. Each code rate index value represents a specific code rate for each FEC frame type, as shown in this table.

codeRateIdx ValueCode Rate
NormalShortMedium
01/41/41/5
11/31/311/45
22/52/51/3
31/21/2NA
43/53/5
52/32/3
63/43/4
74/54/5
85/65/6
98/98/9
109/1011/45
112/94/15
1213/4514/45
139/207/15
1490/1808/15
1596/18026/45
1611/2032/45
17100/180NA
18104/180
1926/45
2018/30
2128/45
2223/36
23116/180
2420/30
25124/180
2625/36
27128/180
2813/18
29132/180
3022/30
31135/180
32140/180
337/9
34154/180

Data Types: ufix6

Output

expand all

Decoded message bits, returned as a Boolean scalar or as an eight-element column vector. The output data type and dimension are same as the input.

For more information on extracting output bits for medium frame with vector output, see Extract Output Bits for Medium Frames with Vector Output.

Data Types: Boolean

Control signals accompanying the sample stream, returned as a samplecontrol bus. The bus includes the start, end, and valid control signals, which indicate the boundaries of the frame and the validity of the samples.

  • start — Indicates the start of the output frame

  • end — Indicates the end of the output frame

  • valid — Indicates that the data on the output data port is valid

For more details, see Sample Control Bus.

Data Types: bus

Number of corrected errors, returned as a scalar.

  • -1 — Indicates that the block contains errors in its output that cannot be corrected

  • 0 — Indicates that the block does not contain errors in its output

  • Range from 1 to 12 — Indicates the number of errors corrected in the block output

Dependencies

To enable this port, select the Output number of corrected symbol errors parameter.

Data Types: fixdt(1,5,0)

Block ready indicator, returned as a Boolean scalar.

The block sets this signal to 1 (true) when the block is ready to accept the start of the next frame. If the block receives an input ctrl.start signal while nextFrame is 0 (false), the block discards the frame in progress and begins processing the new data.

Data Types: Boolean

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Select the FEC frame source as Property or Input port.

  • Property — Select this option to enable the FEC frame type parameter.

  • Input port — Select this option to enable the frameTypeIdx port.

Select the FEC frame type as Normal, Short, or Medium.

For more information about normal, short, and medium FEC frame types, see [1]

Dependencies

To enable this parameter, set the FEC frame source parameter to Property.

Select this parameter to enable the numCorrErr output port. This port outputs the number of corrected errors.

More About

expand all

Algorithms

expand all

The DVB-S2X BCH Decoder block decodes BCH-encoded codewords by detecting and correcting errors in the received data. For each input frame, the block performs these operations:

  • Calculate syndrome values — The block computes syndromes from the received codeword. The syndromes indicate whether errors are present in the input data. This operation occurs during the input phase and does not add additional latency.

  • Determine error locator polynomial — The block determines the error location polynomial using the Berlekamp-Massey algorithm. This polynomial identifies the locations of errors in the codeword. For more information about the Berlekamp-Massey algorithm, see Algorithms for BCH and RS Errors-only Decoding.

  • Find error locations and error correction — The block evaluates the error locator polynomial using Chien search [2] algorithm to determine the error locations, and correct errors. To improve throughput for DVB-S2X applications, the block evaluates multiple candidates of the error locator polynomial in parallel. When the input data is specified as a vector, the block processes multiple symbols per clock cycle and performs error location detection concurrently across these symbols. This parallel evaluation reduces the number of clock cycles required for error detection compared to scalar processing.

Architecture diagram of the BCH decode algorithm

References

[1] ETSI Standard EN 302 307-2 V1.1.1: Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications, DVB-S2 Extensions (DVB-S2X),European Telecommunications Standards Institute, Valbonne, France, 2005-03.

[2] Chien, R. “Cyclic Decoding Procedures for Bose- Chaudhuri-Hocquenghem Codes.” IEEE Transactions on Information Theory 10, no. 4 (October 1964): 357–63. https://doi.org/10.1109/TIT.1964.1053699.

Extended Capabilities

expand all

Version History

Introduced in R2026b