lteDLSCHDecode
Downlink shared channel decoding
Description
[
returns
the information bits, trblkout
,blkcrc
,stateout
]
= lteDLSCHDecode(enb
,chs
,trblklen
,cwin
,statein
)trblkout
, decoded from
the input soft LLR codeword data, cwin
. The DL-SCH
decoder includes rate recovery, turbo decoding, block concatenation,
and CRC calculations. The function also returns the type-24A transport
block CRC decoding result in blkcrc
and the HARQ
process decoding state in stateout
. The initial
HARQ process state can be provided as the optional statein
parameter.
The function is capable of processing both a single codeword or pairs
of codewords, contained in a cell array, for the case of spatial multiplexing
schemes transmitting two codewords. The type of the return variable, trblkout
,
is the same as the input, cwin
. If cwin
is
a cell array containing one or two codewords, trblkout
is
a cell array of one or two transport blocks. If cwin
is
a vector of soft data, trblkout
is a vector also.
If you are decoding a pair of codewords, you must provide pairs of
modulation schemes and RV indicators in the appropriate parameter
fields.
enb
is an input parameter structure that
may include optional fields defining the duplex mode. Since the duplex
mode defaults to 'FDD'
, if the 'DuplexMode'
field
is absent, enb
can be an empty structure.
chs
is an input parameter structure defining
aspects of the PDSCH onto which the codewords are mapped and the DL-SCH
soft buffer size and redundancy versions of the received codewords.
trblklen
is an input vector, one or two
elements in length, defining the transport block lengths to which
the input code blocks are rate recovered and decoded.
cwin
is an input parameter containing the
floating point soft LLR data of the codewords to be decoded. It is
either a single vector or a cell array containing one or two vectors.
If it is a cell array, all rate matching calculations assume that
the pair is transmitting on a single PDSCH, distributed across the
total number of layers defined in chs
, as per
TS 36.211 [1].
statein
is an optional input structure
array, empty or one or two elements, which can input the current decoder
buffer state for each transport block in an active HARQ process. If statein
is
not an empty array and it contains a non-empty field, CBSBuffers
,
this field should contain a cell array of vectors representing the
LLR soft buffer states for the set of code blocks at the input to
the turbo decoder, after explicit rate recovery. The updated buffer
states after decoding are returned in the CBSBuffers
field
in the output parameter, stateout
. The statein
array
would normally be generated and recycled from the stateout
of
previous calls to lteDLSCHDecode
as
part of a sequence of HARQ transmissions.
trblkout
is the output parameter containing
the decoded information bits. It is either a single vector or a cell
array containing one or two vectors, depending on the class and dimensionality
of cwin
.
blkcrc
is an output array, one or two elements,
containing the result of the type-24A transport block CRC decoding
for the transport blocks.
stateout
, the final output parameter, is
a one- or two-element structure array containing the internal state
of each transport block decoder. The stateout
array
is normally reapplied via the statein
variable
of subsequent lteDLSCHDecode
function
calls as part of a sequence of HARQ retransmissions.
Examples
Input Arguments
Output Arguments
References
[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
Version History
Introduced in R2014a