Documentation |
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 Code. 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]
[1] 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.
[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, 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.
[4] 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.