Documentation

lteULDescramble

PUSCH descrambling

Syntax

  • out = lteULDescramble(ue,chs,in)
  • out = lteULDescramble(ue,in)
    example
  • out = lteULDescramble(in,nsubframe,cellid,rnti)

Description

out = lteULDescramble(ue,chs,in) performs PUSCH descrambling of the soft bit vector, in, or cell array in case of two codewords, according to UE-specific settings in the ue structure and UL-SCH related parameters in the chs structure. It performs PUSCH descrambling to undo the processing described in TS 36.212, Section 5.3.1 [1] and returns a soft bit vector or cell array of vectors, out. This syntax supports the descrambling of control information bits if they are present in the soft bits in in conjunction with information bits. The descrambling of the control information bits is done by establishing the correct locations of placeholder bits with the help of UL-SCH-related parameters present in chs. The descrambler skips the ‘x' placeholder bits to undo the processing defined in TS 36.212, Section 5.3.1 [1].

Multiple codewords can be parameterized by two different forms of the chs structure. Each codeword can be defined by separate elements of a 1-by-2 structure array, or the codeword parameters can be combined together in the fields of a single scalar, 1-by-1, structure. In the latter case, any scalar field values apply to both codewords and a scalar NLayers is the total number. For further details, see UL-SCH Parameterization.

example

out = lteULDescramble(ue,in) performs PUSCH descrambling of the soft bit input, in, but takes only the UE-specific settings in the ue structure. The in input should contain only the scrambled data bits resulting in descrambling of transport data only. The ue structure must include the NCellID, NSubframe, and RNTI fields.

out = lteULDescramble(in,nsubframe,cellid,rnti) performs PUSCH descrambling of soft bits, in, for subframe number, nsubframe, cell identity, cellid, and specified radio network temporary identifier (RNTI), rnti. This syntax performs only block descrambling and expects the input, in, to contain only the scrambled data bits. If the in vector contains placeholder bits, they are not descrambled correctly because the placeholder bits are not skipped during the descrambling process. Thus, this function syntax descrambles only the transport data bits.

Examples

collapse all

Scramble and Descramble PUSCH Vector

Perform scrambling and descrambling of vector in. The scrambled bits are modulated to QPSK symbols. Noise is added to these symbols, which are then demodulated to produce soft bits. These soft bits are finally descrambled.

in = ones(10,1);
ue = struct('NCellID',100,'NSubframe',0,'RNTI',61);
scrBits = lteULScramble(ue,in);
txSymbols = lteSymbolModulate(scrBits,'QPSK');
noise = 0.01*complex(randn(size(txSymbols)),randn(size(txSymbols)));
rxSymbols = txSymbols + noise;
softBits = lteSymbolDemodulate(rxSymbols,'QPSK','Soft');
descram = lteULDescramble(ue,softBits)
descram =

    0.7125
    0.7202
    0.7254
    0.7028
    0.6845
    0.7037
    0.7157
    0.7429
    0.7039
    0.6794

Input Arguments

collapse all

ue — UE-specific settingsscalar structure

UE-specific settings, specified as a scalar structure that can contain the following fields.

NCellID — Physical layer cell identityscalar integer

Physical layer cell identity, specified as a scalar integer.

Data Types: double

NSubframe — Subframe numberscalar integer

Subframe number, specified as a scalar integer.

Data Types: double

RNTI — Radio network temporary identifiernumeric scalar

Radio network temporary identifier, 16-bit, specified as a numeric scalar.

Data Types: double

CyclicPrefixUL — Cyclic prefix length'Normal' (default) | optional | 'Extended'

Cyclic prefix length, specified as a string.

Data Types: char

Shortened — Shorten subframe flag0 (default) | optional | 1

Shorten subframe flag, specified as 0 or 1. If 1, the last symbol of the subframe is not used and rate matching is adjusted accordingly. This setting is required for subframes with possible SRS transmission.

Data Types: logical | double

Data Types: struct

chs — UL-SCH channel-specific settingsstructure

UL-SCH channel-specific settings, specified as a structure that can contain the following fields.

Modulation — Modulation scheme associated with each transport block'QPSK' | '16QAM' | '64QAM'

Modulation scheme associated with each transport block, specified as a string.

Data Types: char

NLayers — Number of transmission layers1 (default) | optional | 2 | 3 | 4

Number of transmission layers, total or per codeword, specified as 1, 2, 3, or 4.

Data Types: double

ORI — Number of uncoded RI bits0 (default) | optional | nonnegative scalar integer

Number of uncoded RI bits, specified as a nonnegative scalar integer.

Data Types: double

OACK — Number of uncoded HARQ-ACK bits0 (default) | optional | nonnegative scalar integer

Number of uncoded HARQ-ACK bits, specified as a nonnegative scalar integer.

Data Types: double

QdRI — Number of coded RI symbols in UL-SCH0 (default) | optional | nonnegative scalar integer

Number of coded RI symbols in UL-SCH, specified as a nonnegative scalar integer. (Q'_RI)

Data Types: double

QdACK — Number of coded HARQ-ACK symbols in UL-SCH0 (default) | optional | nonnegative scalar integer

Number of coded HARQ-ACK symbols in UL-SCH, specified as a nonnegative scalar integer. (Q'_ACK)

Data Types: double

Data Types: struct

in — Soft bit input datanumeric column vector | cell array of numeric column vectors

Soft bit input data, specified as a numeric column vector or cell array of numeric column vectors. This argument contains one or two vectors corresponding to the number of codewords to be scrambled.

Data Types: double | cell

nsubframe — Subframe numberscalar integer

Subframe number, specified as a scalar integer.

Data Types: double

cellid — Physical layer cell identityscalar integer

Physical layer cell identity, specified as a scalar integer.

Data Types: double

rnti — Radio network temporary identifiernumeric scalar

Radio network temporary identifier, 16-bit, specified as a numeric scalar.

Data Types: double

Output Arguments

collapse all

out — PUSCH descrambled output bitsnumeric column vector | cell array of numeric column vectors

PUSCH descrambled output bits, returned as a numeric column vector or cell array of numeric column vectors.

Data Types: double

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.

Introduced in R2014a

Was this topic helpful?