Pucch2 polar rx: fix dynamic range
fixes the overflow issue in the PUCCH2 RX with 4+ RX antennas and 12+ bits (polar code format). The fix scales the polar decoding LLR computation according to the number of RX antennas. The issue was clear for 100 MHz 4 RX antennas. Even nr_pucchsim -s -5 -q 8 -P 2 -b 12 -R 273 -z4 -n1000 doesn't converge to 0 BLER with increasing SNR. The issue didn't appear in CI because of the bandwidth and antenna count limitations.
This commit is contained in:
committed by
Robert Schmidt
parent
1cae1879be
commit
fec145cac6
@@ -1519,7 +1519,7 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
|
||||
|
||||
corr_re = ( corr32_re[symb][half_prb>>2][aa]/(2*nc_group_size*4/2)+((int16_t*)(&prod_re[aa]))[0]);
|
||||
corr_im = ( corr32_im[symb][half_prb>>2][aa]/(2*nc_group_size*4/2)+((int16_t*)(&prod_im[aa]))[0]);
|
||||
corr_tmp += corr_re*corr_re + corr_im*corr_im;
|
||||
corr_tmp += (corr_re*corr_re + corr_im*corr_im)>>(Prx/2);
|
||||
/*
|
||||
LOG_D(PHY,"pucch2 half_prb %d cw %d (%d,%d) aa %d: (%d,%d,%d,%d,%d,%d,%d,%d)x(%d,%d,%d,%d,%d,%d,%d,%d) (%d,%d)+(%d,%d)
|
||||
= (%d,%d) => %d\n", half_prb,cw,cw&15,cw>>4,aa,
|
||||
|
||||
Reference in New Issue
Block a user