Compute output indices for turbo coding
computes the indices for a given input block length,
blklen, number of
N, and the memory length,
relative to the fully encoded output. In this mode, the second interleaved, systematic
bit-stream is punctured.
mlen correspond to
the constituent coder configuration for the
comm.TurboDecoder System objects.
Create output indices for use with a turbo encoder System Object™.
Initialize input parameters for a constituent turbo encoder configuration having 2 streams, 3 registers and a block length of 64. Create the output indices vector. Display the number of tail bits and the values of the tail bits.
blklen = 64; % Block length N = 2; % Number of streams mlen = 3; % Number of registers firsttailbit = blklen * (2*N - 1) + 1; outindices = getTurboIOIndices(blklen,N,mlen); numtailbits = length(outindices(firsttailbit:end)')
numtailbits = 9
tailbits = outindices(firsttailbit:end)'
tailbits = 1×9 257 258 260 261 262 264 265 266 268
For comparison, keep the same input settings for the block length, number of streams, and number of registers, but create a set of LTE-like output indices vector by adding
'LTE' as the fourth input argument.
outindices = getTurboIOIndices(blklen,N,mlen,'LTE');
Display the number of tail bits and the values of the tail bits. The LTE-like output indices have ordering as specified in TS 36.212 and include tail bits for all output streams.
numtailbitsLTE = length(outindices(firsttailbit:end)')
numtailbitsLTE = 12
tailbitsLTE = outindices(firsttailbit:end)'
tailbitsLTE = 1×12 257 258 261 262 265 266 259 260 263 264 267 268
blklen— Block length
Block length, specified as a nonnegative integer.
N— Number of output streams
Number of output streams, specified as an integer greater than 1.
mlen— Number of registers
Number of registers, specified as a positive integer.
indices— Output indices
Output indices, returned as column vector of positive integers.