nrDLSCHDecoder
Apply DL-SCH decoder processing chain
Description
The nrDLSCHDecoder
System object™ applies the downlink shared channel (DL-SCH) decoder processing chain to the
soft bits corresponding to one or two DL-SCH-encoded transport blocks. The DL-SCH decoding
process consists of rate recovery, low-density parity-check (LDPC) decoding, desegmentation,
and cyclic redundancy check (CRC) decoding. The object implements the inverse operation of the
DL-SCH encoding process specified in TS 38.212 Section 7.2 [1].
To apply the DL-SCH decoder processing chain:
Create the
nrDLSCHDecoder
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Description
creates a DL-SCH
decoder System object.decDL
= nrDLSCHDecoder
creates the object with properties set by using one or more name-value pairs. Enclose the
property name inside quotes, followed by the specified value. Unspecified properties take
default values.decDL
= nrDLSCHDecoder(Name,Value
)
Example: For example, nrDLSCHDecoder('MultipleHARQProcesses',true)
creates the object and enables multiple hybrid automatic repeat-request (HARQ)
processes.
Properties
Usage
Syntax
Description
specifies the HARQ process number trblk
= decDL(___,harqID
)harqID
used with the current
transmission in addition to the input arguments in the previous syntax. To use this
syntax, set the MultipleHARQProcesses
property to true
. When
the property is set to false
, the object uses HARQ process number
0.
When the object receives codewords with different redundancy version for an individual HARQ process, the object uses soft buffer state retention to enable soft combining of retransmissions. When you enable multiple HARQ processes, the object maintains independent buffers for each process.
Upon successful decoding of the input, the object automatically resets the soft buffer
for a HARQ process. To reset the soft buffer manually, call the resetSoftBuffer
function.
[
specifies the CBG transmission information used with the current transmission in addition
to the input arguments in any of the previous syntaxes. The object returns also the CRC
error flags per CBGs, trblk
,blkerr
,cbgerr
] = decDL(___,cbgti
)cbgerr
. A value of 1
in
cbgerr
indicates that the corresponding CBG in the corresponding
transport block failed the CRC check in the current transmission. The CRC pass is assumed
for CBGs not transmitted in the current transmission. To use this syntax, set the
CBGTransmission
property to true
. (since R2025a)
Input Arguments
Output Arguments
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
Examples
Algorithms
References
[1] 3GPP TS 38.212. “NR; Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
[2] Gallager, Robert G. Low-Density Parity-Check Codes, Cambridge, MA, MIT Press, 1963.
[3] Hocevar, D.E. "A reduced complexity decoder architecture via layered decoding of LDPC codes." In IEEE Workshop on Signal Processing Systems, 2004. SIPS 2004. dois: 10.1109/SIPS.2004.1363033
[4] Chen, Jinghu, R.M. Tanner, C. Jones, and Yan Li. "Improved min-sum decoding algorithms for irregular LDPC codes." In Proceedings. International Symposium on Information Theory, 2005. ISIT 2005. doi: 10.1109/ISIT.2005.1523374