hi,
i have implemented Maximum Liklihood decoder for 4QAM case (rayleigh fadding channel) and its working quite fine. But then i made another ML decoder for 16QAM and its not giving correct results all the time, probabily due to the increase in constellation points.
Can anyone plz give me the code of ML for 16QAM or tell me any points that i should consider while writing code in Matlab?
Hi
ML decoder is not different from 4QAM to 16QAM. But be carefull about some points.
For using ML decoder in fading channels, you need to equalize received symbols then use ML decoder.
Dont forget to normalize symbols after equalizer and befor ML decoder.
Note that BER of 4QAM is better than 15QAM.
Hi
For example received symbol is:
y = h*s + n where h is complex guassian RV. Therefore h change amp and phase of s in 4QAM or 16QAM constalletion. You should equalize the received symbol in this way: s_hat = y/h = s + n/h
after that using ML decoder is possible and if the noise is not severe, it has a good performance.
Another method of ML decoder is possible but it is looklike above.
the thing is i am using ML in decoding of Alamouti. There we have two channels so how can we divide it there? can u plz explain it for this case (alamoouti case)? also while comparing should we compare with e.g., 1+3j or (1/sqrt(2))*(1+3j)? by comapring i mean finding the distance.