Low-density parity-check (LDPC) rate matching
returns the rate-matched output of length
out = nrRateMatchLDPC(
outlen for input data matrix
in. The input
rv is the redundancy version,
mod is the modulation type, and
nLayers is the
number of transmission layers. The internal buffer used for the soft input has no size
nrRateMatchLDPC includes the stages of bit selection and interleaving
defined for LDPC-encoded data and code block concatenation, as specified in TS 38.212
Sections 5.4.2 and 5.5 .
Perform LDPC Rate Matching
Create input data corresponding to two LDPC-encoded code blocks of length 3960.
encoded = ones(3960,2);
Perform LDPC rate matching of the two code blocks to a vector of length 8000. Use single transmission layer with QPSK modulation and zero redundancy version.
rv = 0; mod = 'QPSK'; nLayers = 1; outlen = 8000; ratematched = nrRateMatchLDPC(encoded,outlen,rv,mod,nLayers); size(ratematched)
ans = 1×2 8000 1
Plot Output Locations in LDPC Rate-Matched Code Blocks
Create LDPC-encoded input data consisting of integer ramps in separate code blocks. Perform LDPC rate matching of the code blocks to a vector of length 3000. Use single transmission layer with QPSK modulation and zero redundancy version. Plot the locations of the rate-matched output data.
encoded = [0 1000 2000] + (1:66*10)'; rv = 0; mod = 'QPSK'; nLayers = 1; outlen = 3000; out = nrRateMatchLDPC(encoded,outlen,rv,mod,nLayers); plot(out,'.-')
in — LDPC-encoded input data
LDPC-encoded input data, specified as a matrix. Each column of
in is a codeword. The number of columns in the input argument
in is equal to the number of scheduled code blocks in a transport
block. Each column is rate-matched separately, and the results are concatenated in
outlen — Length of output vector
Length of the rate-matched and concatenated output vector, specified as a positive
outlen is the number of coded bits available for
transmission in the transport block, as specified in TS 38.212 Section 22.214.171.124 .
The modulation scheme
mod determines the modulation order (number of bits used per modulation symbol). If
outlen is not a multiple of
nLayers × , the function sets the length of the output vector to the next
nLayers × .
rv — Redundancy version
integer from 0 to 3
Redundancy version, specified as an integer from 0 to 3.
mod — Modulation scheme
Modulation scheme, specified as
'1024QAM'. This modulation scheme determines the modulation type
of the codeword and the number of bits used per modulation symbol.
|Modulation Scheme||Number of Bits Per Symbol|
nLayers — Number of transmission layers
integer from 1 to 4
Number of transmission layers associated with the transport block, specified as an integer from 1 to 4.
Nref — Limited buffer rate matching
Limited buffer rate matching, specified as a positive integer.
Nref is defined in TS 38.212 Section 126.96.36.199.
out — Rate-matched and concatenated code blocks for transport block
Rate-matched and concatenated code blocks for a transport block, returned as a
vector of length
 3GPP TS 38.212. “NR; Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version HistoryIntroduced in R2018b
R2023a: Release 17 updates for 1024QAM
The function now supports 1024QAM modulation.