Page 768 - 5G Basics - Core Network Aspects
P. 768
2 Transport aspects
*/
/* Fill out the pre-ordered tone table in case of NOI by appending the tone
of the RTS first */
if(symbol in NOI){
t1_idx = NSCR+1; /* Index counting the tones above the RMC */
t1_idx_RTS = 1; /* Index counting the tones of the RMC */
for (t_index = 1; t_index NSC; t_index++) {
tone = t[t_index];
if(tone in RTS)
t1[t1_idx_RTS++] = tone;
else
t1[t1_idx++] = tone;
}
}
else{
t1_idx = 1;
for (t_index = 1; t_index NSC; t_index++) {
t1[t1_idx++] = t[t_index];
}
/*
Fill out tone re-ordering table with entries of tone ordering table
but skip 1-bit tones.
*/
tp_index = 1;
for (t_index = 1; t_index NSC; t_index++) {
tone = t1[t_index];
bits = b[tone];
if (bits != 1) {
tp[tp_index++] = tone;
}
}
/*
Add the 1-bit tones to the end of tone re-ordering table.
*/
for (t_index = 1; t_index NSC; t_index++) {
tone = t1[t_index];
bits = b[tone];
if (bits == 1) {
tp[tp_index++] = tone;
}
}
/* RE-ORDERING THE BIT ARRAY */
/*
The bit allocation table is denoted as array 'b' and the ordered bit
allocation table is
denoted as array 'bp'.
The indexes to these arrays are denoted as 'b_index' and bp_index',
respectively.
*/
/* First, count the number of loaded tones and also 1-bit tones. */
NCONEBIT = 0; /* NCONEBIT is the number of subcarriers with 1 bit */
NCUSED = 0; /* NCUSED is the number of loaded subcarriers */
for (all i MEDLEY set) {
if (b[i] > 0) {
NCUSED++;
}
if (b[i] == 1) {
NCONEBIT++;
}
}
/* Fill initial zero entries for unloaded tones and half the number of
1-bit tones */
for (bp_index = 1; bp_index (NSC - (NCUSED - NCONEBIT/2));
758