PUCCH format 2 demodulation reference signal
Generate PUCCH Format 2 DM-RS symbols for UE specific settings.
Initialize input configuration structures (ue
and chs
). Here no HARQ bits will be sent by inputting an empty ack
vector. Generate the PUCCH Format 2 DM-RS symbols.
ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; chs.ResourceIdx = 0; chs.ResourceSize = 0; chs.CyclicShifts = 0; sym = ltePUCCH2DRS(ue,chs,[]);
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'; chs1.ResourceIdx = 0; chs1.ResourceSize = 0; chs1.CyclicShifts = 0; ack1 = 0;
Configuration for interferer, UE 2 in cell 2.
ue2.NCellID = 2; ue2.NSubframe = 0; ue2.CyclicPrefixUL = 'Normal'; ue2.Hopping = 'Off'; chs2.ResourceIdx = 1; chs2.ResourceSize = 0; chs2.CyclicShifts = 0; ack2 = 0;
Measure the interference between the DM-RS signals.
interferenceNoCoMP = abs(sum(ltePUCCH2DRS(ue1,chs1,ack1).*conj(ltePUCCH2DRS(ue2,chs2,ack2))))
interferenceNoCoMP = 5.4903
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(ltePUCCH2DRS(ue1,chs1,ack1).*conj(ltePUCCH2DRS(ue2,chs2,ack2))))
interferenceUsingCoMP = 3.5635e-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 2 DM-RS sequences for two transmit antenna paths.
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 2 DM-RS and information outputs.
ue.NCellID = 1; ue.NSubframe = 0; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; chs.ResourceIdx = [0 3]; chs.ResourceSize = 0; chs.CyclicShifts = 0; ack = []; [drsSeq,info] = ltePUCCH2DRS(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.
drsSeq(1:10,:)
ans = 10×2 complex
0.5000 + 0.5000i 0.5000 + 0.5000i
-0.1830 + 0.6830i -0.6830 - 0.1830i
-0.1830 - 0.6830i 0.1830 + 0.6830i
0.5000 - 0.5000i -0.5000 - 0.5000i
0.6830 + 0.1830i 0.6830 + 0.1830i
-0.1830 - 0.6830i 0.6830 - 0.1830i
0.5000 + 0.5000i -0.5000 - 0.5000i
0.1830 - 0.6830i -0.6830 - 0.1830i
0.6830 - 0.1830i 0.6830 - 0.1830i
-0.5000 - 0.5000i 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: [1.0472 3.1416 1.5708 2.0944]
SeqGroup: [1 1]
SeqIdx: [0 0]
NResourceIdx: [1 10]
NCellCyclicShift: [193 89 101 234]
Symbols: [1x4 double]
OrthSeq: [2x2 double]
info(2)
ans = struct with fields:
Alpha: [2.6180 4.7124 0 0.5236]
SeqGroup: [1 1]
SeqIdx: [0 0]
NResourceIdx: [4 7]
NCellCyclicShift: [193 89 101 234]
Symbols: [1x4 double]
OrthSeq: [2x2 double]
ue
— UE-specific settingsUE-specific configuration settings, specified as a structure that can contain the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
NCellID | Required | Integer from 0 to 503 | Physical layer cell identity |
NSubframe | Required | 0 (default), nonnegative scalar integer | Subframe number |
CyclicPrefixUL | Optional |
| Cyclic prefix length |
Hopping | Optional |
| Frequency hopping method. |
NPUCCHID | Optional |
Integer from 0 to 503 | PUCCH virtual cell identity. If this field is not present, |
Data Types: struct
chs
— Channel transmission configurationPUCCH channel settings, specified as a structure that can contain the following fields.
Parameter Field | Required or Optional | Values | Description |
---|---|---|---|
ResourceIdx | Optional | 0 (default), integer from 0 to 1185 or vector of integers. | PUCCH resource indices which determine the physical resource blocks, cyclic shift, and orthogonal cover used for transmission. (). Define one index for each transmission antenna. |
ResourceSize | Optional | 0 (default), integer from 0 to 98. | Size of resource allocated to PUCCH format 2 () |
CyclicShifts | Optional | 0 (default), integer from 0 to 7 | Number of cyclic shifts used for format 1 in resource blocks (RBs) with a mixture of format 1 and format 2 PUCCH, specified as an integer from 0 to 7. () |
ack
— Hybrid ARQ indicator valuesHybrid ARQ indicator values, specified as nonnegative integer vector. This vector is expected to be the block of bits b(0),...,b(Mbit–1) specified in TS 36.211 [1], Section 5.4.2. An Mbit value of 20, 21, or 22 corresponds to PUCCH format 2, 2a, or 2b, respectively, as described in TS 36.211 [1], Table 5.4-1.
Example: [ ] indicates that no HARQ are transmitted in the subframe.
seq
— PUCCH format 2 DRS valuesPUCCH format 2 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
.
Note
The standard does not support format 2a or 2b transmission with
extended cyclic prefix. If the ack
setting corresponds
to format 2a or 2b transmission and extended cyclic prefix is set
for ue
.
CyclicPrefixUL
,
the function returns an empty matrix for seq
.
Data Types: double
Complex Number Support: Yes
info
— PUCCH format 2 informationPUCCH format 2 information, returned as a structure array with
elements corresponding to each transmit antenna and containing these
fields. When configured for format 2a or 2b transmission with extended
cyclic prefix, the info
structure contains all
fields, but each field is empty.
Alpha
— Reference signal cyclic shift for each OFDM symbolReference signal cyclic shift for each OFDM symbol, returned as a two-column vector. (α)
SeqGroup
— PUCCH base sequence group number for each slotPUCCH base sequence group number for each slot, returned as two-column vector. (u)
SeqIdx
— PUCCH base sequence number for each slotPUCCH base sequence number for each slot, returned as two-column vector. (v)
NResourceIdx
— PUCCH resource indices for each slotPUCCH resource indices for each slot, returned as two-column vector. (n')
NCellCyclicShift
— Cell-specific cyclic shift for each OFDM symbolCell-specific cyclic shift for each OFDM symbol, returned as vector. ()
Symbols
— Modulated data symbolsModulated 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 slotOrthogonal sequence for each slot, returned as a 4-by-2 numeric matrix. ()
Example: [1.000 + 1.000i,...]
Data Types: struct
[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
ltePUCCH1DRS
| ltePUCCH2
| ltePUCCH2Decode
| ltePUCCH2DRSDecode
| ltePUCCH2DRSIndices
| ltePUCCH2Indices
| ltePUCCH3DRS
You have a modified version of this example. Do you want to open this example with your edits?