Unformatted text preview: 1 0 1 2 3 4 5 6 7 8 9 10 11 E b/N o (dB) Figure 3-5: Performance Comparison of Selected Convolutional, Reed-Solomon,
Concatenated, and Turbo Codes CCSDS 130.1-G-1 Page 3-7 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE 4 CONVOLUTIONAL CODES 4.1 INTRODUCTION
A rate r=1/n convolutional encoder is a linear finite-state machine with one binary input, n
outputs and an m-stage shift register, where m is the memory of the encoder. Such a finitestate encoder has 2m possible states. The constraint length K of the convolutional code is
defined as K=m+1, and the code is referred to as a (K,1/n) code. In comparison to block
codes, convolutional codes encode the input data bits continuously rather than in blocks.
In general, a rate r=l/n convolutional encoder is a linear finite-state machine with l binary
inputs and n binary outputs. A rate r=l/n code can also be produced by puncturing a
convolutional code of rate r=1/n.
4.2 ENCODER FOR THE (7,1/2) RECOMMENDED CODE A (7,1/2) convolutional code selected for space applications in the 1970s was a standout
performer for its time. Exhaustive search over all convolutional codes with r=1/2 and K≤7
found that only this code (not counting a few symmetric equivalents) was able to achieve a
free distance dfree=10. By comparison, the best (6,1/2) code can only achieve dfree=8, and the
best (8,1/2) code can only match the recommended (7,1/2) code’s dfree=10. Maximizing the
free distance was an important consideration because a convolutional code’s bit error rate
with maximum likelihood decoding falls off exponentially with dfree at low error rates. It was
also important to achieve a good dfree at a reasonably low value of constraint length K,
because every unit increase in K doubles the number of encoder states and therefore doubles
the complexity of maximum likelihood decoding. Existing technology at the time this code
was selected allowed maximum likelihood decoding of convolutional codes with constraint
length K=7 but not much higher. Thus, the recommended code was an obvious local
optimum based on its dfree.
Convolutional codes with longer constraint lengths than K=7 were also used in the early days
of space applications, but never standardized. Maximum likelihood decoding of these codes
was infeasible; instead they were decoded by sequential decoding at a significant penalty in
The recommended (7,1/2) code has another feature that makes it useful for space
applications: it is transparent. Transparency means that at steady-state, if the input sequence
to the encoder is inverted the output will be inverted also. Similarly, if the input sequence to
the decoder is inverted, at steady-state the output sequence of the decoder will be inverted
too. This feature is useful because with BPSK modulation there is often a 180-degree phase
ambiguity, and the demodulator can produce the inverse of the transmitted symbols even
when it is in lock. With a transparent code, when the demodulator produces the inverse of the
transmitted symbols, the decoder produces the inverse of the encoded bits. Since packetized
telemetry includes various known headers, it is easy to recognize if the decoded bits have
been inverted and to invert them back if necessary. CCSDS 130.1-G-1 Page 4-1 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE A diagram of an encoder for the recommended convolutional code of rate 1/2 and K=7 is
shown in figure 4-1. The particular encoder structure depends on the manner in which the
adders are connected to the shift register. These connections are denoted by a set of vectors
gi = (gi,1 , gi,2 , …, gi,m) i = 1, 2, … , n (1) where gil = 1 denotes a connection between the ith stage of the shift register and the lth adder,
and gil = 0 denotes the absence of a connection. The complete set of the gis defines the code.
INVERTER g = 1011011
2 x 2
2nd u OUTPUT u i u i-1 u i-2 u i-3 u i-4 u i-5 u i-6 INPUT x 1 1st g = 1111001
1 Figure 4-1: Example of Convolutional Encoder: Constraint Length K=7, Rate 1/2,
CCSDS Standard Convolutional Code
The encoder for the CCSDS standard code is extremely simple, as shown in figure 4-1. It
consists of a shift register and some exclusive OR gates that implement the two parity checks.
The two checks are then multiplexed into one line. This means that the encoder can be made
small and that it dissipates very little power. These are good attributes for spacecraft hardware.
It has been customary to invert one or the other parity check in the encoder. This operation
makes the recommended code into a coset of a pure linear convolutional code. The inversion
is performed to ensure that there are sufficient transitions in the channel stream for the
symbol synchronizer to work in the case of a steady state (all zeroes or all ones) input to the
encoder. 4 Although alternate symbol inversion may increase or decrease the average
transition density, depending on the data source model, it does limi...
View Full Document
- Spring '14