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 `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`

functionUses 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 modulationPlots 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.

Was this topic helpful?