Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Release 10 PUSCH Multiple Codeword Transmit and Receive Modeling

This example demonstrates the multicodeword transmission and reception in the uplink.

Introduction

This example shows how to implement multicodeword transmission and reception using LTE System Toolbox™. This is done using Fixed Reference Channel (FRC) A3-2 as specified in TS36.104, Annex A3 [ 1 ]. The configuration is then amended to transmit two identically configured codewords.

Setup

This section sets the User Equipment (UE) configuration structure associated to FRC A3-2 and modifies it to use 2 codewords. The configuration for the two codewords is identical.

% 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). PUSCH modulation is then applied.

% 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
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

Results

The decoded CRC for both codewords is displayed. The transmitted and received CQI, RI and ACK bits are also shown.

hULMulticodewordTxRxDisplayResults(crc,CQI,RI,ACK,rxCQI,rxRI,rxACK);
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

Appendix

This example uses the following helper function:

Selected Bibliography

  1. 3GPP TS 36.104 "Base Station (BS) radio transmission and reception"

Was this topic helpful?