nrULSCHDecoder
Apply UL-SCH decoder processing chain
Description
The nrULSCHDecoder
System object™ applies the uplink shared channel (UL-SCH) decoder processing chain to the soft
bits corresponding to one or two UL-SCH-encoded transport blocks. The UL-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
UL-SCH encoding process specified in these sections of TS 38.212 [1]:
Sections 6.2.1: Transport block CRC attachment
Sections 6.2.2: LDPC base graph selection
Sections 6.2.3: Code block segmentation and code block CRC attachment
Sections 6.2.4: Channel coding of UL-SCH
Sections 6.2.5: Rate matching
Sections 6.2.6: Code block concatenation
To apply the UL-SCH decoder processing chain:
Create the
nrULSCHDecoder
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 UL-SCH
decoder System object.decUL
= nrULSCHDecoder
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.decUL
= nrULSCHDecoder(Name,Value
)
Example: For example, nrULSCHDecoder('MultipleHARQProcesses',true)
creates the object and enables multiple hybrid automatic repeat-request (HARQ)
processes.
Properties
Usage
Syntax
Description
specifies the HARQ process number trblk
= decUL(___,harqID
)harqID
used with the current
transport block 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
] = decUL(___,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] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
[3] Gallager, Robert G. Low-Density Parity-Check Codes, Cambridge, MA, MIT Press, 1963.
[4] Hocevar, D.E. "A reduced complexity decoder architecture via layered decoding of LDPC codes." In IEEE Workshop on Signal Processing Systems, 2004. SIPS 2004. doi: 10.1109/SIPS.2004.1363033
[5] 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