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 41 is 14.
Historically, ESA, NASAGSFC and NASAJPL 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 crosssupport: all agencies are encouraged to adopt for all facilities
the single convention described in reference [3].
4 See further discussion in section 8. CCSDS 130.1G1 Page 42 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 42. G1 INPUT D D D D C1 D OUTPUT PUNCTURE
(table 41) D C2
G2 Figure 42: Encoder Block Diagram for the Punctured CCSDS Convolutional Codes
Starting from the CCSDS rate1/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 41.
Table 41: Puncturing Patterns for the CCSDS Punctured Convolutional Code Rates
Puncturing Pattern
1 = transmitted symbol
0 = nontransmitted 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.1G1 Code
Rate Output
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 43 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 [21] and [25]), which will be illustrated for rate 1/n
codes. The same decoding algorithm is applicable to both nonpunctured and punctured
codes, provided that the received symbol stream is ‘depunctured’ by inserting zerosymbols
(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 43 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 44.
0100 0110
1 2 3 0111 Figure 43: (3,1/2) Convolutional Encoder
00
a 00
11 00
11 00 00 00 11 01 11 b 11 11
00 10 10
10 10
c 01 01 11 01 01
10 d Figure 44: Trellis Representation of (3,1/2) Convolutional Code
The diagram starts in the allzero 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.1G1 Page 44 June 2006 TM SYNCHRONIZATION AND CHANNEL CODING —SUMMARY OF CONCEPT AND RATIONALE It has been shown (see reference [25]) that the Viterbi algorithm implements, in fact,
maximumlikelihood decoding. An exhaustive search maximumlikelihood 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 44, it is clear that the trellis assumes a fixed periodic structure after trellis depth K
i...
View
Full Document
 Spring '14
 Information Theory, ........., Error detection and correction, CCSDS

Click to edit the document details