A convolutional encoder is called so because it performs a
convolution of the input stream with the encoder's
impulse responses: :y_i^j=\sum_{k=0}^{\infty} h^j_k x_{i-k} = (x * h^j)[i], where is an input sequence, is a sequence from output , is an impulse response for output and {*} denotes convolution. A convolutional encoder is a discrete
linear time-invariant system. Every output of an encoder can be described by its own
transfer function, which is closely related to the generator polynomial. An impulse response is connected with a transfer function through
Z-transform. Transfer functions for the first (non-recursive) encoder are: • H_1(z)=1+z^{-1}+z^{-2},\, • H_2(z)=z^{-1}+z^{-2},\, • H_3(z)=1+z^{-2}.\, Transfer functions for the second (recursive) encoder are: • H_1(z)=\frac{1+z^{-1}+z^{-3}}{1-z^{-2}-z^{-3}},\, • H_2(z)=1.\, Define by : m = \max_i \operatorname{polydeg} (H_i(1/z)) \, where, for any
rational function f(z) = P(z)/Q(z) \,, : \operatorname{polydeg}(f) = \max (\deg(P), \deg(Q)) \,. Then is the maximum of the
polynomial degrees of the H_i(1/z) \,, and the
constraint length is defined as K = m + 1 \,. For instance, in the first example the constraint length is 3, and in the second the constraint length is 4. == Trellis diagram ==