Anda di halaman 1dari 38

Channel Coding - III

Digital Communication System

Sources of Noise
When transmitting a signal over a channel, it is typically
subject to;
Interference: caused by transmission of other
communicating devices.
Sky noise: caused by the emission of radio waves by
warm bodies in the space, atmosphere and on the
earth surface.
Johnson noise: caused by thermal agitation of
electrons within the Tx and Rx circuit.
Shot noise: caused by random fluctuation in the
number of electrons that flow as a current within the
Tx and Rx circuit.
Quantum noise: caused by random fluctuation in the
number of photons that flow in an optical fibre.

Additive White Gaussian Noise


All sources of noise can be thought of as being
combined into a single source AWGN
Suppose, we have a digitally modulated signal
(), which was obtained using a mod. Schem.
If we transmit it over a channel that introduces
AWGN, the received signal will be corrupted as
= + (), where n(t) AWGN.
AWGN is additive because it is added to signal.
White because its amplitude spectrum is flat
within the BW of the signal.
Gaussian because its value at a particular time t
resemble a random value chosen from Gaussian
distribution with 0 mean and standard deviation
of .

Bit Errors
Noise in the received signal () can cause the
demodulator to makes mistakes on recovering
the bit sequence which is conveyed by the
transmitted signal .
These so called bit errors cause a 0 to be
recovered when a 1 was transmitted and vice
versa.
The bit error ratio is the fraction of bits that
suffer from bit errors.
The BER is typically increases as the AWGN
standard deviation increased.

Channel Coding
When the errors introduced by the channel are
unacceptable then the channel coding is needed.
The use of channel coder with source coder
provides the efficient and reliable transmission in
the presence of noise.

Channel Coding (Contd)


Channel coding can be used to allow a receiver
to mitigate the bit errors in its recovered bit
sequence.
Transmitter channel encoder inserts some
carefully chosen redundancy into the bit
sequence.
A channel decoder mitigates the bit errors in
the information bits by considering the
redundant bits that were inserted by the
channel encoder.
The simplest example of a channel code is the
repetition code.

Channel Coding (Contd)


Channel coding deals with error control
techniques. If the data at the output of a
communication system has errors that are too
frequent for the desired use, the errors can
often be reduced by the use of a number of
techniques.
The channel code can resolve bit errors by two
schemes of error control.
ARQ

Error
Control

FEC

Channel Coding (Contd)


ARQ: If the channel decoder detects errors in a
block of data, it requests data retransmission. A
feedback channel can be used to control the
retransmission of code word until it is received
without the detectable errors.
FEC: The errors are not only detected but the
bits in error can be identified and corrected.
The choice of ARQ and FEC depends on
particular application. ARQ full duplex
channel, FEC not full duplex or where ARQ is
not desirable.

Channel Coding (Contd)

Channel Coding (Contd)

Channel Coding (Contd)

Information Theory and Coding


In any communication system, there is a fundamental
limit called channel capacity [bps], on the maximum
possible rate of data transmission.
Shannons channel capacity law states that channel
code can be designed to mitigate (nearly) all of the bit
errors caused by noisy channel, provided that the
number of information bits transmitted per seconds
cannot exceed the channel capacity.
The capacity of an AWGN channel is given by,
= 2 (1 + )
where,
B = BW used to convey the bit sequence in Hz

Information Theory and Coding (Contd)

1
= lim 0 2 is signal

1
N = lim 0 2 = 2 is

power (watts)

noise power

(watts)

In theory, one can transmit over a channel at rate


with almost no errors.
However, if we try to transmit at a rate > ,
then reliable transmission is impossible.

Channel codes
The two main categories of channel codes are;
Block Codes: A block of information bits is
encoded to give a codeword of bits ( > ). For
each sequence of information bits, there is a
distinct codeword of bits. Ex: Hamming Codes
and Cyclic codes.
Convolutional Codes
The primary objective of coding is that to determine,
either the Rxd word is valid codeword or corrupted
by noise (error detection). The decoder should be
able to decide the correct Txed codeword (error
correction).

Repetition codes
These are the simplest type of block codes.
One way to detect the error in the information
bit is to send the information twice. The two
received blocks are compared bit by bit and if
there is difference, an error is occurred.
This method may be extended by sending the
information block three times. If one block
differs from the other two, assume an error
has occurred in that block and discard it.
It is simplest to implement but inefficient.

Repetition codes (Contd)


Decoding rule: The decoder looked at the
received codeword and attempts to extract
the transmitted bits using majority decision.
1. Count the number of 0s and 1s in the
received codeword
2. If there more 0s than 1s 0 was sent and
vice versa
3. If number of 1s equal to number of 0s, donot
decide just flag decoding failure or generate
an ARQ.

Repetition codes (Contd)


The decoding rule will decode correctly in all
cases where the channel noise changes less
than half the bits in any one block.
If the channel noise changes more than half of
the bits, the decoder will make an error. If the
channel error occurs infrequently, the
probability of a decoding failure or a decoding
error for a repetition code of long block length
is very small indeed.

Repetition codes Example

Clearly the transmitted bits will be recovered


correctly, as long as no more than one of the
bits in the codeword is wrong!

Repetition codes Example (Contd)


For each info bits, the repetition encoder
inserts two redundant replica of it, i.e., 00110
000000111111000
Suppose channel noise causes 1st,5th,11th and
12th bits to suffer error 100001111100000
Decoder takes 3 bits and decides 00100
Note that repetition code is incapable to
correct all errors not very strong!
Coding Rate = 1/3

Hamming Code
Hamming code is a more sophisticated
channel code than a repetition code
Hamming codes are still widely used in
computing, telecommunication and other
applications.
Hamming codes are also applied in data
compression and block turbo codes.
Hamming codes are best described in terms of
their parity check matrix H

Hamming Code (Contd)


The mapping from the set of k info sequence to
the corresponding codeword of length n can be
represented by a matrix G called the generator
matrix.
Given a matrix,

If u = (1 , 2 , 3 , 4 ) , then we encode it as
=

Generating matrix

Parity check matrix


For a given code generating matrix, we can
determine its corresponding check matrix.
Specifically, if = [ |],
Then the parity check matrix is given by
= [ | ] ,

If the structure of G is = [ |],


Where is the identity matrix and is the
( ) matrix, then the resulting linear block
code is called systematic. In such codes, the first
components of the codeword are equal to the
information sequence and the following
components are called the parity check bits, provide
the redundancy for protection against errors.

Such generator matrix can be put in such form by


elementary row operations and column permutation.
Since a codeword C is orthogonal to all rows of H, we
conclude that = 0

The number of bits that differ between two bit sequence is


hamming distance.
In general a channel code can correct up to
detect 1.

1
2

and can