Fix UL channel estimation for 4 layers
This commit is contained in:
@@ -1331,7 +1331,7 @@
|
||||
-n100 -s5 -Z -U 2 0 2
|
||||
-n100 -m19 -s10 -S15 -z2
|
||||
-n100 -m9 -r106 -s10 -W2 -y2 -z2
|
||||
-n100 -m9 -r106 -s13 -W4 -y4 -z4</main_exec_args>
|
||||
-n100 -m9 -r106 -s20 -W4 -y4 -z4</main_exec_args>
|
||||
|
||||
<tags>nr_ulsim.test1 nr_ulsim.test2 nr_ulsim.test3 nr_ulsim.test4 nr_ulsim.test5 nr_ulsim.test6 nr_ulsim.test7 nr_ulsim.test8 nr_ulsim.test9 nr_ulsim.test10 nr_ulsim.test11 nr_ulsim.test12 nr_ulsim.test13 nr_ulsim.test14 nr_ulsim.test15 nr_ulsim.test16 nr_ulsim.test17</tags>
|
||||
<search_expr_true>PUSCH test OK</search_expr_true>
|
||||
|
||||
@@ -233,21 +233,19 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
// where k' is 0 or 1, and delta is in Table 6.4.1.1.3-1 from TS 38.211
|
||||
|
||||
pilot_cnt = 0;
|
||||
int delta = nr_pusch_dmrs_delta(pusch_dmrs_type1, p);
|
||||
|
||||
for (int n = 0; n < 3*nb_rb_pusch; n++) {
|
||||
|
||||
// LS estimation
|
||||
ch[0] = 0;
|
||||
ch[1] = 0;
|
||||
for (int p2 = 0; p2<pusch_pdu->nrOfLayers; p2+=2) {
|
||||
int delta2 = nr_pusch_dmrs_delta(pusch_dmrs_type1, p2);
|
||||
for (int k_line = 0; k_line <= 1; k_line++) {
|
||||
re_offset = (k0 + (n << 2) + (k_line << 1) + delta2) % gNB->frame_parms.ofdm_symbol_size;
|
||||
rxF = (int16_t *) &rxdataF[aarx][(soffset + symbol_offset + re_offset)];
|
||||
ch[0] += (int16_t) (((int32_t) pil[0] * rxF[0] - (int32_t) pil[1] * rxF[1]) >> (15+b_shift));
|
||||
ch[1] += (int16_t) (((int32_t) pil[0] * rxF[1] + (int32_t) pil[1] * rxF[0]) >> (15+b_shift));
|
||||
pil += 2;
|
||||
}
|
||||
for (int k_line = 0; k_line <= 1; k_line++) {
|
||||
re_offset = (k0 + (n << 2) + (k_line << 1) + delta) % gNB->frame_parms.ofdm_symbol_size;
|
||||
rxF = (int16_t *) &rxdataF[aarx][(soffset + symbol_offset + re_offset)];
|
||||
ch[0] += (int16_t) (((int32_t) pil[0] * rxF[0] - (int32_t) pil[1] * rxF[1]) >> (15+b_shift));
|
||||
ch[1] += (int16_t) (((int32_t) pil[0] * rxF[1] + (int32_t) pil[1] * rxF[0]) >> (15+b_shift));
|
||||
pil += 2;
|
||||
}
|
||||
|
||||
// Channel interpolation
|
||||
|
||||
Reference in New Issue
Block a user