Nonlinear ML receiver
- Fix rho computation;
- Compute LLR for QPSK, 16QAM and 64QAM for nonlinear ML receiver;
- Select Nonlinear ML or Linear MMSE receiver.
By default, we are using the Nonlinear ML receiver, except
- for 256QAM as Nonlinear ML receiver is not implemented for 256QAM;
- for 64QAM as Nonlinear ML receiver requires more processing time than MMSE, and many machines are not powerful enough.
Results with the nonlinear ML receiver
QPSK, MCS = 2
sudo LD_LIBRARY_PATH=. ./nr_ulsim -n2000 -b14 -I5 -i 0,1 -g B,l -t70 -u 1 -m2 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z2 -s1.7 -S1.7 -P
MMSE: Eff Throughput = 93.45, RX PUSCH time 578.15 us
ML: Eff Throughput 98.48, RX PUSCH time 385.05 us
16QAM, MCS = 16
sudo LD_LIBRARY_PATH=. ./nr_ulsim -n2000 -b14 -I5 -i 0,1 -g C,l -t70 -u 1 -m16 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z2 -s18.7 -S18.7 -P
MMSE: Eff Throughput = 57.83, RX PUSCH time 656.67 us
ML: Eff Throughput 98.15, RX PUSCH time 699.09 us
16QAM, MCS = 16, 4 Rx antennas
sudo LD_LIBRARY_PATH=. ./nr_ulsim -n2000 -b14 -I5 -i 0,1 -g C,l -t70 -u 1 -m16 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z4 -s11.2 -S11.2 -P
MMSE: Eff Throughput 93.98, RX PUSCH time 1118.04 us
ML: Eff Throughput 99.60, RX PUSCH time 1105.34 us
64QAM, MCS = 17
sudo LD_LIBRARY_PATH=. ./nr_ulsim -n2000 -g C,l -m17 -s25 -S25 -W2 -y2 -z2 -P
MMSE: Eff Throughput 87.08, RX PUSCH time 311.89 us
ML: Eff Throughput 97.20, RX PUSCH time 687.86 us