| Communications Toolbox | ![]() |
Compute the 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 trellis is a valid MATLAB trellis structure, as described in Trellis Description of a Convolutional Encoder. The output, spect, is a structure with these fields:
| Field | Meaning |
|---|---|
| spect.dfree | Free distance of the code. This is the minimum number of errors in the encoded sequence required to create an error event |
| spect.weight | A length-n vector that lists the total number of information bit errors in the error events enumerated in spect.event |
| spect.event | A length-n vector that lists the number of error events for each distance between spect.dfree and spect.dfree+n-1. The vector represents the first n components of the distance spectrum. |
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 poly2trellis function
Uses the output of distspec as an input to the bercoding function, 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 berfit function
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 [2].
[1] Bocharova, Irina E., and Boris 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.
[2] 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.
[3] Chang, Jinn-Ja, Der-June Hwang, and Mao-Chao 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.
[4] Frenger, Pål, Pål Orten, and Tony 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.
| dftmtx | dpcmdeco | ![]() |
© 1994-2005 The MathWorks, Inc.