Compute distance spectrum of convolutional code
spect = distspec(trellis,n)
spect = distspec(trellis)
spect = distspec(trellis,n) computes
the free distance and the first
n components of
the weight and distance spectra of a linear convolutional code. Because
convolutional codes do not have block boundaries, the weight spectrum
and distance spectrum are semi-infinite and are most often approximated
by the first few components. The input
a valid MATLAB trellis structure, as described in Trellis Description of a Convolutional Code. The
spect, is a structure with these fields:
|Free distance of the code. This is the minimum number of errors in the encoded sequence required to create an error event.|
spect = distspec(trellis) is
the same as
spect = distspec(trellis,1).
The example below performs these tasks:
Computes the distance spectrum for the rate 2/3 convolutional
code that is depicted on the reference page for the
Uses the output of
an input to the
to find a theoretical upper bound on the bit error rate for a system
that uses this code with coherent BPSK modulation
Plots the upper bound using the
trellis = poly2trellis([5 4],[23 35 0; 0 5 13]) spect = distspec(trellis,4) berub = bercoding(1:10,'conv','hard',2/3,spect); % BER bound berfit(1:10,berub); ylabel('Upper Bound on BER'); % Plot.
The output and plot are below.
trellis = numInputSymbols: 4 numOutputSymbols: 8 numStates: 128 nextStates: [128x4 double] outputs: [128x4 double] spect = dfree: 5 weight: [1 6 28 142] event: [1 2 8 25]
The function uses a tree search algorithm implemented with a stack, as described in .
 Bocharova, I. E., and B. D. Kudryashov, “Rational Rate Punctured Convolutional Codes for Soft-Decision Viterbi Decoding,” IEEE Transactions on Information Theory, Vol. 43, No. 4, July 1997, pp. 1305–1313.
 Cedervall, M., and R. Johannesson, “A Fast Algorithm for Computing Distance Spectrum of Convolutional Codes,” IEEE Transactions on Information Theory, Vol. 35, No. 6, Nov. 1989, pp. 1146–1159.
 Chang, J., D. Hwang, and M. Lin, “Some Extended Results on the Search for Good Convolutional Codes,” IEEE Transactions on Information Theory, Vol. 43, No. 5, Sep. 1997, pp. 1682–1697.
 Frenger, P., P. Orten, and T. Ottosson, “Comments and Additions to Recent Papers on New Convolutional Codes,” IEEE Transactions on Information Theory, Vol. 47, No. 3, March 2001, pp. 1199–1201.