vodafone-chair / 5g-nr-ldpc

A 3GPP 5G NR compliant LDPC library.
GNU General Public License v3.0
74 stars 36 forks source link

A Suggestion #2

Open BUPT-YY opened 2 years ago

BUPT-YY commented 2 years ago

The QAM demodulation in matlab you used is possibly not correct. It loss the system performance about 6~10dB Eb/No in the same average bit error rate & code rate condition.

The correct way is to tell the matlab how much is the variance of AWGN in the system. You can change function qamdemod() In ldpcExample.m as follows: dataLlr = qamdemod(dataRx, M, 'OutputType', 'approxllr', 'UnitAveragePower', true,'NoiseVariance',10^(-snr/10));

This helps to get the log-likelihood ratio more precisely.

On the other hand, the speed of the code run is too slow, we can call

h_dec = comm.gpu.LDPCDecoder(sparse(LDPC.H==1),'MaximumIterationCount',500);

and use llr_vec = [zeros(1,2*LDPC.Z), dataLlr']; dataHat = step(h_dec,llr_vec'); to simulate faster in the matlab.

MaxBranch-e2E commented 7 months ago

Hi there, In regards to the following lines from you reply. Where exactly do you implement the h_dec and the llr_vec?

On the other hand, the speed of the code run is too slow, we can call

h_dec = comm.gpu.LDPCDecoder(sparse(LDPC.H==1),'MaximumIterationCount',500);

and use llr_vec = [zeros(1,2*LDPC.Z), dataLlr']; dataHat = step(h_dec,llr_vec'); to simulate faster in the matlab.