Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

Noise-Predictive Turbo Equalization for Partial Response Channels Sharon Aviran, Paul H. Siegel and Jack K. Wolf Department of Electrical and Computer.
Decoding of Convolutional Codes  Let C m be the set of allowable code sequences of length m.  Not all sequences in {0,1}m are allowable code sequences!
Maximum Likelihood Sequence Detection & the Viterbi Algorithm EE-242 Digital Communications & Coding Miguel Ángel Galicia Ismail AlQerm EE-242 Digital.
Give qualifications of instructors: DAP
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Turbo Codes – Decoding and Applications Bob Wall EE 548.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 17: Application-Driven Hardware Acceleration (3/4)
Chapter 11 Error-Control CodingChapter 11 : Lecture edition by K.Heikkinen.
Figure 6.1. A convolutional encoder. Figure 6.2. Structure of a systematic convolutional encoder of rate.
EC 723 Satellite Communication Systems
Viterbi Decoder: Presentation #1 Omar Ahmad Prateek Goenka Saim Qidwai Lingyan Sun M1 Overall Project Objective: Design of a high speed Viterbi Decoder.
EE 3220: Digital Communication Dr Hassan Yousif 1 Dr. Hassan Yousif Ahmed Department of Electrical Engineering College of Engineering at Wadi Aldwasser.
EE 3220: Digital Communication Dr Hassan Yousif 1 Dr. Hassan Yousif Ahmed Department of Electrical Engineering College of Engineering at Wadi Aldwasser.
Digital Communications I: Modulation and Coding Course Spring Jeffrey N. Denenberg Lecture 4: BandPass Modulation/Demodulation.
ECED 4504 Digital Transmission Theory
S Advanced Digital Communication (4 cr)
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
1 UTILIZING CHANNEL CODING INFORMATION IN CIVA- BASED BLIND SEQUENCE DETECTORS Xiaohua(Edward) Li Department of Electrical and Computer Engineering State.
The Viterbi Algorithm Application of Dynamic Programming-the Principle of Optimality -Search of Citation Index -213 references since 1998 Applications.
Medicaps Institute of Technology & Management Submitted by :- Prasanna Panse Priyanka Shukla Savita Deshmukh Guided by :- Mr. Anshul Shrotriya Assistant.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 12.
Outline Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) Receivers (Chapter 5) (week 3 and 4) Received Signal Synchronization.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
DIGITAL COMMUNICATIONS Linear Block Codes
1 CONTEXT DEPENDENT CLASSIFICATION  Remember: Bayes rule  Here: The class to which a feature vector belongs depends on:  Its own value  The values.
1 Coded modulation So far: Binary coding Binary modulation Will send R bits/symbol (spectral efficiency = R) Constant transmission rate: Requires bandwidth.
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
1 Channel Coding (III) Channel Decoding. ECED of 15 Topics today u Viterbi decoding –trellis diagram –surviving path –ending the decoding u Soft.
Last time, we talked about:
Timo O. Korhonen, HUT Communication Laboratory 1 Convolutional encoding u Convolutional codes are applied in applications that require good performance.
Error Correction Code (2)
A simple rate ½ convolutional code encoder is shown below. The rectangular box represents one element of a serial shift register. The contents of the shift.
Wireless Communication Research Lab. CGU What is Convolution Code? 指導教授:黃文傑 博士 學生:吳濟廷
Dr. Muqaibel \ EE430 Convolutional Codes 1 Convolutional Codes.
Log-Likelihood Algebra
SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Convolutional Codes.
Convolutional Coding In telecommunication, a convolutional code is a type of error- correcting code in which m-bit information symbol to be encoded is.
1 Reliability-Based SD Decoding Not applicable to only graph-based codes May even help with some algebraic structure SD alternative to trellis decoding.
Interleaving Compounding Packets & Convolution Codes
Digital Communications I: Modulation and Coding Course Spring Jeffrey N. Denenberg Lecture 3c: Signal Detection in AWGN.
1 Channel Coding: Part III (Turbo Codes) Presented by: Nguyen Van Han ( ) Wireless and Mobile Communication System Lab.
COMBINATIONAL AND SEQUENTIAL CIRCUITS Guided By: Prof. P. B. Swadas Prepared By: BIRLA VISHVAKARMA MAHAVDYALAYA.
Block Coded Modulation Tareq Elhabbash, Yousef Yazji, Mahmoud Amassi.
1 Code design: Computer search Low rate: Represent code by its generator matrix Find one representative for each equivalence class of codes Permutation.
FEC decoding algorithm overview VLSI 자동설계연구실 정재헌.
MD. TARIQ HASAN SoC Design LAB Department of Information and Communication Engineering College of Electronics and Information Engineering Chosun University.
© Tallal Elshabrawy Trellis Coded Modulation. © Tallal Elshabrawy Trellis Coded Modulation: Introduction Increases the constellation size compared to.
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
Principios de Comunicaciones EL4005
The Viterbi Decoding Algorithm
What is this “Viterbi Decoding”
Modulation and Coding Schemes
MAP decoding: The BCJR algorithm
Pipelined Architectures for High-Speed and Area-Efficient Viterbi Decoders Chen, Chao-Nan Chu, Hsi-Cheng.
Coding and Interleaving
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Subject Name: Information Theory Coding Subject Code: 10EC55
Error Correction Code (2)
Error Correction Code (2)
CONTEXT DEPENDENT CLASSIFICATION
Wireless Mesh Networks
Error Correction Code (2)
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Homework #2 Due May 29 , Consider a (2,1,4) convolutional code with g(1) = 1+ D2, g(2) = 1+ D + D2 + D3 a. Draw the.
Error Correction Coding
IV. Convolutional Codes
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm Presented by Mohamed Samir Mazloum Omar Diaa Shawky

Introduction Signaling schemes can be classified into memoryless or with memory with respect to interdependence between symbols. Memoryless: symbols are independent. Memory: symbols are interdependent. Both schemes use common tools in symbol detection, such as MAP (maximum a posteriori) rule and ML (maximum likelihood).

Viterbi Algorithm The viterbi algorithm is a dynamic programming algorithm that is used to find the most likely sequence of hidden states, called the Viterbi path. It depends on a number of assumptions: 1- Algorithm works on a finite state assumption. The number of states, however large, is ultimately finite. 2- Multiple sequences of states could lead to one state, but only one sequence is the most likely (survivor path). 3- Transition from one state to another involves a metric that is usually cumulative (additive) over states.

Viterbi Algorithm The objective of the algorithm is observing the possible sequences that could lead to a particular state, comparing the cumulative metrics of such sequences, and accordingly choose the most likely. Path history is important for the algorithm. In limited situations, programming is used to reduce the memory needed for recording history.

MLSD Maximum Likelihood Sequence Detections uses similar concepts as MAP and ML as it searches for the minimum Euclidean distance path through the trellis. The optimal detection rule:

NRZI Signal Detection Consider a Binary PAM Constellation Lets assume we start with S0

NRZI Signal Detection We then compute the D For each path entering nodes at t= 2T We then use the Viterbi algorithm to compute the min D and call it the survivor path and discard the other one.

NRZI Signal Detection At t=3T we calculate the paths entering each node. Assume survivor path (0,0) at and path (0,1) at Using the Viterbi algorithm decreases the number of paths by a factor of 2.

Hard and Soft Decision Hard Decision Vs Soft Decision 000 to represent a strongest 0 001 representing a relatively strong 0 010 representing a relatively weak 0 011 represent the weakest 0 100 represent the weakest 1 101 represents a relatively weak 1 110 represents a relatively strong 1 111 represents the strongest 1 The last 2 bits are called reliability bits.

Convolutional codes Another example of signaling schemes involving memory. The code is implemented by passing the information bit sequence through a finite state shift register, where the output bits are produced by adders that take in the bits shifted into the register. The shift register consists of K stages, and for each k bits of input, n bits of output are produced.

Convolutional codes In order to better describe convolutional codes, we utilize a number of vectors equivalent to the number of modulo-2 adders that form the outputs of the encoder. Each vector indicates which stages of the encoder are connected to the corresponding adder, where an ‘1’ represents a connection, and a ‘0’ indicates none. For example, a vector [100] indicates that out of a 3 stage shift register, only the first stage is connected to the adder.

Convolutional Codes After realizing the vectors representing the adders within the encoder, the output of the encoder is determined by convolving the input bit sequence with each of the vectors, then interleaving the bits from each convolution process.

Convolutional Codes Convolutional codes can be represented in several forms, such as tree diagrams, trellises and state diagrams.

Convolutional Codes Convolutional codes can be decoded using various methods, such as soft vs. hard decision decoding or MAP vs. ML methods. The optimum decoder in the case of convolutional codes is the MLSE (Maximum Likelihood sequence detector) due to its finite-state machine structure. The optimum decoding in this case takes place by searching through the trellis corresponding to the convolutional code, and finding the path with the smallest distance metric.

Convolutional Codes Decoding takes place as follows; the first node representing an output (after the trellis has stabilized, with an equal number of branches entering and exiting each node) is observed, and the path followed through the trellis from the initial input node to that output node is to be determined.

Convolutional Codes The viterbi algorithm is essential during the decoding process, due to its capability of choosing a survivor path having the largest path metric, and hence reducing the number of paths that are considered during ML detection, ultimately making decoding a simpler process.

Thank You Questions?