LTE Turbo encoder with R = 1/2 – BER performance with LTE Toolbox
Hi there,
I am trying to make BER performance of LTE Turbo encoding with rate matching R = 1/2. But, when I implement symbol modulation and demodulation I can’t get BER = 0 (without any AWGN existence). This indicates that problem is in mod/demod part. I will be also great to use BPSK instead of QPSK but lteSymbolModulate doesn’t have this modulation scheme. Thank You in advance.
All best,
Mirza
Code: (credits to answer how-to-use-rate-matching-to-alter-turbo-code-rate)
clear;
K = 128;
E = 2*K;
mbits = randi([0,1],K, 1);
crc = lteCRCEncode(mbits,’24A’);
cbs = lteCodeBlockSegment(crc); % This will provide a length 4096 bits that is input to the Turbo encoder
cd = lteTurboEncode(cbs);
cdrm = lteRateMatchTurbo(cd, E, 0);
%cdrm(cdrm == 0) = -1; % Make them as LLRs
txSymbols = lteSymbolModulate(cdrm,’QPSK’);
awgnchan = comm.AWGNChannel(‘NoiseMethod’,’Variance’,’Variance’,3);
rxSymbols = txSymbols;% awgnchan(txSymbols);
softBits= lteSymbolDemodulate(rxSymbols,’QPSK’,’Soft’);
cdrx = lteRateRecoverTurbo(softBits, K, 0);
%
mhat = lteTurboDecode(cdrx); % So after the Turbo decoding, it will have 4096 bits rather than 4032 bits, due to addition of filler bits and CRC
cbshat = lteCodeBlockDesegment(mhat, K+24);
crchat = lteCRCDecode(cbshat,’24A’); % This will return the same as message length
% Check the decoded bits with message bits
[~,BER] = biterr( double(crchat),mbits);
BERHi there,
I am trying to make BER performance of LTE Turbo encoding with rate matching R = 1/2. But, when I implement symbol modulation and demodulation I can’t get BER = 0 (without any AWGN existence). This indicates that problem is in mod/demod part. I will be also great to use BPSK instead of QPSK but lteSymbolModulate doesn’t have this modulation scheme. Thank You in advance.
All best,
Mirza
Code: (credits to answer how-to-use-rate-matching-to-alter-turbo-code-rate)
clear;
K = 128;
E = 2*K;
mbits = randi([0,1],K, 1);
crc = lteCRCEncode(mbits,’24A’);
cbs = lteCodeBlockSegment(crc); % This will provide a length 4096 bits that is input to the Turbo encoder
cd = lteTurboEncode(cbs);
cdrm = lteRateMatchTurbo(cd, E, 0);
%cdrm(cdrm == 0) = -1; % Make them as LLRs
txSymbols = lteSymbolModulate(cdrm,’QPSK’);
awgnchan = comm.AWGNChannel(‘NoiseMethod’,’Variance’,’Variance’,3);
rxSymbols = txSymbols;% awgnchan(txSymbols);
softBits= lteSymbolDemodulate(rxSymbols,’QPSK’,’Soft’);
cdrx = lteRateRecoverTurbo(softBits, K, 0);
%
mhat = lteTurboDecode(cdrx); % So after the Turbo decoding, it will have 4096 bits rather than 4032 bits, due to addition of filler bits and CRC
cbshat = lteCodeBlockDesegment(mhat, K+24);
crchat = lteCRCDecode(cbshat,’24A’); % This will return the same as message length
% Check the decoded bits with message bits
[~,BER] = biterr( double(crchat),mbits);
BER Hi there,
I am trying to make BER performance of LTE Turbo encoding with rate matching R = 1/2. But, when I implement symbol modulation and demodulation I can’t get BER = 0 (without any AWGN existence). This indicates that problem is in mod/demod part. I will be also great to use BPSK instead of QPSK but lteSymbolModulate doesn’t have this modulation scheme. Thank You in advance.
All best,
Mirza
Code: (credits to answer how-to-use-rate-matching-to-alter-turbo-code-rate)
clear;
K = 128;
E = 2*K;
mbits = randi([0,1],K, 1);
crc = lteCRCEncode(mbits,’24A’);
cbs = lteCodeBlockSegment(crc); % This will provide a length 4096 bits that is input to the Turbo encoder
cd = lteTurboEncode(cbs);
cdrm = lteRateMatchTurbo(cd, E, 0);
%cdrm(cdrm == 0) = -1; % Make them as LLRs
txSymbols = lteSymbolModulate(cdrm,’QPSK’);
awgnchan = comm.AWGNChannel(‘NoiseMethod’,’Variance’,’Variance’,3);
rxSymbols = txSymbols;% awgnchan(txSymbols);
softBits= lteSymbolDemodulate(rxSymbols,’QPSK’,’Soft’);
cdrx = lteRateRecoverTurbo(softBits, K, 0);
%
mhat = lteTurboDecode(cdrx); % So after the Turbo decoding, it will have 4096 bits rather than 4032 bits, due to addition of filler bits and CRC
cbshat = lteCodeBlockDesegment(mhat, K+24);
crchat = lteCRCDecode(cbshat,’24A’); % This will return the same as message length
% Check the decoded bits with message bits
[~,BER] = biterr( double(crchat),mbits);
BER lte toolbox, lte rate match turbo MATLAB Answers — New Questions