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!

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

Iterative Equalization and Decoding
Convolutional Codes Representation and Encoding  Many known codes can be modified by an extra code symbol or by deleting a symbol * Can create codes of.
Problems and Their Classes
Noise, Information Theory, and Entropy (cont.) CS414 – Spring 2007 By Karrie Karahalios, Roger Cheng, Brian Bailey.
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011
Modern Digital and Analog Communication Systems Lathi Copyright © 2009 by Oxford University Press, Inc. C H A P T E R 15 ERROR CORRECTING CODES.
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
Submission May, 2000 Doc: IEEE / 086 Steven Gray, Nokia Slide Brief Overview of Information Theory and Channel Coding Steven D. Gray 1.
Lecture 15 Hidden Markov Models Dr. Jianjun Hu mleg.cse.sc.edu/edu/csce833 CSCE833 Machine Learning University of South Carolina Department of Computer.
Cellular Communications
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.
Figure 6.1. A convolutional encoder. Figure 6.2. Structure of a systematic convolutional encoder of rate.
ECE 559 VLSI – Design Project Viterbi Decoder VLSI Design Project Spring 2002 Dan Breen Keith Grimes Damian Nowak David Rust Advisor: Prof. Goeckel.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
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.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
#4 1 Victor S. Frost Dan F. Servey Distinguished Professor Electrical Engineering and Computer Science University of Kansas 2335 Irving Hill Dr. Lawrence,
林茂昭 教授 台大電機系 個人專長 錯誤更正碼 數位通訊
ECED 4504 Digital Transmission Theory
S Advanced Digital Communication (4 cr)
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
The Viterbi Algorithm Application of Dynamic Programming-the Principle of Optimality -Search of Citation Index -213 references since 1998 Applications.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
ERROR CONTROL CODING Basic concepts Classes of codes: Block Codes
A Novel technique for Improving the Performance of Turbo Codes using Orthogonal signalling, Repetition and Puncturing by Narushan Pillay Supervisor: Prof.
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.
DIGITAL COMMUNICATIONS Linear Block Codes
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
Overview of MB-OFDM UWB Baseband Channel Codec for MB-OFDM UWB 2006/10/27 Speaker: 蔡佩玲.
1 Code design: Computer search Low rate: Represent code by its generator matrix Find one representative for each equivalence class of codes Permutation.
Classical Coding for Forward Error Correction Prof JA Ritcey Univ of Washington.
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.
296.3:Algorithms in the Real World
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
The Viterbi Decoding Algorithm
What is this “Viterbi Decoding”
Equalization in a wideband TDMA system
MAP decoding: The BCJR algorithm
Pipelined Architectures for High-Speed and Area-Efficient Viterbi Decoders Chen, Chao-Nan Chu, Hsi-Cheng.
Coding and Interleaving
Trellis Codes With Low Ones Density For The OR Multiple Access Channel
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Error Correction Code (2)
Error Correction Code (2)
Time Varying Convolutional Codes for Punctured Turbocodes
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
Presentation transcript:

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!  Each code sequence can be represented by a unique path through the trellis diagram  What is the probability that the code sequence is sent and the binary sequence is received? where p is the probability of bit error of BSC from modulation Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Decoding Rule for Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Maximum Likelihood Decoding Rule:  Choose the code sequence through the trellis which has the smallest Hamming distance to the received sequence!

The Viterbi Algorithm Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  The Viterbi Algorithm (Viterbi, 1967) is a clever way of implementing Maximum Likelihood Decoding. Computer Scientists will recognize the Viterbi Algorithm as an example of a CS technique called “ Dynamic Programming”  Reference: G. D. Forney, “ The Viterbi Algorithm”, Proceedings of the IEEE, 1973  Chips are available from many manufacturers which implement the Viterbi Algorithm for K < 10  Can be used for either hard or soft decision decoding We consider hard decision decoding initially

Basic Idea of Viterbi Algorithm Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  There are 2 rm code sequences in C m.  This number of sequences approaches infinity as m becomes large  Instead of searching through all possible sequences, find the best code sequence "one stage at a time"

The Viterbi Algorithm (Hamming Distance Metric) Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Initialization: Let time i = 0. We assign each state j a metric Z j  0  at time 0. We know that the code must start in the state 0. Therefore we assign:  Z j  0   Z j  0   for all other states

The Viterbi Algorithm (continued) Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE Consider decoding of the ith segment:  Let be the segment of n bits received between times i and i + 1  There are several code segments of n bits which lead into state j at time i+1. We wish to find the most likely one.  Let be the state from which the code segment emerged  For each state j, we assume that is the path leading into state j if: is the smallest of all the code segments leading into state j.

The Viterbi Algorithm (continued) Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Iteration: Let Let i=i+1 Repeat previous step Incorrect paths drop out as i approaches infinity.

Viterbi Algorithm Decoding Example Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  r =1/2, K = 3 code from previous example  = ( ) is sent  = ( ) is received.  What path through the trellis does the Viterbi Algorithm choose?

Viterbi Algorithm Decoding Example (continued) Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Viterbi Decoding Examples Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE There is a company Alantro with a example Viterbi decoder on the web, made available to promote their website Your browser must have JAVA-enabled

Summary of Encoding and Decoding of Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Convolutional are encoded using a finite state machine.  Optimal decoder for convolutional codes will find the path through the trellis which lies at the shortest distance to the received signal.  Viterbi algorithm reduces the complexity of this search by finding the optimal path one stage at a time.  The complexity of the Viterbi algorithm is proportional to the number of states exponential relationship to constraint length

Implementation of Viterbi Decoder Complexity is proportional to number of states – increases exponentially with constrain length K: 2 K Very suited to parallel implementation – Each state has two transitions into it – Each state has two transitions out of it – Each node must compute two path metrics, add them to previous metric and compare – Much analysis as gone into optimizing implementation of this “Butterfly” calculation Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Other Applications of Viterbi Algorithm Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Any problem that can be framed in terms of sequence detection can be solved with the Viterbi Algorithm]  MLSE Equalization  Decoding of continuous phase modulation  Multiuser detection

Continuous Operation Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  When continuous operation is desired, decoder will automatically synchronize with transmitted signal without knowing state  Optimal decoding requires waiting until all bits are received to trace back path.  In practice, it is usually safe to assume that all paths have merged after approximately 5K time intervals diminishing returns after delay of 5K

Frame Operation of Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Frequently, we desire to transfer short (e.g., 192 bit) frames with convolutional codes.  When we do this, we must find a way to terminate code trellis Truncation Zero-Padding Tail-biting  Note that the trellis code is serving as a ‘block’ code in this application

Trellis Termination: Zero Padding Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE Add K-1 0’s to the end of the data sequence to force the trellis back to the all zeros state Performance is good Now both start and ending state are known by the decoder Wastes bits in short frame

Performance of Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  When the decoder chooses a path through the trellis which diverges from the correct path, this is called an "error event“  The probability that an error event begins during the current time interval is the "first-event error probablity“ P e  The minimum Hamming distance separating any two distinct path through the trellis is called the “free distance” d free.

Calculation of Error Event Probability Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  What's the pairwise probability of choosing a path at distance d from the correct path?

Calculation of First Event Error Probability Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Evaluating Error Probability Using the Transfer Function Bound Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Finding T(D) from State Diagram Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE  Break all 0’s state in two, creating a starting state and a terminating state  Re-label every output 1 as a D  a d is the number of distinct paths leading from the starting state to the terminating state while generating the function D d

Example of State Diagram Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Performance Example for Convolutional Code Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Performance of r=1/2 Convolutional Codes with Hard Decisions Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Performance of r=1/3 Convolutional Codes with Hard Decisions Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Punctured Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE

Practical Examples of Convolutional Codes Error Control Coding, © Brian D. Woerner, reproduced by: Erhan A. INCE