Introduction
This example demonstrates the multicodeword transmission and reception in the uplink.
Parameters
% Generate configuration for FRC A3-2 frc = lteRMCUL('A3-2'); % UE configuration frc.TotSubframes = 1; % Total number of subframes frc.NTxAnts = 2; % Number of transmit antennas % Update Physical Uplink Shared Channel (PUSCH) configuration for 2 identically configured codewords frc.PUSCH.NLayers = 2; frc.PUSCH.Modulation = repmat({frc.PUSCH.Modulation},1,2); frc.PUSCH.RV = repmat(frc.PUSCH.RV,1,2); frc.PUSCH.TrBlkSizes = repmat(frc.PUSCH.TrBlkSizes,2,1);
Encoding
This section sets up the transport blocks and the Uplink Control Information (UCI). This is then coded to generate the Uplink Shared Channel (UL-SCH). The diagram below shows the operations performed internally by lteULSCH.
% Set up the transport block sizes and data for both codewords TBSs = frc.PUSCH.TrBlkSizes(:,frc.NSubframe+1); % transport block sizes trBlks = {(randi([0 1], TBSs(1), 1)) (randi([0 1], TBSs(2), 1))}; % data % Set up UCI contents CQI = [1 0 1 0 0 0 1 1 1 0 0 0 1 1].'; RI = [0 1 1 0].'; ACK = [1 0].'; % UL-SCH coding including UCI coding cws = lteULSCH(frc,frc.PUSCH,trBlks,CQI,RI,ACK); % PUSCH modulation is applied to the generated codewords puschSymbols = ltePUSCH(frc,frc.PUSCH,cws);
Decoding
This section demodulates the PUSCH and applies channel decoding. The resulting UCI is then decoded to produce the received Channel Quality Indicator (CQI), Rank Indication (RI) and Acknowledgment (ACK).
% PUSCH demodulation ulschInfo = lteULSCHInfo(frc,frc.PUSCH,TBSs,length(CQI),length(RI),length(ACK),'chsconcat'); % Get UL-SCH information llrs = ltePUSCHDecode(frc,ulschInfo,puschSymbols); % Decode PUSCH % UL-SCH decoding softBuffer = []; [rxtrblks,crc,softBuffer] = lteULSCHDecode(frc,ulschInfo,TBSs,llrs,softBuffer); % UCI decoding [llrsData,llrsCQI,llrsRI,llrsACK] = lteULSCHDeinterleave(frc,ulschInfo,llrs); rxCQI = lteCQIDecode(ulschInfo,llrsCQI); % Decode CQI rxRI = lteRIDecode(ulschInfo,llrsRI); % Decode RI rxACK = lteACKDecode(ulschInfo,llrsACK); % Decode ACK
esults
The decoded CRC for both codewords is displayed. The transmitted and received CQI, RI and ACK bits are also shown.
CRCs:
Codeword 1: 0 Codeword 2: 0 CQI: transmitted: 1 0 1 0 0 0 1 1 1 0 0 0 1 1 received : 1 0 1 0 0 0 1 1 1 0 0 0 1 1 RI: transmitted: 0 1 1 0 received : 0 1 1 0 ACK: transmitted: 1 0 received : 1 0
Reference
1. MathWorks
2. 3GPP TS 36.104