This preview shows page 1. Sign up to view the full content.
Unformatted text preview: t the number of
contiguous symbols without transition for a particular class of convolutional codes,
independent of the data source model. Further, this limit is sufficiently small to guarantee
acceptable symbol synchronizer performance for typical applications. The maximum number
of contiguous symbols without transition for the convolutional code of figure 4-1 is 14.
Historically, ESA, NASA-GSFC and NASA-JPL have each used a different ordering of the
two parity checks or has inverted a different parity check. Performance is not affected by
these minor differences. But, to reduce the number of options, CCSDS has adopted only one
convolutional code for cross-support: all agencies are encouraged to adopt for all facilities
the single convention described in reference .
4 See further discussion in section 8. CCSDS 130.1-G-1 Page 4-2 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE 4.3 ENCODER FOR THE RECOMMENDED PUNCTURED CONVOLUTIONAL
CODES The CCSDS standard convolutional code, with constraint length K=7, has rate 1/2. The code
rate can be increased by using a puncturing pattern, thus achieving an increase in bandwidth
efficiency. Puncturing removes some of the encoded symbols before transmission, leading to a
higher code rate and a lower bandwidth expansion than the original code, but with reduced
error correcting performance. A block diagram of the punctured encoder is shown in figure 4-2. G1 INPUT D D D D C1 D OUTPUT PUNCTURE
(table 4-1) D C2
G2 Figure 4-2: Encoder Block Diagram for the Punctured CCSDS Convolutional Codes
Starting from the CCSDS rate-1/2 convolutional code, the recommended punctured codes are
obtained with fixed puncturing patterns yielding code rates 2/3, 3/4, 5/6 and 7/8, as reported
in table 4-1.
Table 4-1: Puncturing Patterns for the CCSDS Punctured Convolutional Code Rates
1 = transmitted symbol
0 = non-transmitted symbol
C1: 1 0
C2: 1 1
C1: 1 0 1
C2: 1 1 0
C1: 1 0 1 0 1
C2: 1 1 0 1 0
C1: 1 0 0 0 1 0 1
C2: 1 1 1 1 0 1 0 CCSDS 130.1-G-1 Code
C1(t), C2(t) denote values at bit time t (t=1,2,3,...) 2/3 C1(1) C2(1) C2(2) ... 3/4 C1(1) C2(1) C2(2) C1(3) ... 5/6 C1(1) C2(1) C2(2) C1(3) C2(4) C1(5) ... 7/8 C1(1) C2(1) C2(2) C2(3) C2(4) C1(5) C2(6) C1(7) ... Page 4-3 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE 4.4 SOFT MAXIMUM LIKELIHOOD DECODING OF CONVOLUTIONAL
CODES Soft, maximum likelihood decoding of convolutional codes can be accomplished by using
the Viterbi algorithm (see references  and ), which will be illustrated for rate 1/n
codes. The same decoding algorithm is applicable to both non-punctured and punctured
codes, provided that the received symbol stream is ‘depunctured’ by inserting zero-symbols
(i.e., neutral symbol values that do not favor either a received ‘0’ or ‘1’ bit) at the positions
where encoded symbols were removed during the encoding of the punctured code.
Before proceeding to the Viterbi algorithm, a discussion of the trellis representation of the
convolutional encoder is desirable. For a constraint length K, code rate r = 1/n, (K, r)
convolutional encoder, the state is defined by the (K–1) = m most recent bits in the shift
register. Figure 4-3 shows an encoder for a (3,1/2) convolutional code. (Note that this is just
an illustrative example, and is not the CCSDS recommended code.) The output bits and
transitions between states can be recorded by the trellis diagram of figure 4-4.
1 2 3 0111 Figure 4-3: (3,1/2) Convolutional Encoder
11 00 00 00 11 01 11 b 11 11
00 10 10
c 01 01 11 01 01
10 d Figure 4-4: Trellis Representation of (3,1/2) Convolutional Code
The diagram starts in the all-zero state, node a, and makes transitions corresponding to the
next data bit. These transitions are denoted by a solid line (branch) for a ‘0’ and by a dotted
line for a ‘1’. Thus node a proceeds to node a or b with outputs bits ‘00’ or ‘11’. A branch
weight is the number of ‘1’s in the n code symbols in the branch. CCSDS 130.1-G-1 Page 4-4 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE It has been shown (see reference ) that the Viterbi algorithm implements, in fact,
maximum-likelihood decoding. An exhaustive search maximum-likelihood decoder would
calculate the likelihood of the received data for code symbol sequences on all paths through
the trellis. The path with the largest likelihood would then be selected, and the information
bits corresponding to that path would form the decoder output. Unfortunately, the number of
paths for an L bit information sequence is 2L; thus, this exhaustive search decoding quickly
becomes impractical as L increases.
With Viterbi decoding, it is possible to greatly reduce the effort required for maximumlikelihood decoding by taking advantage of the special structure of the code trellis. Referring
to figure 4-4, it is clear that the trellis assumes a fixed periodic structure after trellis depth K
View Full Document
This document was uploaded on 03/06/2014.
- Spring '14