lteNPDSCH

NB-IoT physical downlink shared channel

Syntax

[sym,stateout] = lteNPDSCH(enb,chs,cw)
[sym,stateout] = lteNPDSCH(enb,chs,cw,statein)

Description

[sym,stateout] = lteNPDSCH(enb,chs,cw) returns a matrix containing the NB-IoT physical downlink shared channel (NPDSCH) [1] complex symbols in a subframe for cell wide settings, enb, channel transmission configuration, chs, and the codeword contained in cw. The channel processing includes the stages of subframe selection, scrambling, symbol modulation, layer mapping, and precoding. The function also returns a structure, stateout, containing the encoding state for the transmission of the repetitions for a transport block.

example

[sym,stateout] = lteNPDSCH(enb,chs,cw,statein) specifies the initial decoder state in the statein structure. The full repetitions for a transport block are referred to as a bundle in the MAC layer [2].

Examples

collapse all

Generate the NPDSCH symbols subframe by subframe for a bundle of 12 subframes.

Specify the cell-wide settings and channel transmission configuration in parameter structures enb and chs.

enb.NNCellID = 0;
enb.NBRefP = 1;
enb.NFrame = 1;
chs.NSF = 3;
chs.NRep = 4;
chs.RNTI = 0;
chs.NPDSCHDataType = 'NotBCCH';

Set the output codeword length to 960 and generate the codeword bits. Do not provide the encoder state at the start of the bundle.

cwLen = 960;
cw = ones(cwLen,1);
estate = []; 

Generate the NPDSCH symbols for each of the 12 subframes.

for subframeIdx = 0:(chs.NSF*chs.NRep-1)
    enb.NSubframe = subframeIdx;
    [txsym,estate] = lteNPDSCH(enb,chs,cw,estate);
end
estate.EndOfTx
ans = logical
   1

Input Arguments

collapse all

eNodeB cell-wide settings, specified as a structure containing these parameter fields.

Parameter FieldRequired or OptionalValuesDescription
NNCellIDRequired

Nonnegative integer

NB-IoT physical layer cell identity

NSubframeRequired

Nonnegative integer

Subframe number

NFrameOptional

0 (default),

nonnegative integer

Frame number

NBRefPRequired

1, 2

Number of narrowband reference signal antenna ports

Channel-specific transmission configuration, specified as a structure that can contain the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
NPDSCHDataTypeOptional

'NotBCCH' (default),

'SIB1NB',

'BCCHNotSIB1NB'

Type of the data carried by NPDSCH

NSFRequired (See note)

Integer

Number of subframes that a codeword is mapped to (not including repetitions)

NRepRequired

Integer

Number of repetitions

RNTIRequired (See note)

Integer

Radio network temporary identifier (16-bit)

Note

  • NSF and RNTI are required only when NPDSCHDataType is not equal to 'SIB1NB'.

  • If NPDSCHDataType = 'SIB1NB', then NSF is set to 8 and RNTI is set to 65535 (SI-RNTI).

Codeword, specified as a vector of bit values required to modulate one codeword.

Input encoder state for the transmission of a bundle, specified as a structure. statein can be empty only when no information is provided, such as, at the first subframe of a bundle. The statein structure is normally generated and recycled from the stateout of previous calls to lteNPDSCH, as part of a sequence of bundle transmission.

Data Types: struct

Output Arguments

collapse all

NPDSCH complex symbols, returned as a N-by-P complex matrix. N is the number of modulation symbols for one antenna port, and P is the number of transmission antennas.

Data Types: double
Complex Number Support: Yes

Output encoder state, returned as a structure. stateout contains the internal state of each transport block in the following fields:

Parameter FieldValuesDescription
SubframeIdx

0 (default), 1, 2, …, chs.NSF×chs.NRep–1

0-based index of a subframe in a bundle

InitNFrame

Integer

Frame number at the initialization point of the scrambling sequence

InitNSubframe

Integer

Subframe number at the initialization point of the scrambling sequence

EndOfTx

false, true

Indicator that the transmission has reached the end of a bundle

The output SubframeIdx in stateout is equal to its input in statein increased by 1. When SubframeIdx reaches the maximum value, it wraps around to 0. If inputs do not exist in statein, the default input is 0. An output value of 0 indicates that the transmission has reached the end of a bundle, so the output EndOfTx is true.

When the subframe under processing is at the initialization point of the scrambling sequence, InitNSubframe is equal to enb.NSubframe, and InitNFrame is equal to enb.NFrame. If the subframe is not at the initialization point, InitNSubframe and InitNFrame are equal to their respective inputs in statein, if the inputs exist. If the inputs do not exist, InitNSubframe is equal to enb.NSubframe and InitNFrame is 0.

The stateout structure is normally reapplied via the statein structure of subsequent lteNPDSCH function calls as part of the bundle transmission.

Data Types: struct

References

[1] 3GPP TS 36.211. “Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

[2] 3GPP TS 36.321. “Medium Access Control (MAC) protocol specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

Introduced in R2018a