lteNPDSCH

Generate encoded NPDSCH symbols

Description

[sym,stateout] = lteNPDSCH(enb,chs,cw) returns sym, a matrix containing the encoded narrowband physical downlink shared channel (NPDSCH) symbols for cell-wide settings enb, channel transmission configuration chs, and codeword cw. The channel encoding process comprises subframe selection, scrambling, symbol modulation, layer mapping, and precoding in accordance with Section 10.2.3 of [1]. The function also returns stateout, a structure containing the encoder state for bundle transmission.

example

[sym,stateout] = lteNPDSCH(___,statein) returns the NPDSCH symbols and encoder state for the initial encoder state specified by statein.

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);
statein = []; 

Generate the NPDSCH symbols for each of the 12 subframes.

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

Input Arguments

collapse all

Cell-wide settings, specified as a structure containing these fields:

NameRequired or OptionalValuesDescriptionData Types
NNCellIDRequiredNonnegative integerNarrowband physical layer cell identity (PCI)double
NSubframeRequiredNonnegative integerSubframe numberdouble
NFrameOptional0 (default), nonnegative integerFrame numberdouble
NBRefPRequired1, 2Number of narrowband reference signal (NRS) antenna ports. To indicate transmission on a single antenna port (port 0) and use minimum mean squared error (MMSE) equalization for reception, specify this field as 1. To indicate transmit diversity and use an orthogonal space frequency block code (OSFBC) decoder for deprecoding, specify this field as 2.double

Data Types: struct

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

NameRequired or OptionalValuesDescriptionDependenciesData Types
NPDSCHDataTypeOptional'NotBCCH', 'SIB1NB', 'BCCHNotSIB1NB'

Type of data carried by the NPDSCH, specified as one of these values:

  • 'NotBCCH' – The NPDSCH is not carrying the broadcast control channel (BCCH).

  • 'SIB1NB' – The NPDSCH is carrying system information block 1 narrowband (SIB1-NB).

  • 'BCCHNotSIB1NB' – The NPDSCH is carrying the BCCH but not SIB1-NB.

char, string
NSFSee Dependencies columnNonnegative integerNumber of subframes to which a codeword is mapped, not including repetitions

  • This field is required when you specify the NPDSCHDataType field as a value other than 'SIB1NB' and return the info output.

  • The lteNPDSCH function sets this field to 8 when you specify the NPDSCHDataType field as 'SIB1NB' and return the info output.

  • If you do not return the info output, the lteNPDSCH function ignores this field.

double
NRepRequiredNonnegative integerNumber of repetitionsdouble
RNTISee Dependencies columnNonnegative integer16-bit radio network temporary identifier (RNTI)

  • This field is required when you specify the NPDSCHDataType field as a value other than 'SIB1NB'.

  • The lteNPDSCH function sets this field to the system information RNTI (SI-RNTI) value of 65535 when you specify the NPDSCHDataType field as 'SIB1NB'.

double
CSIOptional'On' (default), 'Off'Channel state information (CSI). To scale the soft bits by CSI during the equalization process, specify this field as 'On'. Otherwise, specify this field as 'Off'.char, string

Data Types: struct

Codeword to be modulated, specified as a binary column vector.

Data Types: double

Initial encoder state for the transmission of a bundle, specified as a structure containing the fields listed in the stateout output. This argument can be empty only when no information is provided, such as at the first subframe of a bundle.

Data Types: struct

Output Arguments

collapse all

NPDSCH symbols, returned as an N-by-P complex-valued matrix, where 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. This output contains the internal state of each transport block in these fields:

NameValuesDescriptionData Types
SubframeIdxinteger in the interval [0, NSF x NRep – 1]Index of a subframe within a bundle, in zero-based form. The lteNPDSCH function returns this field as the SubframeIdx field of the statein input increased by one. When the input value of SubframeIdx in the statein input reaches its maximum value, the function returns this field as 0. If you do not specify an input value in the statein input, the lteNPDSCH function returns this field as 0. A value of 0 indicates that the transmission has reached the end of a bundle, which the function also indicates by setting the EndOfTx field to 1 (true).double
InitNFrameNonnnegative integer

Frame number at initialization point of scrambling sequence. When the subframe being processed is at the initialization point, this field is equal to the NFrame field of the enb input. Otherwise, the lteNPDSCH function returns this field as one of these values:

  • The value of the InitNFrame field of the statein argument

  • 0 when you do not specify the InitNFrame field of the statein input

double
InitNSubrameNonnnegative integer

Subframe number at initialization point. When the subframe being processed is at the initialization point, this field is equal to the NSubframe field of the enb input. Otherwise, the lteNPDSCH function returns this field as one of these values:

  • The value of the InitNSubframe field of the statein argument

  • The NSubframe field of the enb input when you do not specify the InitNSubframe field of the statein input

double
CWBufferNSF-by-1 binary vectorBuffer to store the soft-combined log-likelihood ratio (LLR) bits after codeword descrambling. The length of this field is the same as the length of the codeword, cw. At the beginning of a bundle, the lteNPDSCH function resets this field.double
CWSFCountNSF-by-1 integer-valued vectorRepetition counter. The length of this field is the same as the length of the codeword, cw. Each element of this field indicates how many repetitions of the corresponding element of cw the CWBuffer field has recovered. At the beginning of a bundle, the lteNPDSCH function resets this field.double
EndOfCWLogical 1 (true) or 0 (false)Codeword receipt indicator. The lteNPDSCH function returns this field as 1 (true) when the entire codeword has been received, that is, when each element of the CWSFCount field is as least 1. At the beginning of a bundle, the lteNPDSCH function resets this field.logical
EndOfTxLogical 1 (true) or 0 (false)End of bundle indicator. The lteNPDSCH function returns this field as 1 (true) when the transmission reaches the end of a bundle. Otherwise, the lteNPDSCH function returns this field as 0 (false). At the beginning of a bundle, the lteNPDSCH function resets this field.logical

Data Types: struct

More About

collapse all

Bundle

A bundle in the medium access control (MAC) layer refers to the repeated transmissions of a transport block.

For more information, see Section 5.3.2.1 of [2]

Tips

To use this function for transmission of a bundle, follow these steps:

  1. Call the lteNPDSCH function, optionally specifying the initial encoder state using the statein input; the stateout output represents the first transmission of the transport block.

  2. Call the lteNPDSCH function again, specifying the statein input as the stateout output returned by the previous call to the function.

  3. Repeat step 2 until the lteNPDSCH function returns the EndOfTx field of the stateout output as 1 (true), indicating the end of the bundle.

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: https://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: https://www.3gpp.org.

Introduced in R2018a