Documentation

ltePUCCH3DRS

PUCCH format 3 demodulation reference signal

Syntax

  • seq = ltePUCCH3DRS(ue,chs)
    example
  • [seq,info] = ltePUCCH3DRS(ue,chs)
    example

Description

example

seq = ltePUCCH3DRS(ue,chs) returns a matrix containing demodulation reference signal (DRS) associated with PUCCH format 3 transmission given structures containing the UE-specific settings, and the channel transmission configuration settings.

example

[seq,info] = ltePUCCH3DRS(ue,chs) also returns a PUCCH information structure array, info.

Examples

collapse all

Generate PUCCH Format 3 DM-RS

Generate the PUCCH Format 3 Demodulation Reference Signal (DM-RS) values for UE-specific settings.

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

ue.NCellID = 1;
ue.NSubframe = 0;
ue.CyclicPrefixUL = 'Normal';
ue.Hopping = 'Off';
ue.Shortened = 0;

chs.ResourceIdx = 0;
chs.CyclicShifts = 0;

pucch3RefSig = ltePUCCH3DRS(ue,chs);
pucch3RefSig(1:4)
ans =

   0.7071 + 0.7071i
   0.2588 + 0.9659i
  -0.9659 - 0.2588i
  -0.7071 - 0.7071i

Generate PUCCH Format 3 DM-RS Using Virtual Cell ID

Demonstrate Uplink Release 11 cooordinated multipoint (CoMP) operation. Intercell interference can be avoided by using a virtual cell identity for a potentially interfering UE in a neighboring cell.

Configuration for UE of interest, UE 1 in cell 1.

ue1.NCellID = 1;
ue1.NSubframe = 0;
ue1.CyclicPrefixUL = 'Normal';
ue1.Hopping = 'Off';
ue1.Shortened = 0;

chs1.ResourceIdx = 0;

Configuration for interferer, UE 2 in cell 2.

ue2.NCellID = 2;
ue2.NSubframe = 0;
ue2.CyclicPrefixUL = 'Normal';
ue2.Hopping = 'Off';
ue2.Shortened = 0;

chs2.ResourceIdx = 1;

Measure the interference between the DM-RS signals.

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

    6.3246

Reconfigure interferer for CoMP operation: use virtual cell identity equal to the cell identity for the UE of interest.

ue2.NPUCCHID = ue1.NCellID;

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

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

   9.0263e-15

Comparing the correlations between the DM-RS signals for two UEs with and without CoMP, interferenceUsingCoMP and interferenceNoCoMP respectively. Using CoMP, the interference is reduced to effectively zero.

Generate PUCCH Format 3 DM-RS for Two Antennas

Generate the PUCCH format 3 DM-RS sequences for two transmit antenna paths. Display the information structure.

Initialize UE-specific and channel configuration structures. Provide an empty vector for the ack, indicating there are no HARQ bits for this PUCCH transmision. Generate PUCCH 3 DM-RS and information outputs.

ue.NCellID = 1;
ue.NSubframe = 0;
ue.CyclicPrefixUL = 'Normal';
ue.Hopping = 'Off';
ue.Shortened = 0;

chs.ResourceIdx = [0 3];

ack = [];

[drsSeq,info] = ltePUCCH3DRS(ue,chs,ack);

Because there are two antennas, the DM-RS sequences are output as a two-column vector and the info output structure contains two elements. View ind and the size of info to confirm this.

drsSeq(1:6,:)
size(info)
ans =

   0.5000 + 0.5000i   0.5000 + 0.5000i
   0.1830 + 0.6830i   0.5000 - 0.5000i
  -0.6830 - 0.1830i   0.5000 - 0.5000i
  -0.5000 - 0.5000i  -0.5000 - 0.5000i
  -0.1830 - 0.6830i  -0.5000 + 0.5000i
  -0.1830 + 0.6830i  -0.5000 - 0.5000i


ans =

     1     2

View the contents of the two info structure elements.

info(1)
info(2)
ans = 

               Alpha: [0.5236 2.6180 2.6180 3.1416]
            SeqGroup: [1 1]
              SeqIdx: [0 0]
        NResourceIdx: [0 0]
    NCellCyclicShift: [193 89 101 234]
          OrthSeqIdx: [0 0]
             Symbols: [1x4 double]
             OrthSeq: [2x2 double]
           NSymbSlot: [5 5]


ans = 

               Alpha: [4.7124 0.5236 1.5708 2.0944]
            SeqGroup: [1 1]
              SeqIdx: [0 0]
        NResourceIdx: [8 10]
    NCellCyclicShift: [193 89 101 234]
          OrthSeqIdx: [3 4]
             Symbols: [1x4 double]
             OrthSeq: [2x2 double]
           NSymbSlot: [5 5]

Input Arguments

collapse all

ue — UE-specific settingsstructure

UE-specific cell-wide settings, specified as a structure containing the following fields.

Parameter FieldRequired or OptionalValuesDescription
NCellIDRequired

Integer from 0 to 503

Physical layer cell identity.

NSubframeRequired

Nonnegative integer

0 (default)

Subframe number.

CyclicPrefixULOptional

'Normal' (default), 'Extended'

Cyclic prefix length

NTxAntsOptional

1 (default), 2, 4

Number of transmission antennas.

HoppingOptional

'Off' (default), 'Group'

Frequency hopping method.

ShortenedOptional

0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If 1, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set Shortened to 1 to maintain a standard compliant configuration.

NPUCCHIDOptionalNCellID (default)

Integer from 0 to 503

PUCCH virtual cell identity. If this field is not present, NCellID is used as the identity.

Data Types: struct

chs — Channel transmission configurationstructure

PUCCH channel settings, specified as a structure containing the following fields.

Parameter FieldRequired or OptionalValuesDescription
ResourceIdxOptional

0 (default), integer from 0 to 549, or vector of integers.

PUCCH resource indices which determine the physical resource blocks, cyclic shift, and orthogonal cover used for transmission (nPUCCH(3)). Define one index for each transmission antenna.

Data Types: struct

Output Arguments

collapse all

seq — PUCCH format 3 DRS valuesnumeric matrix

PUCCH format 3 DRS values, returned as a numeric matrix. The symbols for each antenna are in the columns of seq, with the number of columns determined by the number of PUCCH resource indices specified in chs.ResourceIdx.

info — PUCCH format 3 DRS informationstructure array

PUCCH format 3 DRS information, returned as a structure array with elements corresponding to each transmit antenna and containing these fields.

Alpha — Reference signal cyclic shift for each OFDM symboltwo-column vector

Reference signal cyclic shift for each OFDM symbol, returned as a two-column vector. (α)

SeqGroup — PUCCH base sequence group number for each slottwo-column vector

PUCCH base sequence group number for each slot, returned as two-column vector. (u)

SeqIdx — PUCCH base sequence number for each slottwo-column vector

PUCCH base sequence number for each slot, returned as two-column vector. (v)

NResourceIdx — PUCCH resource indices for each slotvector

PUCCH resource indices for each slot, returned as two-column vector. (n')

NCellCyclicShift — Cell-specific cyclic shift for each OFDM symbolvector

Cell-specific cyclic shift for each OFDM symbol, returned as vector. (ncscell)

OrthSeqIdx — Orthogonal sequence index for each slottwo-column vector

Orthogonal sequence index for each slot, returned as two-column vector. (n¯oc)

Symbols — Modulated data symbolsvector

Modulated data symbols, returned as a vector. There is one element for each OFDM symbol. (z)

Example: [0.7071 + 0.7071i,...]

OrthSeq — Orthogonal sequence for each slotnumeric matrix

Orthogonal sequence for each slot, returned as a numeric matrix. (w¯)

Example: [1.000 + 1.000i,...]

NSymbSlot — Number of OFDM symbols in each slotvector of integers

The number of OFDM symbols in each slot, returned as a vector of integers. ([NSF,0PUCCHNSF,1PUCCH])

Data Types: double

Data Types: struct

Introduced in R2014a

Was this topic helpful?