Documentation

ltePUSCHDRS

PUSCH demodulation reference signal

Syntax

  • [antseq,info,layerseq] = ltePUSCHDRS(ue,chs)
    example

Description

example

[antseq,info,layerseq] = ltePUSCHDRS(ue,chs) returns the physical uplink shared channel (PUSCH) transmission demodulation reference signal (DM-RS) antenna sequence values,antseq, the layer sequence values, layerseq, and the information structure, info, given input structures containing UE-specific settings, and the channel transmission configuration settings.

When the number of transmission antennas is greater than one, the DM-RS is precoded using spatial multiplexing.

For short base reference sequences, such as those used with PUSCH allocations of 1 or 2 PRBs, and when chs.PRBSet is empty, Zadoff-Chu sequences are not used. In this case, RootSeq and NZC are set to –1. If antseq is empty, such as when the input PRBSet is empty, the info structure contains all fields, but each field is either empty for vector fields or –1 for scalar fields.

Examples

collapse all

Generate PUSCH DM-RS

Generated the PUSCH Demodulation Reference Signal (DM-RS) values for UE-specific settings.

Initialize UE specific (ue) and channel (chs) configuration structures. Generate PUSCH DM-RS values.

ue.NCellID = 1;
ue.NSubframe = 0;
ue.CyclicPrefixUL = 'Normal';
ue.Hopping = 'Off';
ue.SeqGroup = 0;
ue.CyclicShift = 0;
ue.NTxAnts = 1;

chs.PRBSet = (0:5).';
chs.NLayers = 1;
chs.OrthCover = 'Off';
chs.DynCyclicShift = 0;

puschSeq = ltePUSCHDRS(ue,chs);
puschSeq(1:10)
ans =

   1.0000 + 0.0000i
  -0.0810 + 0.9967i
  -0.9610 + 0.2766i
  -0.8839 - 0.4677i
  -0.6886 - 0.7251i
  -0.7692 - 0.6390i
  -0.9912 - 0.1324i
  -0.6447 + 0.7645i
   0.6779 + 0.7352i
   0.4872 - 0.8733i

Generate PUSCH DM-RS Using Alternate IDs

Demonstrate Uplink Release 11 coordinated multipoint (CoMP) operation. To avoid intercell interference, use a virtual cell identity and a distinct DM-RS cyclic shift hopping identity for a potentially interfering UE in a neighboring cell.

Confige the UE of interest: UE 1 in cell 1.

ue1.NCellID = 1;
ue1.NSubframe = 0;
ue1.CyclicPrefixUL = 'Normal';
ue1.NTxAnts = 1;
ue1.Hopping = 'Off';
ue1.SeqGroup = 0;
ue1.CyclicShift = 0;

chs1.PRBSet = (0:5).';
chs1.NLayers = 1;
chs1.DynCyclicShift = 0;
chs1.OrthCover = 'Off';

Configure the interferer: UE 2 in cell 2.

ue2.NCellID = 2;
ue2.NSubframe = 0;
ue2.CyclicPrefixUL = 'Normal';
ue2.NTxAnts = 1;
ue2.Hopping = 'Off';
ue2.SeqGroup = 0;
ue2.CyclicShift = 0;

chs2.PRBSet = (0:5).';
chs2.NLayers = 1;
chs2.DynCyclicShift = 0;
chs2.OrthCover = 'Off';

Measure the interference between the DM-RS signals.

interferenceNoCoMP = abs(sum(ltePUSCHDRS(ue1,chs1).*conj(ltePUSCHDRS(ue2,chs2))));

Reconfigure for CoMP operation. Use a virtual cell identity equal to the cell identity for the UE of interest. Configure the two UEs with different cyclic shift hopping patterns using the DM-RS identity parameter.

ue1.NDMRSID = 1;
ue2.NPUSCHID = ue1.NCellID;
ue2.NDMRSID = 2;

Measure the interference between the DM-RS signals when using CoMP.

interferenceUsingCoMP = abs(sum(ltePUSCHDRS(ue1,chs1).*conj(ltePUSCHDRS(ue2,chs2))));

Compare the correlations between the DM-RS signals for the two UEs with and without CoMP, interferenceUsingCoMP and interferenceNoCoMP, respectively.

interferenceUsingCoMP
interferenceNoCoMP
interferenceUsingCoMP =

   1.0426e-13


interferenceNoCoMP =

   21.3188

With CoMP, the interference is reduced to effectively zero.

Input Arguments

collapse all

ue — UE-specific settingsstructure

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

Parameter FieldRequired or OptionalValuesDescription
NCellIDRequired

Nonnegative integer

Physical layer cell identity.

NSubframeRequired

Nonnegative integer

Subframe number.

CyclicPrefixULOptional

'Normal' (default), 'Extended'

Cyclic prefix length for uplink.

NTxAntsOptional

1 (default), 2, 4

Number of transmission antennas.

HoppingOptional

'Off' (default), 'Group', or 'Sequence'

Frequency hopping method.

SeqGroupOptional

0 (default), integer from 0 to 29

PUSCH sequence group assignment (ΔSS).

Used only if NDMRSID or NPUSCHID is absent.
CyclicShiftOptional

0 (default), integer from 0 to 7

Number of cyclic shifts used for PUSCH DM-RS (yields nDMRS(1)).

NPUSCHIDOptional

0 (default), nonnegative scalar integer from 0 to 509

PUSCH virtual cell identity. If this field is not present, NCellID is used for group hopping sequence-shift pattern initialization.

See Note 1.

NDMRSIDOptional

0 (default), nonnegative scalar integer from 0 to 509

DM-RS identity for cyclic shift hopping (nIDcsh_DMRS). If this field is not present, NCellID is used for cyclic shift hopping initialization.

See Note 1.

Note:
  1. The pseudorandom sequence generator for cyclic shift hopping is initialized according to NDMRSID, if present — otherwise it is initialized according to the cell identity NCellID and the sequence group assignment SeqGroup. Similarly, the sequence-shift pattern for group hopping is initialized according to NPUSCHID, if present — otherwise it is initialized according to NCellID and SeqGroup.

Data Types: struct

chs — Channel transmission configuration structure

PUSCH channel configuration, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
PRBSetRequired

Integer column vector or two-column matrix

Physical resource block set, specified as an integer column vector or two-column matrix. This parameter field contains the zero-based physical resource block (PRB) indices corresponding to the slot-wise resource allocations for this PUSCH.

If PRBSet is a column vector, the resource allocation is the same in both slots of the subframe. To specify differing PRBs for each slot in a subframe, use a two-column matrix. The PRB indices are zero-based.

NLayersOptional

1 (default), 2, 3, 4

Number of transmission layers.

DynCyclicShiftOptional

0 (default), integer from 0 to 7

Cyclic shift for DM-RS (yields nDMRS(2)).

OrthoCoverOptional

'Off' (default), 'On'

Applies ('On'), or does not apply ('Off'), orthogonal cover sequence w (Activate-DMRS-with OCC).

The following field is applicable only when ue.NTxAnts is set to 2 or 4.
PMIOptional

0 (default), integer from 0 to 23

Scalar precoder matrix indication (PMI) used during precoding of the DM-RS reference symbols.

Data Types: struct

Output Arguments

collapse all

antseq — PUSCH DM-RS sequenceM-by-P matrix

PUSCH DM-RS sequence values, returned as an M-by-P complex-valued matrix. M is the number of DM-RS symbols per antenna, and P is the number of transmission antennas. When P is greater than one, the DM-RS is precoded using spatial multiplexing.

Data Types: double
Complex Number Support: Yes

info — Information about PUSCH DM-RSstructure array

Information about PUSCH DM-RS, returned as a structure array, with one element per transmission layer, having the following fields.

Alpha — Reference signal cyclic shiftrow vector

Reference signal cyclic shift for each slot, returned as a row vector. (alpha)

Data Types: double

SeqGroup — Base sequence group numberrow vector

Base sequence group number for each slot, returned as a row vector. (u)

Data Types: double

SeqIdx — Base sequence numberrow vector

Base sequence number for each slot, returned as a row vector. (v)

Data Types: double

RootSeq — Root Zadoff-Chu sequence index row vector

Root Zadoff-Chu sequence index for each slot, returned as a row vector. (q)

Data Types: double

NZC — Zadoff-Chu sequence lengthinteger

Zadoff-Chu sequence length, returned as an integer. (NZCRS)

Data Types: double

N1DMRS — Component of reference signal cyclic shiftinteger

Component of the reference signal cyclic shift signaled from higher layers, returned as an integer. (nDMRS(1))

Data Types: double

N2DMRS — Component of the reference signal cyclic shiftinteger

Component of the reference signal cyclic shift signaled from the most recent DCI format 0 message, returned as an integer. (nDMRS(2))

Data Types: double

NPRS — Cell-specific component of reference signal cyclic shiftrow vector

Cell-specific component of the reference signal cyclic shift for each slot, returned as a row vector. (nPRS)

Data Types: double

OrthSeq — Orthogonal cover valuerow vector

Orthogonal cover value for each slot, specified as a row vector. (w)

Data Types: double

Data Types: struct

layerseq — PUSCH DM-RS sequence by layersM-by-NU matrix

PUSCH DM-RS sequence by layers, returned as an M-by-NU complex matrix. M is the number of DM-RS symbols per layer, and NU is the number of transmission layers. If the number of transmission antennas is greater than one, the DM-RS is precoded using spatial multiplexing.

Data Types: double
Complex Number Support: Yes

Introduced in R2013b

Was this topic helpful?