Example HDL QAM : changing QAM 64 to QAM 256

8 views (last 30 days)
Hello,
I am trying to change the constellation type from 64 to 256 in this example.
I have adapted the commqamtxrxhdl_init.m script as shown in attached image.
Moreover, I have adapted the model as per my understanding the constellation type and grouping and degrouping the bits at tx and rx.
But the amplitude of my signal is very low at the receiver aftrer frequency correction, it works but by reduing the threshold and the constellation seems to be not corrected at all.
It seems to me that it requires some other adaptation in frequency and timing correction blocks.
Thanks for any reply in advance.
Regards,

Answers (3)

Karthik Akula
Karthik Akula on 14 Mar 2023
Please find the attached snapshot.
When the 1 and 0 of the preamble sequence is mapped to (1,1) and (-1,-1) , the sequence has good correlation properties, which is generally done in case of BPSK or QPSK as computed to the variable 'b' in the snapshot
By choosing [4 32] preamble map for 64 QAM, the preamble sequence in complex version is same as the sequence that is obtained for BPSK or QPSK case.
For 256 QAM, we dont have exact (1,1) and (-1,-1) mapping, but you can try [8 128]. This map to constellation points which are attenuated versions of (1,1) and (-1,-1). so you may see a small attenutation in the peak but the main lobe to side lobe ratio should remain same.
With this conceptual understanding, please modify the script to match with 256 QAM instead of 64 QAM.
NOTE: Make sure the total bits, preamble+databits is a multiple of 8 not 6.
Thanks,
Karthik.
  3 Comments
Vaibhav BHATNAGAR
Vaibhav BHATNAGAR on 21 Mar 2023
Hello,
Now adaptation is done everywhere in the model.
In brief:
Mapping is adapted with 8 and 128 instead of 4 and 32.
Now:
Pramble bits = 14Symbol x 8bitsPerSymbol = 112.
Correlation with Tx and Rx preable sequence seems precise with little distortion in lower band.
Data bits = 42Symbols x 8bitsPerSymbol= 336 that does 48characters decoded in 7 bit binary.
But the constellation 256 looks like the attached snapshot seems like CFO estimation is not correct.
Hence, ascii2binary decoding is not working at all.
Thanks in advance for your comments.
Vaibhav BHATNAGAR
Vaibhav BHATNAGAR on 23 Mar 2023
Hello,
It is working now. The major issue is adaptation of constellation scaling between tx and rx.
in the init.m file the preamble mapping needs to be adapted to the modulator minimum distance between constellation points that is 0.125 for QAM-256 so that the constellation points stay between -1 to 1. Then the maximum positive amplitude is 0.975 hence preambleRxMap should be multiplied with 0.93.
SimParams.preambleRx = 0.93 * preambleRxMap(preambleBits+1);
This is for tx side, now for Rx side sine the demodulator support minimum distance 2, it is neccessary to scale by 16 (2/0.125) for QAM-256. It was 8 for QAM-64 before.
After doing this the example works as QAM-64 but the constellation is noisy however, the AWGN is removed completely. BER stays 0.1526.
I see some improvements needs to be done at CFO and timing recovery.
Any suggestions if there are some visible changes for QAM-256, there are so many constant and delays in the model.

Sign in to comment.


Vaibhav BHATNAGAR
Vaibhav BHATNAGAR on 7 Apr 2023
It has been long time that the question remains open.
Always no answer???
May be with number of questions you receive everyday I understand that it is not possible to answer each and every question.
I hope this space will catch your attention. We have a full enterprise license but without your help we can not understand your examples.
The idea was to understand your example for certain industrial applications.
As usual, there are so many hard-coded constants in the model without any comments, with referenced papers the algorithms do not match exactly.
We are trying to analyse but loosing lots of time, that could be faster with your comments.
Hope to have your reply.

Kiran Kintali
Kiran Kintali on 23 Apr 2023
It looks like you are stuck modifying the existing to QAM 256. Please reach out to tech support for additional guidance. They can help point you to the training resources necessary to build such a custom QAM example.

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!