Title: Convolutional Codes Representation and Encoding
1Convolutional CodesRepresentation and Encoding
- Many known codes can be modified by an extra
code symbol or by - deleting a symbol
- Can create codes of almost any
desired rate - Can create codes with slightly
improved performance - The resulting code can usually be decoded with
only a slight - modification to the decoder algorithm.
- Sometimes modification process can be applied
multiple times in - succession
2Modification to Known Codes
- Puncturing delete a parity symbol
- (n,k) code ? (n-1,k) code
- Shortening delete a message symbol
- (n,k) code ? (n-1,k-1) code
- Expurgating delete some subset of codewords
- (n,k) code ? (n,k-1) code
- Extending add an additional parity symbol
- (n,k) code ? (n1,k) code
3Modification to Known Codes
- 5. Lengthening add an additional message symbol
- (n,k) code ? (n1,k1) code
- 6. Augmenting add a subset of additional code
words - (n,k) code ? (n,k1) code
4Interleaving
- We have assumed so far that bit errors are
independent from one - bit to the next
- In mobile radio, fading makes bursts of error
likely. - Interleaving is used to try to make these errors
independent again
Depth Of Interleaving
5Concatenated Codes
- Two levels of coding
- Achieves performance of very long code rates
while maintaining - shorter decoding complexity
- Overall rate is product of individual code
rates - Codeword error occurs if both codes fail.
- Error probability is found by first evaluating
the error probability of - inner decoder and then evaluating the error
probability of outer - decoder.
- Interleaving is always used with concatenated
coding
6Block Diagram of Concatenated Coding Systems
Data Bits
Outer Encoder
Inner Encoder
Modulator
Interleave
Channel
Data Out
Inner Decoder
Outer Decoder
De-Modulator
De- Interleave
7Practical Application Coding for CD
- Each channel is sampled at 44000 samples/second
- Each sample is quantized with 16 bits
- Uses a concatenated RS code
- Both codes constructed over GF(256)
(8-bits/symbol) - Outer code is a (28,24) shortened RS code
- Inner code is a (32,28) extended RS code
- In between coders is a (28,4) cross-interleaver
- Overall code rate is r 0.75
- Most commercial CD players dont exploit full
power of the error correction coder
8Practical Application Galileo Deep Space Probe
- Uses concatenated coding
- Inner code rate is ½, constraint length 7
convolutinal encoder - Outer Code (255,223) RS code over GF(256)
corrects any burst errors from convolutional
codes - Overall Code Rate is r 0.437
- A block interleaver held 2RS Code words
- Deep space channel is severely energy limited
but not bandwidth limited
9IS-95 CDMA
- The IS-95 standard employs the rate (64,6)
orthogonal (Walsh) code on the reverse link - The inner Walsh Code is concatenated with a
rate 1/3, constraint length 9 convolutional code
Data Transmission in a 3rd Generation PCS
- Proposed ETSI standard employs RS Codes
concatenated with - convolutional codes for data communication
- Requirements
- Ber of the order of 10-6
- Moderate Latency is acceptable
- CDMA2000 uses turbo codes for data transmission
- ETSI has optional provisions for Turbo Coding
10- A Common Theme from Coding Theory
- The real issue is the complexity of the decoder.
- For a binary code, we must match 2n possible
received sequences with code words - Only a few practical decoding algorithms have
been found - Berlekamp-Massey algorithm for clock codes
- Viterbi algorithm (and similar technique) for
- convolutional codes
- Code designers have focused on finding new codes
that work with known algorithms
11- Block Versus Convolutional Codes
- Block codes take k input bits and produce n
output bits, where k and n are large - there is no data dependency between blocks
- useful for data communcations
- Convolutional codes take a small number of
input bits and produce a - small number of output bits each time period
- data passes through convolutional codes in a
continuous stream - useful for low- latency communications
12- Convolutional Codes
- k bits are input, n bits are output
- Now k n are very small (usually k1-3, n2-6)
- Input depends not only on current set of k
input bits, but also on past - input.
- The number of bits which input depends on is
called the "constraint - length" K.
- Frequently, we will see that k1
13Example of Convolutional Code k1, n2, K3
convolutional code
14Example of Convolutional Code k2, n3, K2
convolutional code
15- Representations of Convolutional Codes
- Encoder Block Diagram (shown above)
- Generator Representation
- Trellis Representation
- State Diagram Representation
16- Convolutional Code Generators
- One generator vector for each of the n output
bits - The length of the generator vector for a rate
rk/n - code with constraint length K is K
- The bits in the generator from left to right
represent the - connections in the encoder circuit. A 1
represents a link from - the shift register. A 0 represents no
link. - Encoder vectors are often given in octal
representation
17Example of Convolutional Code k1, n2, K3
convolutional code
18Example of Convolutional Code k2, n3, K2
convolutional code
19- State Diagram Representation
- Contents of shift registers make up "state" of
code - Most recent input is most significant bit of
state. - Oldest input is least significant bit of state.
- (this convention is sometimes reverse)
- Arcs connecting states represent allowable
transitions - Arcs are labeled with output bits transmitted
during transition
20Example of State Diagram Representation Of
Convolutional Codes k1, n2, K3
convolutional code
21- Trellis Representation of Convolutional Code
- State diagram is unfolded a function of time
- Time indicated by movement towards right
- Contents of shift registers make up "state" of
code - Most recent input is most significant bit of
state. - Oldest input is least significant bit of state.
- Allowable transitions are denoted by connects
between - states
- transitions may be labeled with transmitted bits
22Example of Trellis Diagram k1, n2, K3
convolutional code
23Encoding Example Using Trellis Representation k1,
n2, K3 convolutional code
- We begin in state 00
- Input Data 0 1 0 1 1 0 0
- Output 0 0 1 1 0 1 0 0 10 10 1 1
24- Distance Structure of a Convolutional Code
- The Hamming Distance between any two distinct
code sequences - and is the number of
bits in which they differ -
- The minimum free Hamming distance dfree of a
convolutional code is the smallest Hamming
distance separating any two distinct code
sequences -
25- Search for good codes
- We would like convolutional codes with large
free distance - must avoid catastrophic codes
- Generators for best convolutional codes are
generally found via computer search - search is constrained to codes with regular
structure - search is simplified because any permutation of
identical - generators is equivalent
- search is simplified because of linearity.
26Best Rate 1/2 Codes
27Best Rate 1/3 Codes
28Best Rate 2/3 Codes
29- Summary of Convolutional Codes
- Convolutional Codes are useful for real-time
applications because - they can be continously encoded and decoded
- We can represent convolutional codes as
generators, block - diagrams, state diagrams, and trellis
diagrams - We want to design convolutional codes to
maximize free distance - while maintaining non-catastrophic
performance