1
Systematic feedback (recursive) encoders
• G’(D) = [1,(1 + D2)/(1 + D + D2) ,(1 + D)/(1 + D + D2) ]
• Infinite impulse response (not polynomial)
• Easier to represent in transform domain
• Sometimes referred to as systematic recursiveconvolutional code (SRCC). But note thatthe feedback is an encoder property
2
Example
11
11
001110
111101
001110
111101
D
DDD
G
)1(
)1(
)1(1
)1(
1)1(
)1)(1(
11
2
2
2
2
22
2
10
01
0
1)1/(1
1)1/(1
1)1/(1
11
)1/(1)1/()1/(1
DD
D
DD
DD
DD
DDD
DDD
DD
DDDDD
DD
D
DDDDDDG
3
Example (Cont.)
1
10
01
)1(
)1(
)1(1
)1(
)1(
)1(1
2
2
2
2
2
2
DD
D
DD
DD
D
DD
H
G
Controller canonical form
1
10
01
)1(
)1(
)1(1
)1(
)1(
)1(1
2
2
2
2
2
2
DD
D
DD
DD
D
DD
H
G
Observer canonical form
4
Some notes on minimality• For rate 1/n codes, a minimal encoder is in controller canonical form
provided common factors are removed from G• Why:
• k = 1, only one row of polynomials• If common factors not removed:
• G(D) = [1 + D2 , 1 + D3 ] =3 but • G’(D) = [1 + D, 1 +D+ D2 ] =2
• For rate (n -1)/n codes, there is a minimal encoder in observer canonical form corresponding to a systematic recursive encoder G’, provided • common factors are removed from H, the systematic rational function parity
check matrix derived from G’, and • all functions in G’ are realizable (delay of denominator exceeds delay of
enumerator)• Why:
• k = n -1, only one row of polynomials in H
• For rate k/n: More difficult
5
Example: Nonsystematic feedback encoder
We need a common denominator in each row for the feedback of the shift registers:
Controller canonical form Observer canonical form
6
Summary
• Any rate 1/n code can be represented by a minimal feedforward encoder G(D), or its rational systematic counterpart
• Any rate (n-1)/n code can be represented by a minimal systematic feedback matrix H(D), or its polynomial counterpart
7
Feedforward Encoder Inverse
• What if we want an encoder inverse; i. e. a way to find an estimate of the information by inverting the received word without decoding?
• Systematic encoders: Easy. Nonsystematic encoders?
• Recall: V(D) = U(D) G(D)
• Then we need an inverse matrix G-1(D) : G(D) G-1(D) = I(D)Dl
• Then V(D) G-1(D) = U(D) G(D) G-1(D) = U(D) I(D)Dl = U(D)Dl
• When does a feedforward inverse exist?
• Rate 1/n code: a feedforward inverse exists iff
• GCD {g (0) (D), g (1)
(D), ..., g (n-1) (D) } = Dl
• Rate k/n code: a feedforward inverse exists iff
• GCD {i(D)} = Dl
• where {i(D)} is the set of all determinants of kk submatrices
8
Example
• G(D) = [1 + D2 + D3, 1 + D + D2 + D3 ]
• GCD {1 + D2 + D3, 1 + D + D2 + D3 } = 1
2
21 1
)(DD
DDDG
9
Example
11
11
D
DDDG
11,1,1 22 DDDDDDDCDG
D
D
1
11
001G
10
Example 11.10 Catastrophic encoders
• G(D) = [1 + D, 1 + D2 ]• GCD {1 + D, 1 + D2 } = 1+D• There is no feedforward inverse
• Example: U(D) = 1/(1+D) = 1 + D + D2 + D3 + ...• will correspond to the codeword
V(D) = U(D) G(D) = 1/(1+D) [1 + D, 1 + D2 ] = (1, 1+D)• infinite input weight, finite output weight• A catastrophic encoder
• Must not be used
• Minimal encoders and systematic encoders are noncatastrophic
11
Structural properties• From now on: Assume a minimal encoder
• The state diagram
• State: Describes the content of the encoder’s memory elements
• Implies a natural state labelling
• State transitions: Describes what happens when k input block arrives when the encoder is in a given state
• Direction: What will be the new state?
• Label: Which n output bits are produced?
12
Example
13
Example
14
Example: Catastrophic encoder• G(D) = [1 + D, 1 + D2 ]
• GCD {1 + D, 1 + D2 } = 1+D
15
Weight Enumerator Functions• A codeword Weight Enumerating Function (WEF) is an expression
that completely describes the weights of all codewords
• The WEF is a code (not encoder specific) property
• The WEF can be derived by inspection of the state diagrams with some enhancements
• Split state S0 into an initial and a terminal state
• Label each branch by Xd, where d is the Hamming weight of the n-bit output block corresponding to the branch
• The path gain of a particular path is the product of the branch labels over the path. Thus the Hamming weight of the path is the power of X in the path gain
16
Modified state diagrams for WEF determination
17
Modified state diagrams for WEF determination
18
Mason’s gain formula• Want to compute the transfer function A(X) = d A d X d
• Definitions:• Forward path: Path going from initial to final state, touching each
state at most once. A finite number of such paths
• Fi : gain of the ith forward path
• Cycle: Path starting at one state and coming back to the same path, touching any other state at most once. A finite number of such cycles. Ci : gain of the ith cycle
= 1 - i Ci + i,j Ci Cj - i,j,l Ci Cj Cl + ... (sum over nonintersecting cycles)
m = 1 - i Ci (m) + i,j Ci
(m) Cj (m)
- i,j,l Ci (m)
Cj (m) Cl(m) + ...
(sum over nonintersecting cycles not touching the mth forward path)
• A(X) = i Fi i /
19
Example 11.13
20
Example (cont.)
21
Other weight enumerators
• Can describe the code parameters in more detail by enhancing the branch labels
• Multiply label by Ww, where w is the branch input weight
• Multiply label by L : denoting that each branch has length 1
• Input-Output weight enumerating function IOWEF
• A(W,X,L) = w,d,l A w,d,l W wX dL l
22
Example
23
Suggested exercises
• 11.7-11.16