EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

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.
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!
Noise, Information Theory, and Entropy (cont.) CS414 – Spring 2007 By Karrie Karahalios, Roger Cheng, Brian Bailey.
Error Control Code.
6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
Cellular Communications
Turbo Codes – Decoding and Applications Bob Wall EE 548.
DIGITAL COMMUNICATION Coding
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Chapter 11 Error-Control CodingChapter 11 : Lecture edition by K.Heikkinen.
ECE 559 VLSI – Design Project Viterbi Decoder VLSI Design Project Spring 2002 Dan Breen Keith Grimes Damian Nowak David Rust Advisor: Prof. Goeckel.
EC 723 Satellite Communication Systems
EE436 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
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.
DIGITAL COMMUNICATION Coding
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
ECED 4504 Digital Transmission Theory
S Advanced Digital Communication (4 cr)
1 S Advanced Digital Communication (4 cr) Cyclic Codes.
Channel Coding and Error Control
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
Cyclic Codes for Error Detection W. W. Peterson and D. T. Brown by Maheshwar R Geereddy.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
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
Word : Let F be a field then the expression of the form a 1, a 2, …, a n where a i  F  i is called a word of length n over the field F. We denote the.
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:
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
Timo O. Korhonen, HUT Communication Laboratory 1 Convolutional encoding u Convolutional codes are applied in applications that require good performance.
Basic Concepts of Encoding Codes and Error Correction 1.
Error Correction Code (2)
Error Detection and Correction – Hamming Code
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
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.
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.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
Interleaving Compounding Packets & Convolution Codes
1 Product Codes An extension of the concept of parity to a large number of words of data 0110… … … … … … …101.
Richard Cleve DC 2117 Introduction to Quantum Information Processing QIC 710 / CS 667 / PH 767 / CO 681 / AM 871 Lecture (2011)
1 Convolutional Codes An (n,k,m) convolutional encoder will encode a k bit input block into an n-bit ouput block, which depends on the current input block.
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.
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
The Viterbi Decoding Algorithm
What is this “Viterbi Decoding”
Coding and Interleaving
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Subject Name: Information Theory Coding Subject Code: 10EC55
Subject Name: Information Theory Coding Subject Code: 10EC55
Error Correction Code (2)
Error Correction Code (2)
DIGITAL COMMUNICATION Coding
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
Theory of Information Lecture 13
IV. Convolutional Codes
Presentation transcript:

EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14

EEE377 Lecture Notes2 Convolutional Codes Unlike block codes that operate on block-by-block basis, the convolutional codes are based on message bits that come in serially rather than in blocks. The structure of a generic convolutional encoder can be written in a compact form of (n, k, L) ; n= no of streams, or no of modulo-2 adder; k=number of group of shift register; L=number of state of the shift register The encoder takes an L-bit message sequence to produce a coded output sequence of length n(L+M) bits, where n=no of stream of the encoded bits, M=no of bits of message sequence The encoder is implemented by a tapped shift register with L+1 stages.

EEE377 Lecture Notes3 Convolutional Codes The message bits in the register are combined by modulo-2 addition to form the encoded bit, c j C j = m j-L.g L + …..+ m j-1.g 1 + m j.g 0 = cjcj

EEE377 Lecture Notes4 Convolutional Codes – Example A (2,1,2) convolutional encoder with n=2, k=1 and L=2 c’ j c’’ j

EEE377 Lecture Notes5 Convolutional Codes To provide the extra check bits for error control, the encoded bits from multiple streams are interleaved. For example, a convolutional encoder with n=2 (ie two streams of encoded bits) Encoded bits from stream 1, c’ j = m j-2 + m j-1 + m j c’ j c’’ j Encoded bits from stream 2, c’’ j = m j-2 + m j interleaved C= c’ 1 c’’ 1 c’ 2 c’’ 2 c’ 3 c’’ 3 ………..

EEE377 Lecture Notes6 Convolutional Codes Each stream may be characterised in terms of its impulse response ( the response of that stream to a symbol 1 with zero initial condition). Every stream is also characterised in terms of a generator polynomial, which is the unit-delay transform of the impulse response Let the following generator sequence denotes the impulse response of the i-th path The generator polynomial of the i-th path is given by Where D denotes the unit-delay variable

EEE377 Lecture Notes7 Convolutional Codes – Example A convolutional encoder with two streams of encoded bits with message sequence as an input c’ j c’’ j Stream 1 Stream 2 First, we find the impulse response of both streams to a symbol 1. Impulse response of stream 1 = (1 1 1) Impulse response of stream 2 = (1 0 1) Then, write the corresponding generator polynomial of both streams

EEE377 Lecture Notes8 Convolutional Codes – Example First, we find the impulse response of both streams to a symbol 1. Impulse response of stream 1 = (1 1 1) Impulse response of stream 2 = (1 0 1) Then, write the corresponding generator polynomials of both streams Then, write the message polynomial for input message (10011) Then, find the output polynomial for both streams by multiplying the generator polynomial and the message polynomial

EEE377 Lecture Notes9 Convolutional Codes – Example Then, find the output polynomial for both streams by multiplying the generator polynomial and the message polynomial = (1 + D + D 2 )(1 + D 3 + D 4 ) = 1 + D + D 2 + D 3 + D 6 = (1 + D 2 )(1 + D 3 + D 4 ) = 1 + D 2 + D 3 + D 4 + D 5 + D 6 So, the output sequence for stream 1 is The output sequence for stream 2 is Interleave C = 11,10,11,11,01,01,11 Original message (10011) Encoded sequence ( )

EEE377 Lecture Notes10 Convolutional Codes – Exercise A convolutional encoder with two streams of encoded bits with message sequence as an input c’ j c’’ j Stream 1 Stream 2

EEE377 Lecture Notes11 Convolutional Codes – Exercise First, we find the impulse response of both streams to a symbol 1. Impulse response of stream 1 = (1 1 1) Impulse response of stream 2 = (1 0 1) Then, write the corresponding generator polynomials of both streams Then, write the message polynomial for input message ( ) Then, find the output polynomial for both streams by multiplying the generator polynomial and the message polynomial

EEE377 Lecture Notes12 Convolutional Codes – Exercise Then, find the output polynomial for both streams by multiplying the generator polynomial and the message polynomial = 1 + D 5 + D 7 + D 8 + D 9 + D 10 = 1 + D +D 2 + D 4 + D 6 + D 7 + D 8 + D 10 So, the output sequence for stream 1 is The output sequence for stream 2 is Interleave C = Original message ( ) Encoded sequence ( )

EEE377 Lecture Notes13 Convolutional Codes – Code Tree, Trellis and State Diagram Draw a code tree for the convolutional encoder below. c’ j c’’ j Stream 1 Stream 2

EEE377 Lecture Notes14 Code Tree

EEE377 Lecture Notes15 Trellis

EEE377 Lecture Notes16 State Diagram

EEE377 Lecture Notes17 Maximum Likelihood Decoding of a Convolutional Code Let m denotes a message vector c denotes the corresponding code vector r the received code vector (which may differ from c due to channel noise) Given the received vector r, the decoder is required to make an estimate m^ of the message vector Since there is a one-to-one correspondence between the message vector m and the code vector c, therefore m^ = m only if c^ = c, otherwise a decoding error is committed The decoding rule is said to be optimum when the probability of decoding error is minimised

EEE377 Lecture Notes18 Maximum Likelihood Decoding of a Convolutional Code Let say both the transmitted code vector c and the received vector r represent binary sequence of length N. These two sequences may differ from each other in some locations because of errors due to channel noise. Let c i and r i denote the ith element of c and r respectively We then have The decoding rule is said to be optimum when the probability of decoding error is minimised

EEE377 Lecture Notes19 Correspondingly, the log-likelihood is Let the transition probability be defined as If The probability of decoding error is minimised if the log-likelihood function is maximized (the estimate c^ is chosen to maximise the function)

EEE377 Lecture Notes20 Suppose also that the received vector r differs from the transmitted code vector c in exactly d positions (where d is the Hamming distance between vectors r and c) We may rewrite the log-likelihood function as

EEE377 Lecture Notes21 In general, the probability of error occurring is low enough for us to assume p < ½ And also that Nlog(1-p) is constant for all c. The function is maximised when d is minimised. (ie the smallest Hamming distance) “ Choose the estimate c^ that minimise the Hamming distance between The received vector r and the transmitted vector c.” The maximum likelihood decoder is reduced to a minimum distance decoder. The received vector r is compared with each possible transmitted code vector c and the particular one “closest” to r is chosen as the correct transmitted code vector.

EEE377 Lecture Notes22 The Viterbi Algorithm The equivalence between maximum likelihood decoding and minimum distance decoding implies that we may decode a convolutional code by choosing a path in the code tree whose coded sequence differs from the received sequence in the fewest number of places Since a code tree is equivalent to a trellis, we may limit our choice to the possible paths in the trellis representation of the code. Viterbi algorithm operates by computing a metric or discrepancy for every possible path in the trellis The metric for a particular path is defined as the Hamming distance between the coded sequence represented by that path and the received sequence. For each state in the trellis, the algorithm compares the two paths entering the node and the path with the lower metric is retained. The retained paths are called survivors. The sequence along the path with the smallest metric is the maximum likelihood choice and represent the transmitted sequence

EEE377 Lecture Notes23 The Viterbi Algorithm -example In the circuit below, suppose that the encoder generates an all-zero sequence and that the received sequence is ( …) in which the are two errors due to channel noise: one in second bit and the other in the sixth bit. We can show that this double-error pattern is correctable using the Viterbi algorithm. c’ j c’’ j Stream 1 Stream 2

EEE377 Lecture Notes24 The Viterbi Algorithm -example

EEE377 Lecture Notes25 The Viterbi Algorithm -exercise Using the same circuit, suppose that the received sequence is Using the Viterbi algorithm, what is the corresponding encoded sequence transmitted by the receiver? What is the original message bit?