ITC-UNIT-4
ITC-UNIT-4
Applications:
Digital Television: Uses Reed-Solomon codes
Data Storage: HDDs and SSDs use BCH codes
Satellite Communication: Employs a combination of
interleaving and convolutional codes to burst errors.
Convolutional Codes
Convolutional codes are a type of error-correcting code used
extensively in communications systems to ensure data integrity during
transmission. Unlike block codes that encode data in fixed-size
blocks, convolutional codes operate on data streams of arbitrary
length, making them well-suited for real-time applications.
Key Concepts
1. Encoding Process:
o Input Data Stream: Convolutional codes take a continuous
stream of input bits.
o Shift Registers: The encoder uses a series of shift registers
to store the input bits.
o Generator Polynomials: The shift registers are connected
to modulo-2 adders (XOR gates) based on generator
polynomials, which determine the output bits.
o Output Sequence: For each input bit, the encoder
produces a set of output bits (encoded bits), creating a
convolution of the input sequence.
2. Rate and Constraint Length:
o Code Rate (k/n): The ratio of the number of input bits (k)
to the number of output bits (n). For example, a rate 1/2
code means each input bit results in two output bits.
o Constraint Length (K): The number of bits in the shift
register, determining how many previous input bits affect
the current output. It defines the memory of the encoder.
3. Decoding Process:
o Viterbi Algorithm: A widely used decoding algorithm for
convolutional codes that performs maximum likelihood
decoding. It traces the most likely path through a trellis
diagram, representing state transitions of the encoder.
o Trellis Diagram: A graphical representation of the states
and transitions of the convolutional encoder. Each path
through the trellis corresponds to a possible sequence of
encoded bits.
Applications:
Real-Time Encoding
High Error-Correction Capability
Low Latency: Minimal delay in encoding and decoding.
Limitations
Code Tree
Code tree (also called prefix tree or a trie) is a data structure used to
represent a set of strings (or sequences) where each string is
represented by a path from the root to a leaf. And provide a
structured way to represent and manipulate sequences for efficient
data compression and encoding.
Applications
Advantages
Trellis
It is a graphical representation of a finite-state machine, typically used
to model the behaviour of convolutional codes. It is a useful tool for
understanding and analysing the encoding and decoding processes in
error-correcting codes. It is a powerful graphical tool for representing
the states and transitions of a convolutional encoder.
Structure of a Trellis
1. Convolutional Codes:
o These are a type of error-correcting code where the
output bits depend on both the current input bits and the
previous input bits.
o The encoder can be represented as a finite-state machine,
making the trellis an ideal way to visualize the encoding
process.
2. State Representation:
o At each time step, the state of the encoder is represented
by a node in the trellis.
o Each state corresponds to a possible combination of past
input bits that influence the current output.
3. Transitions:
o Edges between states show how the state of the encoder
changes with each new input bit.
o Each transition is labelled with the corresponding output
bits generated by the encoder.
4. Path:
o A path through the trellis from the initial state to the final
state represents a possible sequence of input bits and the
corresponding output bits.
o The correct path through the trellis corresponds to the
transmitted code sequence.
Applications
Decoding Algorithms
1. Viterbi Algorithm:
o Description: It is a maximum decoding algor that finds the
most likely sequence of states given the received
sequence. It is optimal in terms of minimizing the
probability of error.
o Complexity: Algo has a computational complexity that
grows exponentially with the constraint length, making it
suitable for codes with moderate constraint lengths.
o Steps:
1. Initialization: Set the initial state metrics (usually, set
the metric of the initial state to zero and all others to
infinity).
2. Recursion: For each received symbol, update the
state metrics for all possible transitions between
states, keeping track of the path metrics.
3. Termination: Select the state with the best
(minimum) metric at the end of the sequence.
4. Traceback: Traceback through the state transitions
to determine the most likely transmitted sequence.
2. Sequential Decoding:
o Description: Sequential decoding uses a search strategy,
such as breadth-first or depth-first search, to explore
possible transmitted sequences. It is less computationally
intensive than the Viterbi algorithm for codes with long
constraint lengths but is not guaranteed to find the
optimal solution.
o Strengths: Suitable for codes with long constraint lengths
and less stringent real-time constraints.
o Weaknesses: Performance can degrade significantly under
high noise conditions, and it may fail to find the correct
path in such cases.
Practical Considerations
Applications:
Digital Television: To ensure robust transmission of video
signals.
Mobile Communications (e.g., GSM, LTE): For reliable voice
and data transmission.
Satellite Communication: For error correction in space
communication channels.
Deep Space Communication: Used by NASA for communicating
with space probes.
Viterbi’s algorithm
Viterbi’s algorithm, named after Andrew Viterbi, is a dynamic
programming algorithm used for decoding convolutional codes,
which are a type of error-correcting code used in digital
communications. This algorithm finds the most likely sequence of
hidden states (called the Viterbi path) that results in a sequence of
observed events, especially in the context of a Hidden Markov Model
(HMM).
Key Concepts
Applications
Error Correction: Used in decoding convolutional codes in
communication systems like satellite and mobile communications.
Speech Recognition: Applied in Hidden Markov Models (HMMs)
for recognizing spoken words.
Bioinformatics: Used for sequence alignment and gene prediction
in computational biology.
Advantages:
Limitations:
Sequential Decoding
Sequential decoding is an important concept in information theory
and coding, particularly for convolutional codes. It is a technique used
for decoding convolutional codes when the constraint length of the
code is large, which makes maximum likelihood decoding impractical
due to its computational complexity. Sequential decoding provides a
trade-off between performance and complexity, making it useful for
systems with limited computational resources.
Advantages:
Disadvantages:
Practical Applications
Several algorithms are used for sequential decoding, with the Fano
algorithm being one of the most well-known:
Transfer Function
where:
Distance Properties
Practical Considerations
Practical Considerations