1 g 1 page 3 7 june 2006 tm synchronization and

This preview shows page 1. Sign up to view the full content.

This is the end of the preview. Sign up to access the rest of the document.

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 performance. 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

{[ snackBarMessage ]}

Ask a homework question - tutors are online