Main Content


Broadcast channel decoding



[trblk,cellrefp] = lteBCHDecode(enb,softbits) returns a vector, trblk, of the decoded information bits (24 bits). cellrefp is the number of cell-specific reference signal antenna ports detected in the CRC mask for given input, softbits, and the structure, enb. This function performs the inverse of the Broadcast Channel (BCH) processing described in TS 36.212 [1], Section 5.3.1.


collapse all

Perform BCH coding of one transport block, and BCH decoding of part (one quarter) of the encoded block. In a practical system, this approach would be used to attempt BCH decoding on the one quarter part of the encoded block that is transmitted in the first subframe of each frame.

Create cell-wide configuration structure, initialized to RMC R.4. Perform BCH coding of one transport block.

enb = lteRMCDL('R.4');
bchCoded = lteBCH(enb,ones(24,1));

Perform BCH decoding of one quarter of the transport block.

out = bchCoded(1:length(bchCoded)/4);
[bchDecoded,cellRefP] = lteBCHDecode(enb,out);
ans = 10x1 int8 column vector


Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure containing these parameter fields.

Parameter FieldRequired or OptionalValuesDescription

'Normal' (default), 'Extended'

Cyclic prefix length

Soft bits to decode, specified as a numeric vector. This vector can have any length.

The transport block size, 24, is relatively small when compared to the number of coded bits sent in the BCH transmission, 1920 or 1728. For this reason, the rate matching internal to the BCH coding results in many repetitions of the coded block. This decoder allows the input argument softbits to be of any length because successful decoding of coded BCH blocks is often possible using a fraction of the full coded block length.

Output Arguments

collapse all

Decoded information bits, returned as an integer-valued column vector of length 24.

Data Types: int8

Number of cell-specific reference signal (CRS) antenna ports detected, returned as 0, 1, 2, or 4. A value of 0 indicates that the function detects a cyclic redundancy check (CRC) error during the decoding process.

Data Types: uint32


[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL:

Version History

Introduced in R2014a