5G/NR - Pre Trial - Physical Signal - BRRS
NOTE : This note is about a tempary 5G specification that was implemented and tried before 5G specification is finalized. I keep this note for study purpose.
The BRS lets the UE find the best of the 14 beams that the gNB sweeps in subframes 0 and 25. But those beams are wide, and one of them is only a starting point. The BRRS is the second step. The gNB sends it only when it needs it, around the beam that the UE reported, so the UE can refine that beam.
So the BRRS differs from the BRS in two ways. It is scheduled by DCI rather than broadcast in fixed subframes, and it carries eight antenna ports, 600 to 607, in a single OFDM symbol.
The sections that follow cover the BRRS in order. The first builds the sequence, the second places it on the resource grid, and the third compares the two-step beam procedure with LTE and NR.
Baseband Signal Generation
The BRRS sequence is built the same way as the BRS sequence, from a QPSK Gold sequence. The differences are in what seeds it and in how many values it needs. Let's look at both, because each one follows from how the BRRS is used.
The code builds a QPSK sequence r(m) from a Gold sequence c(n), with r(m) = (1 - 2c(2m))/√2 + j(1 - 2c(2m+1))/√2. The Gold sequence starts from cinit = 210(7((ns mod 20)+1) + l + 1)(2NIDBRRS+1) + 2NIDBRRS + 1. Here ns is the slot number and l is the OFDM symbol.
Note the identity in the formula. The BRS uses NIDcell, but the BRRS uses its own identity, NIDBRRS. So the network can give the BRRS a scrambling identity that does not follow the cell ID.
The length is floor(3/8 N_RB_MAX_DL). With N_RB_MAX_DL = 100, that gives 37 values. The number comes from the mapping. Each antenna port uses one subcarrier in every 32, and 1200 subcarriers divided by 32 gives 37.5, so each port carries 37 values. The RE mapping section shows the pattern.
Unlike Generate_Brs.m, Generate_Brrs.m builds one symbol per call. The DCI decides which symbols carry the BRRS, so the code takes ns and the symbol l as inputs. The parameter table shows the values used for the plot.
|
Parameter |
BRRS |
|
NID_BRRS = 0; ns = 0; l = 0; |
|
The plot shows the sequence for NIDBRRS = 0, ns = 0 and symbol 0. The small square on the left is the constellation, and the wide panel plots the real part in red and the imaginary part in blue against m. The constellation has four points, one in each quadrant, because each value is a QPSK symbol. The wide panel steps through the 37 values of one port.
Disclaimer : This code is just to push myself (probably readers) to look into the algorithm (formula) specified in the specification to the most detailed level. If you try to convert the specification into the programming code whatever language you choose, you will understand the equation / algorithm in much more detailed level than just reading the document. However, this code has not been verified with any real data.
|
Filename : Generate_Brrs.m Last Update : Dec 25, 2016 |
|
%V5G.211 - 6.7.5.1 function SequenceBrrs = Generate_Brrs(BRRS)
NID_BRRS = BRRS.NID_BRRS; N_RB_MAX_DL = BRRS.N_RB_MAX_DL; ns = BRRS.ns; l = BRRS.Symbol; ns_bar = mod(BRRS.ns,20);
r_m = [];
% Generate Psuedo Random Sequence C_init = 2^10 * (7*(ns_bar + 1) + l + 1) * (2 * NID_BRRS + 1) + 2 * NID_BRRS + 1;
r_m_l = []; c_m_even = []; c_m_odd = [];
PR.x2_init = C_init;
for m = 0 : (floor(3/8 * N_RB_MAX_DL)-1) PR.n = 2*m; c_m = Generate_PR(PR); c_m_even = [c_m_even c_m]; PR.n = 2*m+1; c_m = Generate_PR(PR); c_m_odd = [c_m_odd c_m]; end;
r_m_l = (1 ./ sqrt(2) * (1 - 2 .* c_m_even)) + (j .* 1 ./ sqrt(2) * (1 - 2 .* c_m_odd));
SequenceBrrs.r_m_l = r_m_l;
end |
|
Filename : PlotSequence_Brrs.m Last Update : Dec 25, 2016 |
|
function h=PlotSequence_Brrs(BrrsSequence,PlotOption)
plotData = BrrsSequence.r_m_l; if isfield(PlotOption,'NumOfDataToPlot') == 1 NumOfDataToPlot = PlotOption.NumOfDataToPlot; end;
l = PlotOption.Symbol; w = 10;
d_n=plotData;
subplot(1,w,[1 (l*w)+2]); plot(real(d_n),imag(d_n),'ro', ... 'MarkerFaceColor',[1 0 0],'MarkerSize',2); set(gca,'xticklabel',[]);set(gca,'yticklabel',[]); set(gca,'xtick',[]);set(gca,'ytick',[]); ylabel(strcat('symbol = ',num2str(l))); set(gca,'fontsize',8);
subplot(1,w,[((l*w)+3) ((l*w)+w)]); n = 0:length(d_n)-1; plot(n,real(d_n),'r-',n,imag(d_n),'b-'); if exist('NumOfDataToPlot') == 1 xlim([0 NumOfDataToPlot]); else xlim([0 n(end)]); end; set(gca,'xticklabel',[]);set(gca,'yticklabel',[]); set(gca,'xtick',[]);set(gca,'ytick',[]);
end |
|
Filename : Test_Generation_Brrs.m Last Update : Dec 25, 2016 |
|
clear PlotOption = [];
BRRS.NID_BRRS = 0; BRRS.N_RB_MAX_DL = 100; BRRS.ns = 0; BRRS.Symbol = 0;
BrrsSequence = Generate_Brrs(BRRS);
%PlotOption.NumOfDataToPlot = 16; PlotOption.Symbol = 0; PlotSequence_Brrs(BrrsSequence,PlotOption);
|
Generate_Brrs.m returns the sequence in SequenceBrrs.r_m_l. The Gold sequence comes from Generate_PR, which is listed on the Pseudo Random Sequence page. To zoom in on the first 16 values, remove the % in front of PlotOption.NumOfDataToPlot = 16 in Test_Generation_Brrs.m.
The BRRS is a QPSK Gold sequence : the same construction as the BRS.The BRRS has its own scrambling identity : NIDBRRS takes the place of NIDcell.Each port carries 37 values for 100 RBs : one subcarrier in every 32, which is floor(3/8 N_RB_MAX_DL).The code builds one symbol per call : the DCI decides which symbols carry the BRRS.
RE Mapping of BRRS
RE Mapping, or Resource Element Mapping, decides which subcarrier and which OFDM symbol carries each BRRS value. The BRRS has to carry eight antenna ports in one symbol. So the question is how the eight ports share the subcarriers of that symbol.
The answer is a comb. The ports take turns every four subcarriers, from port 600 to port 607, and then the pattern starts again. Each port therefore repeats every 32 subcarriers, across the whole band.

Matlab Code : BRRS
The left panel shows the whole subframe, with subcarriers 0 to 1200 on the vertical axis and the 14 OFDM symbols on the horizontal axis. The BRRS fills only one column, near the end of the subframe, and the rest of the grid is empty in this example. The right panel enlarges subcarriers 0 to 47 of that column.
In the right panel, port 600 sits on subcarrier 0, port 601 on subcarrier 4, and so on up to port 607 on subcarrier 28. Port 600 then returns on subcarrier 32. Each color marks one port, so the same color repeats every 32 subcarriers.
This comb explains the 37 values per port in the previous section. It also explains how the UE refines the beam. Each port can carry a slightly different beam around the one that the UE reported from the BRS. The UE measures the eight ports in the same symbol and reports the best one.
The BRRS sits in one OFDM symbol in this example : the DCI decides which subframe and which symbols carry it.Eight ports share the symbol : ports 600 to 607 take turns every four subcarriers.Each port repeats every 32 subcarriers : 37 values per port for 100 RBs.The UE compares eight beams at once : all eight ports arrive in the same symbol.
Comparison with LTE and NR
The BRRS makes sense only as the second half of a two-step beam procedure. So the useful comparison is not signal against signal, but procedure against procedure. Let's put LTE, the Pre-Trial and NR side by side.
|
Item |
LTE |
5G Pre-Trial |
NR |
|
First step, wide beams |
Not applicable, no beam sweep |
BRS in subframes 0 and 25 |
SSB burst |
|
Second step, beam refinement |
Not applicable |
BRRS |
CSI-RS for beam management |
|
How the second step is triggered |
Not applicable |
DCI |
RRC configuration, and DCI for aperiodic CSI-RS |
|
Sequence of the second step |
Not applicable |
QPSK Gold sequence seeded with NIDBRRS, slot and symbol |
QPSK Gold sequence seeded with a scrambling ID set by RRC, slot and symbol |
|
Ports in the second step |
Not applicable |
8 ports, 600 to 607 |
Configured per CSI-RS resource |
LTE has no beam sweep, so it has no need for either step. The UE measures the CRS of the cell, and the eNB never has to find a beam for the UE.
The Pre-Trial splits the job in two. In the first step, the UE measures the BRS on the 14 wide beams and reports the best one. In the second step, the gNB schedules the BRRS by DCI around that beam, and the UE measures the eight BRRS ports to choose a finer beam.
NR keeps the same two steps with different signals. The SSB burst gives the wide beams, and CSI-RS for beam management does the refinement. The CSI-RS also uses a QPSK Gold sequence with its own scrambling ID, much like the BRRS uses NIDBRRS. For the first step on the Pre-Trial side, see the BRS page.
LTE needs neither step : it has no beam sweep.The Pre-Trial uses BRS, then BRRS : wide beams first, then refinement scheduled by DCI.NR uses SSB, then CSI-RS : the same two steps with different signals.
