comnum.free_distance#

comnum.free_distance(generators=Ellipsis, constraint=7, *, puncture=None)#

The free distance of a feed-forward convolutional code, punctured or not: a shortest path on the periodically time-varying trellis. Reproduces Yasuda, Kashiki & Hirata, IEEE Trans. Commun. 32(3), 1984, Table I.

Parameters:
  • generators (list[int]) – octal generators.

  • constraint (int) – constraint length K.

  • puncture (str | list[list[int]] | None) – a pattern name or its rows, as for ConvolutionalCode (none for the mother code).

Returns:

the free distance.

Return type:

int

Raises:

ValueError – for an invalid parameter or input (the message names it).

Examples

>>> import comnum
>>> comnum.free_distance()
10
>>> [comnum.free_distance(puncture=p) for p in ("dvbs_2_3", "dvbs_3_4", "dvbs_5_6", "dvbs_7_8")]
[6, 5, 4, 3]