Documentation

lteRateMatchTurbo

Turbo rate matching

Syntax

  • out = lteRateMatchTurbo(in,outlen,rv)
    example
  • out = lteRateMatchTurbo(in,outlen,rv,chs)

Description

example

out = lteRateMatchTurbo(in,outlen,rv) performs rate matching of the input data, in, to create the output vector, out, of length outlen. The input data could be a vector or a cell array. This function includes the stages of subblock interleaving, bit collection and bit selection, and pruning defined for turbo encoded data. For more information, see section 5.1.4.1 of TS 36.212 [1].

The input data can be a single vector or a cell array of vectors assumed to be code blocks. In the cell array case, each vector is rate matched separately and the results are concatenated into the single output vector, out. The length of each nonempty input vector must be an integer multiple of 3. The parameter rv controls the redundancy version of the output. The bit selection stage assumes a QPSK transmission mapped onto a single layer. It also assumes no restriction on the number of soft bits, as in an uplink UL-SCH transport channel.

out = lteRateMatchTurbo(in,outlen,rv,chs) allows additional control of the bit selection stage through selection of parameters for the soft buffer size and physical channel configuration in the chs input structure.

Examples

collapse all

Perform Turbo Rate Matching

Rate match an input vector of 132 bits to a length of 100 with the RV parameter set to 0.

codedBlklen = 132;
invec = ones(codedBlklen,1);
outlen = 100;
rv = 0;
rmatched = lteRateMatchTurbo(invec,outlen,rv);
size(rmatched)
ans =

   100     1

Input Arguments

collapse all

in — Input datavector | cell array of vectors

Input data, specified as a single vector or a cell array of vectors, assumed to be code blocks. In the cell array case, each vector is rate matched separately and the results are concatenated into the single output vector, out. The length of each nonempty input vector must be an integer multiple of 3.

Example: ones(132,1)

Data Types: double | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64 | cell

outlen — Output vector lengthnonnegative integer

Output vector length, specified as a nonnegative integer.

Example: 3

Data Types: double

rv — Redundancy version control0 | 1 | 2 | 3

Redundancy version control, specified as 0, 1, 2, or 3.

Example: 1

Data Types: double

chs — Channel transmission configurationstructure

Channel transmission configuration, specified as a structure. It allows additional control of the bit selection stage through parameters for the soft buffer size and physical channel configuration.

For downlink turbo coded transport channels, you can control the soft buffer dimensions by including either NIR or the combined set of NSoftbits, TxScheme, and DuplexMode. If DuplexMode is 'TDD', also specify TDDConfig. If included, NIR, takes precedence for controlling the soft buffer dimensions. When neither of these optional chs fields (NIR or the set including NSoftbits) are present, the function assumes an uplink turbo coded transport channel and places no limit on the number of soft bits.

chs can contain the following fields.

Modulation — Modulation scheme'QPSK' | '16QAM' | '64QAM' | '256QAM'

Modulation scheme, specified as a string. Accepted values are 'QPSK', '16QAM', '64QAM', and '256QAM'.

Data Types: char

NLayers — Number of transmission layers for transport block1 (default) | 2 | 3 | 4

Number of transmission layers for transport block, specified as 1 (default), 2, 3, or 4. Not necessary if TxScheme is set to 'Port0', 'TxDiversity', or 'Port5'.

Data Types: double

TxScheme — Transmission scheme'Port0' (default) | optional | 'TxDiversity' | 'CDD' | 'SpatialMux' | 'MultiUser' | 'Port5' | 'Port7-8' | 'Port8' | 'Port7-14'

Downlink rate matching only. Transmission scheme, specified as a string. Optional. Accepted values and their descriptions are shown in the following table.

Transmission schemeDescription
'Port0'Single antenna port, port 0. Default.
'TxDiversity'Transmit diversity
'CDD'Large delay CDD
'SpatialMux'Closed loop spatial multiplexing
'MultiUser'Multi-user MIMO
'Port5'Single-antenna port, Port 5
'Port7-8'Single-antenna port, port 7, if NLayers is set to 1. Dual layer transmission, port 7 and 8, if NLayers is set to 2.
'Port8'Single-antenna port, Port 8
'Port7-14'Up to eight layer transmission, ports 7–14

NIR — Soft buffer size for entire input transport blocknonnegative integer

Soft buffer size for entire input transport block, specified as a nonnegative integer.

Data Types: double

NSoftbits — Total number of soft channel bitsnonnegative integer

Total number of soft channel bits, specified as a nonnegative integer.

Data Types: double

DuplexMode — Duplex mode'FDD' (default) | optional | 'TDD'

Duplex mode, specified as a string. Optional. Accepted values are 'FDD' and 'TDD'.

Data Types: char

TDDConfig — Uplink or downlink configuration0 (default) | optional | nonnegative scalar integer (0...6)

Uplink or downlink configuration, specified as a nonnegative scalar integer from 0 through 6. Optional. Only required if DuplexMode is set to 'TDD'.

Data Types: double

Data Types: struct

Output Arguments

collapse all

out — Turbo rate matched outputnumeric column vector

Turbo rate matched output, returned as a numeric column vector.

Data Types: double | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

References

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

Introduced in R2013b

Was this topic helpful?