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.

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
1 Channel Coding in IEEE802.16e Student: Po-Sheng Wu Advisor: David W. Lin.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Coding and Error Control
Lecture 9-10: Error Detection and Correction Anders Västberg Slides are a selection from the slides from chapter 8 from:
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.
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.
DIGITAL COMMUNICATION Coding
#4 1 Victor S. Frost Dan F. Servey Distinguished Professor Electrical Engineering and Computer Science University of Kansas 2335 Irving Hill Dr. Lawrence,
Viterbi Decoder Project Alon weinberg, Dan Elran Supervisors: Emilia Burlak, Elisha Ulmer.
FPGA-Based System Design: Chapter 5 Copyright  2004 Prentice Hall PTR Topics n Basics of sequential machines. n Sequential machine specification. n Sequential.
Introduction to Digital Logic Design Appendix A of CO&A Dr. Farag
S Advanced Digital Communication (4 cr)
Linear Codes.
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
Cyclic codes 1 CHAPTER 3: Cyclic and convolution codes Cyclic codes are of interest and importance because They posses rich algebraic structure that can.
1 S Advanced Digital Communication (4 cr) Cyclic Codes.
Channel Coding and Error Control
Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 1 Chapter 4 Channel Coding.
CHANNEL CODING TECHNIQUES By K.Swaraja Assoc prof MREC
1 Systematic feedback (recursive) encoders G’(D) = [1,(1 + D 2 )/(1 + D + D 2 ),(1 + D)/(1 + D + D 2 ) ] Infinite impulse response (not polynomial) Easier.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
III. Turbo 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.
1 –Mandatory exercise for Inf 244 –Deadline: October 29th –The assignment is to implement an encoder/decoder system.
Basic Characteristics of Block Codes
Introduction of Low Density Parity Check Codes Mong-kai Ku.
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
Turbo Codes COE 543 Mohammed Al-Shammeri. Agenda PProject objectives and motivations EError Correction Codes TTurbo Codes Technology TTurbo decoding.
ADVANTAGE of GENERATOR MATRIX:
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
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.
Error Detection and Correction – Hamming Code
Chapter 8 李莉. 信息机电学院. SHNU. Linearcodes: 1 infor. bit  1 codeword; (n,k)or [n,k,d] , k-bit infor.  one n-bit codeword Convolution code:. 1 infor. bit.
DIGITAL SYSTEMS Sequential Logic Design November 28, 2004 Rudolf Tracht and A.J. Han Vinck.
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? 指導教授:黃文傑 博士 學生:吳濟廷
Module 11.  In Module 9, we have been introduced to the concept of combinational logic circuits through the examples of binary adders.  Meanwhile, in.
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.
Cyclic Linear Codes. p2. OUTLINE  [1] Polynomials and words  [2] Introduction to cyclic codes  [3] Generating and parity check matrices for cyclic.
1 Code design: Computer search Low rate: Represent code by its generator matrix Find one representative for each equivalence class of codes Permutation.
II. Linear Block Codes. © Tallal Elshabrawy 2 Digital Communication Systems Source of Information User of Information Source Encoder Channel Encoder Modulator.
Classical Coding for Forward Error Correction Prof JA Ritcey Univ of Washington.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes.
Quantum Shift Register Circuits Mark M. Wilde arXiv: National Institute of Standards and Technology, Wednesday, June 10, 2009 To appear in Physical.
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
Cyclic Codes 1. Definition Linear:
MAP decoding: The BCJR algorithm
Pipelined Architectures for High-Speed and Area-Efficient Viterbi Decoders Chen, Chao-Nan Chu, Hsi-Cheng.
S Digital Communication Systems
Subject Name: Information Theory Coding Subject Code: 10EC55
Subject Name: Information Theory Coding Subject Code: 10EC55
IV. Convolutional Codes
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.
IV. Convolutional Codes
Presentation transcript:

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 and the m preceding input blocks. History: Elias (1955) Introduced the codes Wozencraft (1961) Sequential decoding Massey (1963) Majority logic decoding Viterbi (1967) ML decoding Berrou et. al. (1993) Turbo codes

2 Descriptions and representations Shift register representation Scalar encoder matrix representation ”Polynomial” matrix representation State diagram representation Trellis representation Tree representation Parity check matrix/Syndrome former representation

3 Example Controller canonical form k input sequences enter from the left; n output sequences produced by external mod-2 adders Input sequence u = (u 0,u 1,u 2,,… ) Output sequence v = (v 0 (0), v 0 (1), v 1 (0), v 1 (1), v 2 (0), v 2 (1), …) Impulse response sequences: u= (1,0,0,0,…) produces output g (0) = (1, 0, 1, 1) g (1) = (1, 1, 1, 1)

4 Example (cont.) Input sequence u = (u 0,u 1,u 2,,… ) Output sequence v = (v 0 (0), v 0 (1), v 1 (0), v 1 (1), v 2 (0), v 2 (1), …) Impulse response sequences: u= (1,0,0,0,…) produces output g (0) = (1, 0, 1, 1) g (1) = (1, 1, 1, 1) Encoding equations v l (0) = u l + u l u l - 3 v l (1) = u l + u l u l u l – 3 Or, simplified v (0) = u * g (0), v (1) = u * g (1) * is a discrete convolution v (j) = u * g (j) =  i=0..m u l – i g i u l – i = 0 for l<i

5 Scalar encoder matrix method Encoding of u: v = uG Example (continued): For u = ( ….)

6 Example: (3,2,1) convolutional code Impulse response sequences: g i (j) corresponds to input i, output j g 1 (0) = (1, 1), g 1 (1) = (0, 1), g 1 (2) = (1, 1) g 2 (0) = (0, 1), g 2 (1) = (1, 0), g 2 (2) = (1, 0)

7 Example: (3,2,1) CC g 1 (0) = (1, 1), g 1 (1) = (0, 1), g 1 (2) = (1, 1) g 2 (0) = (0, 1), g 2 (1) = (1, 0), g 2 (2) = (1, 0) Encoding equations v l (0) = u l (1) + u l - 1 (1) + u l - 1 (2) v l (1) = u l (2) + u l - 1 (1) v l (2) = u l (1) + u l (2) + u l - 1 (1) Or, simplified v (0) = u (1) * g 1 (0) + u (2) * g 2 (0) v (1) = u (1) * g 1 (1) + u (2) * g 2 (1) v (2) = u (1) * g 1 (2) + u (2) * g 2 (2)

8 (3,2,1) CC, generator matrix In general for an (n,k,m) CC, the generator matrix is where

9 Important definitions Nominal code rate R = k/n Length of ith shift register: i Encoder memory order m = max 0  i  k-1 i The overall constraint length =  0  i  k-1 i An (n,k, ) convolutional code is the set of all output sequences produced by an (n,k, ) convolutional encoder Effective code rate R eff : Input length kL, output length is n(L+m) R eff = kL / n(L+m) = RL/(L+m)

10 Polynomial matrix representation A (2,1,m) CC can be described by a polynomial (transform domain) representation of the input, output and generator sequences u(D) = u 0 + u 1 D +u 2 D 2 + … v (i) (D) = v 0 + v 1 (i) D +v 2 (i) D 2 + … for i=0,1 g (i) (D) = g 0 + g 1 (i) D +g 2 (i) D 2 + …+ g m (i) D m for i=0,1 Then the encoding can be written as v (i) (D) = u(D) g (i) (D) for i=0,1 Combining the output streams: v = (v 0 (0), v 0 (1), v 1 (0), v 1 (1), v 2 (0), v 2 (1), …) v(D) = v (0) (D 2 ) + Dv (1) ( D 2 )

11 Example (2,1,3) code: g (0) = (1, 0, 1, 1), g (1) = (1, 1, 1, 1) g (0) (D) = 1 + D 2 + D 3, g (1) (D) = 1 + D + D 2 + D 3 Encoding equations: v (i) (D) = u(D) g (i) (D) for i=0,1 Polynomial matrix form (Transform domain form): ( v (0) (D), v (1) (D) ) = u(D) ( g (0) ( D), g (1) (D) ) In general:

12 Transform domain: Relation to constraint length Length of ith shift register: i = max 0  j  n-1 deg g i (j) (D)

13 Systematic encoders An (n,k,m) convolutional encoder is systematic if the first k output sequences are a copy of the k information sequences. All convolutional codes have systematic encoders, but there are codes that do not have feedforward systematic encoders

14 Parity check matrices Starting with a systematic feedforward generator matrix it is easy to find a parity check matrix for the code: Thus for any codeword v vH T =0

15 Transform domain Starting with a systematic feedforward generator matrix it is easy to find a parity check matrix for the code: Thus for any codeword v v(D) H T (D) = 0(D) Parity check matrices exist for all convolutional codes (But they are less straightforward to find)

16 Example – Systematic encoder G(D) = [1, 1 + D + D 3 ]

17 Another example, and another encoder form Controller canonical form Observer canonical form one shift register per output sequence, modulo 2 adders internal to the shift registers Highest degree term at the left Note: Different memory requirements

18 Systematic feedback (recursive) encoders G(D) = [1 + D + D 2, 1 + D 2, 1 + D] G(D) = [D 2 + D + 1, D 2 + 1, D + 1] G’(D) = [1,(1 + D 2 )/(1 + D + D 2 ),(1 + D)/(1 + D + D 2 ) ] Infinite impulse response (not polynomial) Easier to represent in transform domain Generates the same set of words as G(D) Different encoder mapping Again easy to obtain parity check matrix

19 Suggested exercises