Why "Approximate llr" input of the comm.LDPCDecoder has 4 different values when QAM16 is used?
2 次查看(过去 30 天)
显示 更早的评论
Hello! I'm trying to understand the work of the comm.LDPCDecoder module. When I implement QAM16 modulation on the encoded bits (using comm.LDPCEncoder with a standard parity-check matrix 32400x64800) and then demodulate these qam modulated symbols I receive 64800 values (qamDemod, check the snippet below) which are obtained using approximate log-likelihood algorithm. These demodulated values consist of 4 different values: -1.6, -0.4, 0.4 and 1.6. I thought that the output of the QAM demodulater (or the input to the LDPC Decoder) should take two different values as 1s and 0s have to be denoted using only two values (I guess I don't fully understand the LDPC decoder). I cannot understand why these values can take 4 different values. If I use QAM64 then I have 8 different values from the QAM demodulator. Any help will be appreciated!
Cheers,
Paul
P.S. I'll provide my snippet:
Mod_ind = 2^4; % QAM modulation index
H_matrix = dvbs2ldpc(1/2); % Buiilt-in DVBS2 PCM with a code
%rate 1/2
ldpcEncoder = comm.LDPCEncoder(H_matrix);
ldpcDecoder = comm.LDPCDecoder(H_matrix);
data = (randi([0 1],32400,1)); % Generating data bits
encData = ldpcEncoder(data); % LDPC encoding
qamMod = qammod(encData,Mod_ind,'Gray','UnitAveragePower',1,...
'InputType','Bit'); % QAM modulation
qamDemod = qamdemod((qamMod),...
Mod_ind, 'Gray','UnitAveragePower', 1, 'OutputType', 'approxllr');
rxBits = ldpcDecoder(qamDemod); % QAM demodulation
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 QAM 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!