Hello All
Lets assume we're using 64QAM with unit average power and gray encoding.
The modulated representation corresponding to symbols :
1 => -0.923 + 0.659i
2 => -0.923 + 0.132i
.
.
45 => 0.659 - 0.659i
.
.
The received symbols can be found as
rx_symbols = H * tx_symbols;
My question rises here, the received symbols are:
-8.005 e-05 + 5.717 e-05i
-8.005e-05 + 1.143e-05i
.
.
.
5.717e-05 - 5.717e-05i
.
.
How can I demodulate them ?
Using qamdemod with unit average power results high errors since it requires higher amplitude symbols as in given above (modulated symbols)
demodulated_symbols = qamdemod(rx_symbols ,M,"UnitAveragePower",true);
instead I tried :
rx_symbols = rx_symbols ./mean(abs(rx_symbols ));
This operation amplified average power to be 1 but if there are low amount of symbols to take mean, it becomes biased and again results errors.
For example, this normalization resulted 1.8% symbol error rate for 30 symbols received but 30% symbol error rate for 3 symbols received.
**Real Question :**
**What is the proper way to demodulate received low power signal ?**
in MATLAB forums, they do not change signal power, instead they change noise power to adjust SNR, but I need to change signal power while keeping thermal noise constant (as in real life)