This is a follow-up question of convolutional codes: free distance, and is meant to confirm a counter-example to it:
Specifically, if we terminate a convolutional code in some non-zero state, then the free distance is, in general, not the minimum distance between the all-zero path and some other non-all-zero path, starting and ending in the zero state, is it?
For example, suppose we have a ($n=2, k=1, K=3$) conv. code with the parity check generators being [1 0 1] and [1 0 0], as illustrated below. (Note that the code has 4 states.) Suppose (somewhat pathologically) that we start the code in state '00', take 2 information bits, and then force the state machine to state '11' with 2 tail bits '11'. Then effectively we have a block code of length 8. (Rate is 1/4, instead of 1/2, due to the forced 2 tail bits.)
For this code, aren't the following true?
- This is a non-linear block code, which does not even contain the all zero path ('00000000').
- The free distance of this code is not the minimum distance of between the all-zero path and some non-all-zero path ending in the zero state.
In fact, it's easily verified that the code simply consists of 4 codewords: 00001111, 00111101, 11000111, 11110101. The minimum weight of the code is 4, but the free distance is 3. The free distance occurs between, for instance, the 2 paths starting in state 00 and ending in state 10, i.e. '000011' and '110001'.
