8/3/2019 20.Channel Coding
1/28
Satellite Communications
Home work: Error Correcting Control
Submitted by: Farqad Yasin Farhan
8/3/2019 20.Channel Coding
2/28
OutlineOutline
Channel coding protects digital data from errors by selectivelyintroducing redundancies in the transmitted data.
block codes: Hamming codes, Cyclic Codes, BCH codes,Reed-Solomon Codes
convolutional codes
Trellis Coded ModulationCombine both coding and modulation to achieve significant coding gains
without compromising bandwidth efficiency
8/3/2019 20.Channel Coding
3/28
Types of Error Correcting Codes
Repetition Code Linear Block Code, e.g. Hamming
Cyclic Code, e.g. CRC
BCH and RS Code
Convolutional Code
Viterbi Decoding
Turbo Code
Coded Modulation TCM
8/3/2019 20.Channel Coding
4/28
ParityCheck
Add one bit so that xor of all bit is zero Send, correction, miss
Applications: ASCII, Serial port transmission
8/3/2019 20.Channel Coding
5/28
Hammings Solution
A type of Linear Block Code
Encoding: H(7,4)
Multiple Checksums
Message=[a b c d]
r= (a+b+d) mod 2
s= (a+b+c) mod 2
t= (b+c+d) mod 2
Code=[r s a tb c d]
Coding rate: 4/7 Smaller, more redundancy, the better protection.
Difference between detection and correction
Message=[1 0 1 0]
r=(1+0+0) mod 2 =1
s=(1+0+1) mod 2 =0
t=(0+1+0) mod 2 =1
Code=[ 1 0 1 1 0 1 0 ]
8/3/2019 20.Channel Coding
6/28
Coding Gain
Coding Rate R=k/n, k, no. of message symbol, n overall symbol
For a coding scheme, the coding gain at a given bit error
probability is defined as the difference between the energy per
information bit required by the coding scheme to achieve the
given bit error probability and that by un-coded transmission.
8/3/2019 20.Channel Coding
7/28
Coding Gain Example
8/3/2019 20.Channel Coding
8/28
Cyclic code
Cyclic codes are of interest and importance because They posses rich algebraic structure that can be utilized in a
variety of ways.
They have extremely concise specifications.
They can be efficiently implemented using simpleshift register Many practically important codes are cyclic
In practice, cyclic codes are often used for error detection
(Cyclic redundancy check, CRC)
Used for packet networks When an error is detected by the receiver, it requests
retransmission
ARQ
8/3/2019 20.Channel Coding
9/28
BCHPerformance
8/3/2019 20.Channel Coding
10/28
Reed-Solomon Codes
An important subclass of non-binary BCH Wide range of applications
Storage devices (tape, CD, DVD)
Wireless or mobile communication
Satellite communication Digital television/Digital Video Broadcast(DVB)
High-speed modems (ADSL, xDSL)
8/3/2019 20.Channel Coding
11/28
Convolutional Code Introduction
Convolutional codes map information to code bits sequentiallyby convolving a sequence of information bits with generatorsequences
A convolutional encoder encodesKinformation bits toN>Kcode bits at one time step
Convolutional codes can be regarded as block codes for which
the encoder has a certain structure such that we can express the
encoding operation as convolution
8/3/2019 20.Channel Coding
12/28
Encoder Convolutional codes are applied in applications that require good
performance with low implementation cost. They operate on code streams(not in blocks)
Convolution codes have memory that utilizes previous bits to encode ordecode following bits (block codes are memoryless)
Convolutional codes achieve good performance by expanding their memory
depth
Convolutional codes are denoted by (n,k,L), where L is code (or encoder)Memory depth (number of register stages)
Constraint length C=n(L+1) is defined as the number of encoded bits amessage bit can influence to
8/3/2019 20.Channel Coding
13/28
Example Convolutional encoder, k= 1, n= 2, L=2
Convolutional encoder is a finite state machine (FSM) processing
information bits in a serial manner
Thus the generated code is a function of input and the state of the FSM
In this (n,k,L) = (2,1,2) encoder each message bit influences a span ofC=
n(L+1)=6successive output bits = constraint length C
Thus, for generation ofn-bit output, we require n shift registers in k= 1
convolutional encoders
8/3/2019 20.Channel Coding
14/28
Example: Using generatormatrix
(1)
( 2)
[1 0 11]
[11 1 1]
! !
g
g
8/3/2019 20.Channel Coding
15/28
Example of exhaustive maximal likelihood detection
Assume a three bit message is transmitted [and encoded by (2,1,2)
convolutional encoder]. To clear the decoder, two zero-bits are appendedafter message. Thus 5 bits are encoded resulting 10 bits of code. Assumechannel error probability is p= 0.1. After the channel 10,01,10,11,00 is
produced (including some errors). What comes after the decoder, e.g.what was most likely the transmitted code and what were the respective
message bits?
a
b
c
d
states
decoder outputs
if this path is selected
DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE
8/3/2019 20.Channel Coding
16/28
Note also the Hamming distances!
correct:1+1+2+2+2=8;8 ( 0.11) 0.88
false:1+1+0+0+0=2;2 ( 2.30) 4.6
total path metric: 5.48
!
!
The largest metric, verify
that you get the same result!
DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE
8/3/2019 20.Channel Coding
17/28
The Viterbialgorithm
Problem of optimum decoding is to find the minimum distance
path from the initial state back to initial state (below from S0 toS0). The minimum distance is the sum of all path metrics
that is maximized by the correct path
Exhaustive maximum likelihood
method must search all the paths
in phase trellis (2kpaths emerging/
entering from 2 L+1 states foran (n,k,L) code)
The Viterbi algorithm gets its
efficiency via concentrating intosurvivor paths of the trellis
0ln ( , ) ln ( | )jm j mj p p y xg
!!y x
Received code
sequence
Decoders output sequence
for the m:th path
DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE
8/3/2019 20.Channel Coding
18/28
The survivorpath Assume for simplicity a convolutional code with k=1, and up to 2k= 2
branches can enter each state in trellis diagram Assume optimal path passes S. Metric comparison is done by adding the
metric ofS into S1 and S2. At the survivor path the accumulated metricis naturally smaller (otherwise it could not be the optimum path)
For this reason the non-survived path can
be discarded -> all path alternatives need notto be considered
Note that in principle whole transmittedsequence must be received before decision.However, in practice storing of states forinput length of 5L is quite adequate 2 branches enter each nodek
2 nodes, determinedL
by memory depth
8/3/2019 20.Channel Coding
19/28
Example of using the Viterbialgorithm
Assume the received sequence is
and the (n,k,L)=(2,1,2) encoder shown below. Determine the
Viterbi decoded output sequence!
01101111010001y !
(Note that for this encoder code rate is 1/2 and memory depth L= 2)
states
8/3/2019 20.Channel Coding
20/28
The maximum likelihoodpath
The decoded ML code sequence is 11 10 10 11 00 00 00 whose Hamming
distance to the received sequence is 4 and the respective decoded
sequence is 1 1 0 0 0 0 0 (why?). Note that this is the minimum distance path.
(Black circles denote the deleted branches, dashed lines: '1' was applied)
(1)
(1)
(0)
(2)
(1)
(1)
1
1
Smaller accumulated
metric selected
First depth with two entries to the node
After register length L+1=3
branch pattern begins to repeat
(Branch Hamming distancesin parenthesis)
8/3/2019 20.Channel Coding
21/28
Turbo Codes
Backgound Turbo codes were proposed by Berrou and Glavieux in the 1993
International Conference in Communications.
Performance within 0.5 dB of the channel capacity limit for BPSK
was demonstrated.
Features of turbo codes
Parallel concatenated coding
Recursive convolutional encoders
Pseudo-random interleaving
Iterative decoding
DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE
8/3/2019 20.Channel Coding
22/28
otivation: Performance ofTurbo Codes
Comparison: Rate 1/2 Codes.
K=5 turbo code.
K=14 convolutional
code.
Plot is from: L. Perez, Turbo Codes,
chapter 8 of Trellis Coding
by C. Schlegel. IEEE Press,
1997
Gain of almost 2 dB!
Theoretical Limit!
8/3/2019 20.Channel Coding
23/28
The Turbo-Principle
Turbo codes get their name because the decoder uses feedback,like a turbo engine.
DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE
8/3/2019 20.Channel Coding
24/28
Performance as a Function of Number of Iterations
K=5, r=1/2, L=65,536
0 .5 1 1 . 5 21 0
-7
1 0-6
1 0-5
1 0-4
1 0-3
1 0
-2
1 0-1
1 00
Eb
/No
in dB
B
ER
1 i teration
2 iterations
3 i terations6 i terations
1 0 i terations
1 8 i terations
8/3/2019 20.Channel Coding
25/28
Turbo Code Summary
Turbo code advantages: Remarkable power efficiency in AWGN and flat-fading channelsfor moderately low BER.
Deign tradeoffs suitable for delivery of multimedia services.
Turbo code disadvantages:
Long latency.
Poor performance at very low BER.
Because turbo codes operate at very low SNR, channel estimationand tracking is a critical issue.
The principle of iterative or turbo processing can be applied toother problems.
Turbo-multiuser detection can improve performance of codedmultiple-access systems.
8/3/2019 20.Channel Coding
26/28
Trellis Coded Modulation
1. Combine both encoding and modulation. (using Euclideandistance only)
2. Allow parallel transition in the trellis.
3. Has significant coding gain (3~4dB) without bandwidth
compromise.4. Has the same complexity (same amount of computation, same
decoding time and same amount of memory needed).
5. Has great potential for fading channel.
6. Widely used in Modem
8/3/2019 20.Channel Coding
27/28
SetPartitioning
1. Branches diverging from the same state must have the largest distance.2. Branches merging into the same state must have the largest distance.
3. Codes should be designed to maximize the length of the shortest error eventpath for fading channel (equivalent to maximizing diversity).
4. By satisfying the above two criterion, coding gain can be increased.
8/3/2019 20.Channel Coding
28/28
Coding Gain
About 3dB