Main Content

ltePUCCH3DRS

PUCCH format 3 demodulation reference signal

Description

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.

example

Examples

collapse all

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 = 4×1 complex

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

Demonstrate Uplink Release 11 coordinated 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 = 
8.7932e-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 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 transmission. 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,:)
ans = 6×2 complex

   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

size(info)
ans = 1×2

     1     2

View the contents of the two info structure elements.

info(1)
ans = struct with fields:
               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: [1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i]
             OrthSeq: [2x2 double]
           NSymbSlot: [5 5]

info(2)
ans = struct with fields:
               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: [1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i]
             OrthSeq: [2x2 double]
           NSymbSlot: [5 5]

Input Arguments

collapse all

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

0 (default), nonnegative scalar integer

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.

NPUCCHIDOptional

NCellID (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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

Data Types: double

Data Types: struct

Version History

Introduced in R2014a