Contenuto principale

lteSLSCH

Sidelink shared channel

Description

cw = lteSLSCH(ue,outlen,trblkin) returns the codeword column vector for the specified UE settings structure and output length. lteSLSCH applies the complete sidelink shared channel (SL-SCH) transport channel processing to the input data, trblkin.

For more information, see Sidelink Shared Transport Channel Processing.

example

Examples

collapse all

Use the physical channel bit capacity information to configure the output codeword size for SL-SCH coding. Decode the resulting codeword and check for CRC errors.

ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');
ue.PRBSet = (10:12)';
ue.Modulation = '16QAM';
ue.RV = 0;

[~,psschinfo] = ltePSSCHIndices(ue);
cwlength = psschinfo.G;

trblk = randi([0 1],100,1);
cw = lteSLSCH(ue,cwlength,trblk);
[rxtrblk,err] = lteSLSCHDecode(ue,length(trblk),cw);
err
err = logical
   0

The transport block is recovered with no error.

Create a cell array containing the redundancy version (RV) sequence of four codewords that is ready for transmission on the PSSCH.

Initialize a UE settings structure.

ue = struct('NSLRB',50,'CyclicPrefixSL','Normal');
ue.PRBSet = (10:12)';
ue.Modulation = '16QAM';

Use the physical channel bit capacity information to configure the output codeword size for SL-SCH coding. Create a transport block of information bits.

[~,psschinfo] = ltePSSCHIndices(ue);
cwlength = psschinfo.G;

trblk = randi([0 1],100,1);

Use a for loop to create a cell array containing the sequence of four SL-SCH codewords. RV = 0,2,3,1 for transmission on the PSSCH.

rvseq = [0 2 3 1];
for ii = 1:length(rvseq)
    ue.RV = rvseq(ii);
    cwseq = lteSLSCH(ue,cwlength,trblk);
    cwseqCell{ii} = cwseq;
end

Alternatively, the same cell array of SL-SCH codeword sequences can be created using an anonymous function handle.

rvseq = [0 2 3 1];

cwgenfn = @(rv)lteSLSCH(setfield(ue,'RV',rv),cwlength,trblk); %#ok<SFLD>

cwseqCell2 = arrayfun(cwgenfn,rvseq,'UniformOutput',false);

Input Arguments

collapse all

User equipment settings, specified as a parameter structure containing these fields:

Sidelink mode, specified as 'D2D' or 'V2X'.

Data Types: char | string

Cyclic prefix length, specified as 'Normal' or 'Extended'.

Data Types: char | string

Modulation type, specified as 'QPSK' or '16QAM'.

Data Types: char | string

Redundancy version indicator, specified as an integer scalar or vector with element values from 0 to 3.

Example: [0 2 3 1], indicates the RV sequence order for transmission on the PSSCH.

Data Types: double

Data Types: struct

Codeword length, specified as an integer scalar. For more information, see Sidelink Shared Transport Channel Processing.

Data Types: double

Transport block data bits, specified as a bit vector.

Data Types: double

Output Arguments

collapse all

PSSCH codeword, returned as an Mbit-by-1 integer vector. Mbit is equal to outlen and is the number of bits transmitted on the physical sidelink shared channel in one subframe. outlen must be a multiple of the number of bits per symbol. For more information, see Sidelink Shared Transport Channel Processing.

More About

collapse all

References

[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

[2] 3GPP TS 36.321. “Evolved Universal Terrestrial Radio Access (E-UTRA); Medium Access Control (MAC) protocol Specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2016b