Main Content

lteNULSCH

Generate NB-IoT UL-SCH codeword

Description

example

cw = lteNULSCH(chs,outLen,trBlkIn) generates cw, an NB-IoT uplink shared channel (UL-SCH) codeword of length outLen, by processing trBlkIn, the input transport block (data) or uplink control information (UCI), for channel transmission configuration settings chs. Use this syntax for NB-IoT UL-SCH data or UCI processing.

NB-IoT UL-SCH data processing comprises type-24A cyclic redundancy check (CRC) attachment, turbo encoding, rate matching to outLen, and interleaving, in accordance with section 6.3.2 of [1].

NB-IoT UL-SCH UCI processing comprises mapping control information bit trBlkIn to a 16-bit codeword cw in accordance with section 6.3.3 of [1].

example

cw = lteNULSCH(trBlkIn) generates cw by mapping control information bit trBlkIn in accordance with section 6.3.3 of [1]. Use this syntax for NB-IoT UL-SCH UCI processing.

Examples

collapse all

Generate a codeword by applying NB-IoT UL-SCH data processing to a transport block.

Configure UE-specific settings.

ue = struct('NBULSubcarrierSpacing','15kHz');

Specify a channel transmission configuration.

chs =  struct('NPUSCHFormat','Data','NULSlots',16,'NBULSubcarrierSet',6, ...
    'Modulation','BPSK','NRU',2,'RV',0);

Specify the codeword length and create a transport block for encoding.

[~,info] = lteNPUSCHIndices(ue,chs);
outLen = info.G;
trBlkIn = randi([0,1],144,1);

Generate the UL-SCH codeword.

cw = lteNULSCH(chs,outLen,trBlkIn);

Generate a codeword by applying UCI processing to a control information bit.

Create a control information bit for encoding.

trBlkIn = 1;

Generate and display the NB-IoT UL-SCH codeword.

cw = lteNULSCH(trBlkIn);
disp(cw')
   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1

Input Arguments

collapse all

Channel transmission configuration, specified as a structure containing these fields.

FieldValuesDescriptionData Types
NPUSCHFormat'Data' (default), 'Control'

Narrowband physical uplink shared channel (NPUSCH) format

To indicate that the NPUSCH carries narrowband uplink shared channel (UL-SCH) data, specify this field as 'Data'. To indicate that the NPUSCH carries uplink control information, specify this field as 'Control'.

char, string
NRU1, 2, 3, 4, 5, 6, 8, 10Number of resource units (RUs)double
NULSlots2, 4, 8, 16Number of slots per RUdouble
Modulation'BPSK', 'QPSK'

Modulation type, specified as one of these values:

To enable binary phase-shift keying (BPSK), specify this field as 'BPSK'. To enable quadrature phase-shift keying (QPSK), specify this field as 'QPSK'.

char, string
RV0, 2Redundancy version indicatordouble

Data Types: struct

Codeword length, specified as a positive integer.

When you specify the NPUSCHFormat field of the chs input as 'Data', specify this input as the NPUSCH capacity for the associated codeword. The lteNULSCH function generates the cw output as a vector of this length by rate matching the encoded transport block to the specified value.

When you specify the NPUSCHFormat field of the chs input as 'Control', the lteNULSCH function sets this input to 16.

Data Types: double

Transport block (data) or UCI, specified as one of these values.

NPUSCH FormattrBlkInValue
DataTransport blockBinary-valued column vector
ControlUCI0, 1

Data Types: double

Output Arguments

collapse all

NB-IoT UL-SCH codeword, returned as a binary-valued column vector of length outLen.

Data Types: int8

References

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

Introduced in R2020a