Documentation

lteConvolutionalDecode

Convolutional decoding

Syntax

  • output = lteConvolutionalDecode(input)
    example

Description

example

output = lteConvolutionalDecode(input) performs convolutional decoding of the input data vector, input. The input data is assumed to be soft bit data that has been encoded by a tail-biting convolutional code with constraint length 7, coding rate 1/3, and octal polynomials G0 =133, G1 =171 and G2 =165. Since the code is tail-biting, output will be 1/3 of the length of the input. The input data vector is assumed to be structured as three encoded parity streams concatenated block-wise. For example, input is [D0 D1 D2], where D0, D1, and D2 are the separate parity streams resulting from the original encoding with individual polynomials G0, G1 and G2. The decoder uses a soft input Viterbi algorithm without any quantization.

Examples

collapse all

Perform Convolutional Decoding

This example performs convolutional decoding on soft bits.

Generate random bits and convolutionally encode them. QPSK modulate the coded bits and add noise to the received symbols

txBits = randi([0 1],1000,1);
codedData = lteConvolutionalEncode(txBits);

txSymbols = lteSymbolModulate(codedData,'QPSK');
noise = 0.5*complex(randn(size(txSymbols)),randn(size(txSymbols)));
rxSymbols = txSymbols + noise;

Show rxSymbols constellation, setting txSymbols as the reference constellation

xylimits = [-2.5 2.5];
hScope = comm.ConstellationDiagram('ReferenceConstellation',txSymbols,'XLimits',xylimits ,'YLimits',xylimits);
step(hScope, rxSymbols)

Demodulate the noisy symbols to obtain soft bits. Convolutionally decode the soft bits. Display the number of erroneous bits

softBits = lteSymbolDemodulate(rxSymbols,'QPSK','Soft');

rxBits = lteConvolutionalDecode(softBits);

numberErrors = sum(rxBits ~= int8(txBits))
numberErrors =

     0

Input Arguments

collapse all

input — Input datacolumn vector

Input data, specified as a column vector. The data is assumed to be soft bit data encoded by a tail-biting convolutional code with constraint length 7, coding rate 1/3 and octal polynomials G0=133, G1=171 and G2=165.

Output Arguments

collapse all

output — Convolutionally decoded datacolumn vector

Convolutionally decoded data, specified as a column vector. The decoded data is 1/3 the length of the input input.

Data Types: int8

Introduced in R2014a

Was this topic helpful?