![]()
Open LteDemoSRS.m in the editor
Sounding Reference Signal (SRS) Configuration Example
This example demonstrates how to configure UE and cell-specific SRS aspects. It generates a frame containing PUCCH Format 1 transmissions using appropriate shortening according to a cell-specific SRS configuration. The generated frame also contain an SRS transmission configured by a particular UE-specific SRS configuration.
Overview
In this example the cell-specific SRS configuration is 5ms periodicity with an offset of 0 (signalled by srs.SubframeConfig=3 per Table 5.5.3.3-1of TS36.211) and the UE-specific SRS configuration is 10ms periodicity with an offset of 0 (signalled by srs.ConfigIdx=7 per Table 8.2-1 of TS36.213). The cell-specific configuration means that for this cell, two opportunities for SRS transmission exist within each frame, subframes 0 and 5. All UEs in the cell must shorten their PUCCH transmissions during these subframes to allow for SRS reception without interference, even if they are not transmitting SRS themselves. The UE-specific configuration means that this UE is configured to generate SRS only in subframe 0. The output at the MATLAB command window when running this example shows PUCCH transmission in all 10 subframes, with shortenening in subframes 0 and 5, and an SRS transmission in subframe 0. The figure produced shows the number of active subcarriers in each SC-FDMA symbol of the frame. All SC-FDMA symbols contain 12 active subcarriers corresponding to the single resource block bandwidth of the PUCCH except:
symbol 13, the last symbol of
subframe 0 which has 48 active subcarriers corresponding to an 8 resource block
SRS transmission;
symbol 83, the last symbol of
subframe 5 which has 0 active subcarriers corresponding to the shortened PUCCH
(last symbol empty) to allow for potential SRS transmission by another UE in
this cell.
UE configuration
Firstly we create a configuration structure for the UE:
% UE configuration
ue.NULRB=9;
ue.NCellID=10;
ue.Hopping='Off';
ue.CyclicPrefixUL='Normal';
ue.DuplexMode='FDD';
ue.NTxAnts=1;
SRS configuration
Now we create a configuration structure for the SRS:
% SRS configuration
srs.NTxAnts=1;
srs.SubframeConfig=3; % cell-specific
% SRS period=5ms, offset=0
srs.BWConfig=6;
srs.BW=0;
srs.HoppingBW=0;
srs.SeqGroup=0;
srs.SeqIdx=0;
srs.TxComb=0;
srs.FreqPosition=0;
srs.ConfigIdx=7; % UE-specific
% SRS period=10ms, offset=0
srs.CyclicShift=0;
There are two important aspects to this configuration from the perspective of SRS timing:
The cell-specific SRS
configuration is 5ms periodicity with an offset of 0 (signalled by srs.SubframeConfig=3 per Table 5.5.3.3-1of TS36.211)
The UE-specific SRS
configuration is 10ms periodicity with an offset of 0 (signalled by srs.ConfigIdx=7 per Table 8.2-1 of TS36.213).
The cell-specific configuration means that for this cell, two opportunities for SRS transmission exist within each frame, subframes 0 and 5. All UEs in the cell must shorten their PUCCH transmissions during these subframes to allow for SRS reception without interference, even if they are not transmitting SRS themselves. The UE-specific configuration means that this UE is configured to generate SRS only in subframe 0.
The other parameters define other aspects of the SRS, specifically the locations in frequency and the particular SRS sequence that is used.
Subframe loop
We now
configure 10 subframes (1 frame) in a loop, concatenating the subframe txSubframe created each time round the loop into an overall resource grid txgrid. Our
loop is indexed by i=1…10, so the current 0-based subframe number as used by the Toolbox is i-1.
Subframe number configuration
The first simple step in the loop is to configure the subframe number in the UE settings structure ue, and display the subframe number at the console:
% configure subframe
number
ue.NSubframe=i-1;
disp(sprintf('Subframe %d:',ue.NSubframe));
SRS dimension
information
By calling LteSRSDims, we can establish the effect of the cell-specific SRS configuration in this subframe:
% establish if this subframe is a cell-specific SRS subframe,
% and if so configure the PUCCH for shortened transmission.
srsDims=LteSRSDims(ue,srs);
pucch.Shortened=srsDims.IsSRSSubframe;
The IsSRSSubframe field of the structure srsDims returned from the LteSRSDims call indicates if the current subframe (given by ue.NSubframe) is a cell-specific SRS subframe.
IsSRSSubframe=1 indicates that the subframe is a cell-specific SRS subframe,
otherwise IsSRSSubframe=0.
The value of
this field is then copied into the Shortened field of the PUCCH configuration structure pucch. Doing this ensures that the
subsequent PUCCH generation will correctly respect the cell-specific SRS
configuration for all subframes, omitting the last symbol of the PUCCH in the
cell-specific SRS subframes.
Subframe creation
A resource grid for the current subframe txSubframe is created:
% create empty uplink subframe
txSubframe=LteULResourceGrid(ue);
PUCCH 1 DRS transmission
Now we create the PUCCH 1 DRS signal and map it to the resource grid:
% transmit PUCCH1 DRS
drsIndices=LtePUCCH1DRSIndices(ue,pucch);
drsSymbols=LtePUCCH1DRS(ue,pucch);
txSubframe(drsIndices)=drsSymbols;
The DRS signal is located in the 3rd, 4th and 5th symbols of each slot and therefore never has the potential to collide with the SRS.
PUCCH 1 transmission
Unlike the DRS,
the PUCCH 1 transmission has the potential to occupy the last symbol of the
subframe but because we have already configured the Shortened
field of the PUCCH configuration structure pucch in accordance with the
cell-specific SRS configuration, the last symbol of the subframe will be left
empty in the appropriate subframes:
% transmit PUCCH1
pucchIndices=LtePUCCH1Indices(ue,pucch);
HI=[0 1];
pucchSymbols=LtePUCCH1(ue,pucch,HI);
txSubframe(pucchIndices)=pucchSymbols;
if (pucch.Shortened)
disp('Transmitting
shortened PUCCH');
else
disp('Transmitting
full-length PUCCH');
end
A message is displayed to the console indicating whether the PUCCH was transmitted with full length or shortened length.
SRS transmission
Here we transmit an SRS according to the ue-specific SRS configuration. Both the LteSRSIndices and LteSRS functions use the fields ue.NSubframe and srs.ConfigIdx to determine if the current subframe is configured for SRS transmission; if not, the output of both functions is empty and therefore unconditionally mapping the potentially empty transmission into the resource grid results in the SRS being present or absent as appropriate:
% transmit SRS (if active under UE-specific SRS configuration)
[srsIndices,srsIndicesDims]=LteSRSIndices(ue,srs);
srsSymbols=LteSRS(ue,srs);
if (srs.NTxAnts==1)
txSubframe(offsetIndices(ue,srsIndices,srsIndicesDims.Port))=
srsSymbols;
else
txSubframe(srsIndices)=srsSymbols;
end
if(~isempty(srsIndices))
disp('Transmitting
SRS');
end
The field srs.NTxAnts is checked and if only 1 transmission antenna is used then the function offsetIndices is used to address the appropriate transmit antenna for transmit antenna selection diversity. The antenna is specified by srsIndicesDims.Port. Note that srsIndicesDims.Port is always zero for the case of ue.NTxAnts=1 as no transmit antenna selection diversity applies. For srs.NTxAnts>1, Spatial Orthogonal Resource Transmit Diversity (SORTD) is used.
The SRS indices srsIndices are checked for being empty; if not then a message is displayed at the console indicating that the SRS is being transmitted.
Concatenation
The final step inside the loop is to concatenate the current subframe txSubframe onto the overall resource grid txGrid:
% store subframe into overall multi-subframe grid
txGrid=[txGrid txSubframe];
Plotting the number of active subcarriers
The last step in the example is to plot the number of active subcarriers in each SC-FDMA symbol across the 140 symbols in txGrid:
% plot number of active subcarriers in each SC-FDMA symbol.
figure;
for i=1:ue.NTxAnts
subplot(ue.NTxAnts,1,i);
plot([0:size(txGrid,2)-1],sum(abs(txGrid(:,:,i))~=0),'r:o')
xlabel('symbol number');
ylabel('active subcarriers');
title(sprintf('Antenna %d',i-1));
end
The resulting plot looks as follows:

The number of active subcarriers is generally 12, corresponding to the one resource block extent in frequency of the PUCCH and PUCCH 1 DRS. The two exceptions are:
symbol 13, the last symbol of
the first subframe, where the SRS is transmitted on 48 subcarriers (8 resource
blocks wide, half the subcarriers are used by the SRS) and the PUCCH 1 is
shortened so the last symbol is absent;
symbol 83, the last symbol of
the fifth subframe, where the PUCCH 1 is shortened so the last symbol is
absent.
The distinction between these two cases is that both subframe 0 and 5 are cell-specific SRS subframes and therefore the PUCCH is transmitted with shortened length, but the ue-specific SRS configuration dictates that only subframe 0 is used for SRS transmission.
Console output
When the demo is run the following console output is produced:
Subframe 0:
Transmitting shortened PUCCH
Transmitting SRS
Subframe 1:
Transmitting full-length PUCCH
Subframe 2:
Transmitting full-length PUCCH
Subframe 3:
Transmitting full-length PUCCH
Subframe 4:
Transmitting full-length PUCCH
Subframe 5:
Transmitting shortened PUCCH
Subframe 6:
Transmitting full-length PUCCH
Subframe 7:
Transmitting full-length PUCCH
Subframe 8:
Transmitting full-length PUCCH
Subframe 9:
Transmitting full-length PUCCH
This clearly shows the transmission of shortened PUCCH in subframes 0 and 5 and the transmission of the SRS in subframe 0.
SRS transmit antenna selection can be demonstrated by setting ue.NTxAnts=2 and examining the subplots produced for each antenna; the SRS is transmitted on antenna 0 while the PUCCH is shortened on both (all) antennas:
% UE configuration
…
ue.NTxAnts=1;

A pattern of antenna selection across this one-frame run can be shown by further configuring srs.SubframeConfig=0 and srs.ConfigIdx=0. This configures a cell-specific SRS configuration of 2ms periodicity with an offset of 0 (signalled by srs.SubframeConfig=0) and also a UE-specific SRS configuration of 2ms periodicity with an offset of 0 (signalled by srs.ConfigIdx=0). In this case an SRS is transmitted by this UE on even subframes, and the transmit antenna alternates with each transmission:
% SRS configuration
srs.NTxAnts=1;
srs.SubframeConfig=0; % cell-specific
% SRS period=2ms, offset=0
…
srs.ConfigIdx=0; % UE-specific
% SRS period=2ms, offset=0
…

SRS transmission on multiple antennas using resource diversity can be shown by setting ue.NTxAnts=2 and srs.NTxAnts=2; in this case the SRS is always transmitted on both (all) antennas with orthogonal resources (SORTD) on each antenna:
% UE configuration
…
ue.NTxAnts=2;
% SRS configuration
srs.NTxAnts=2;
…

© Copyright 2010-2012
Steepest Ascent Ltd.