1 Channel Coding (II) Cyclic Codes and Convolutional Codes.

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

1 S Digital Communication Systems Cyclic Codes.
Cyclic Code.
Error Control Code.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CHANNEL CODING REED SOLOMON CODES.
II. Linear Block Codes. © Tallal Elshabrawy 2 Last Lecture H Matrix and Calculation of d min Error Detection Capability Error Correction Capability Error.
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
Cellular Communications
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Chien Hsing James Wu David Gottesman Andrew Landahl.
DIGITAL COMMUNICATION Coding
Error detection/correction FOUR WEEK PROJECT 1 ITEMS TO BE DISCUSSED 1.0 OVERVIEW OF CODING STRENGTH (3MINS) Weight/distance of binary vectors Error detection.
Chapter 11 Error-Control CodingChapter 11 : Lecture edition by K.Heikkinen.
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)
Cyclic codes 1 CHAPTER 3: Cyclic and convolution codes Cyclic codes are of interest and importance because They posses rich algebraic structure that can.
USING THE MATLAB COMMUNICATIONS TOOLBOX TO LOOK AT CYCLIC CODING Wm. Hugh Blanton East Tennessee State University
1 S Advanced Digital Communication (4 cr) Cyclic Codes.
Channel Coding and Error Control
Part.7.1 Copyright 2007 Koren & Krishna, Morgan-Kaufman FAULT TOLERANT SYSTEMS Part 7 - Coding.
CHANNEL CODING TECHNIQUES By K.Swaraja Assoc prof MREC
Application of Finite Geometry LDPC code on the Internet Data Transport Wu Yuchun Oct 2006 Huawei Hisi Company Ltd.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
S Transmission Methods in Telecommunication System (5cr) Error Control Coding.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
March 29, 2005Week 11 1 EE521 Analog and Digital Communications James K. Beard, Ph. D. Tuesday, March 29, 2005
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes.
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
Cyclic Redundancy Check CRC Chapter CYCLIC CODES Cyclic codes are special linear block codes with one extra property. In a cyclic code, if a codeword.
Linear Feedback Shift Register. 2 Linear Feedback Shift Registers (LFSRs) These are n-bit counters exhibiting pseudo-random behavior. Built from simple.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 12.
Basic Characteristics of Block Codes
DIGITAL COMMUNICATIONS Linear Block Codes
EE 430 \ Dr. Muqaibel Cyclic Codes1 CYCLIC CODES.
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.
Error Detection. Data can be corrupted during transmission. Some applications require that errors be detected and corrected. An error-detecting code can.
Basic Concepts of Encoding Codes and Error Correction 1.
Error Detection and Correction – Hamming Code
Error Detection and Correction
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.
Dr. Muqaibel \ EE430 Convolutional Codes 1 Convolutional Codes.
INFORMATION THEORY Pui-chor Wong.
SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Convolutional Codes.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Richard Cleve DC 2117 Introduction to Quantum Information Processing QIC 710 / CS 667 / PH 767 / CO 681 / AM 871 Lecture (2011)
CHAPTER 8 CHANNEL CODING: PART 3 Sajina Pradhan
ECE 442 COMMUNICATION SYSTEM DESIGN LECTURE 10. LINEAR BLOCK CODES Husheng Li Dept. of EECS The University of Tennessee.
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.
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.
V. Non-Binary Codes: Introduction to Reed Solomon Codes
Modulo-2 Digital coding uses modulo-2 arithmetic where addition becomes the following operations: 0+0= =0 0+1= =1 It performs the.
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
The Viterbi Decoding Algorithm
Communication Networks: Technology & Protocols
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Subject Name: Information Theory Coding Subject Code: 10EC55
IV. Convolutional Codes
Cyclic Code.
IV. Convolutional Codes
Chapter 10 Error Detection and Correction
Presentation transcript:

1 Channel Coding (II) Cyclic Codes and Convolutional Codes

ECED of 20 Topics today u Cyclic codes –presenting codes: code polynomials –systematic and non-systematic codes –generating codes: generator polynomials –encoding/decoding circuits realized by shift registers u Convolutional codes –presenting codes t convolutional encoder t code trees and state diagram t generator sequences

ECED of 20 Defining cyclic codes: code polynomial u An (n,k) linear code X is called a cyclic code when every cyclic shift of a code X, as for instance X’, is also a code, e.g. u Each cyclic code has the associated code vector with the polynomial u Note that the (n,k) code vector has the polynomial of degree of n-1 or less. Mapping between code vector and code polynomial is one-to-one, e.g. they specify the same code uniquely u Manipulation of the associated polynomial is done in a Galois field (for instance GF(2)) having elements {0,1}, where operations are performed mod-2 u For each cyclic code, there exist only one generator polynomial whose degree equals the number of check bits in the encoded word

ECED of 20 The common factor of cyclic codes u GF(2) operations (XOR and AND): u Cyclic codes have a common factor p n +1. In order to see this we consider summing two (unity shifted) cyclic code vectors: u Question is how to make the cyclic code from the multiplied code? Adding the last two equations together reveals the common factor: Right rotated Right shifted by multiplication Unshifted

ECED of 20 Factoring cyclic code generator polynomial u Any factor of p n +1 (Note: decompose it into factors) with the degree q=n-k generates an (n,k) cyclic code u Example: Consider the polynomial p This can be factored as u For instance the factors 1+p+p 3 or 1+p 2 +p 3, can be used to generate an unique cyclic code. For a message polynomial 1+p 2 (I.e. 110), the following encoded word is generated: and the respective code vector (of degree n-1, n=7, in this case) is

ECED of 20 Obtaining a cyclic code from another cyclic code u Therefore unity cyclic shift is obtained by (1) multiplication by p where after (2) division by the common factor yields a cyclic code and by induction, any cyclic shift is obtained by u Example: right shift 101 u (n=3) u Important point is that division by mod p n +1 and multiplication by the generator polynomial is enabled by tapped shift register. not a three-bit code, divide by the common factor

ECED of 20 Using shift registers for multiplication u Figure shows a shift register to realize multiplication by 1+p 2 +p 3 u In practice, multiplication can be realized by two equivalent topologies:

ECED of 20 Example: multiplication by using a shift register determined by the tapped connections word to be encoded adding dashed line would enable division by 1+p n Encoded word

ECED of 20 Examples of cyclic code generator polynomials u The generator polynomial for a (n,k) cyclic code is defined by and G(p) is a factor of p n +1. Any factor of p n +1 that has the degree q may serve as the generator polynomial. We noticed that a code is generated by the multiplication where M(p) is a block of k message bits. Hence this gives a criterion to select the generator polynomial, e.g. it must be a factor of p n +1. u Only few of the possible generating polynomials yield high quality codes (in terms of their minimum Hamming distance) Some cyclic codes:

ECED of 20 Systematic cyclic codes u Define the length q=n-k check vector C and the length-k message vector M by u Thus the systematic n:th degree codeword polynomial is Check bits determined by: check bits message bits

ECED of 20 Determining check-bits u Prove that the check-bits can be calculated from the message bits M(p) by checkmessage Example: (7,4) Cyclic code: must be a systematic code based on its definition (previous slide)

ECED of 20 Example: Encoding of systematic cyclic codes

ECED of 20 Decoding cyclic codes u Every valid, received code word R(p) must be a multiple of G(p), otherwise an error has occurred. (Assume that the probability for noise to convert code words to other code words is very small.) u Therefore dividing the R(p)/G(p) and considering the remainder as a syndrome can reveal if the error has happened and sometimes also to reveal in which bit (depending on code strength) u The error syndrome of n-k-1 degree is therefore u This can be expressed also in terms of error E(p) and the code word X(p) error syndrome S(p) is:

ECED of 20 Decoding cyclic codes: example Using denotation of this example:

ECED of 20 Table 16.6 Decoding cyclic codes (cont.) msg code error error syndrome

ECED of 20 Part II. Convolutional coding u Block codes are memoryless u Convolution codes have memory that utilizes previous bits to encode or decode following bits u Convolutional codes are specified by n, k and constraint length that is the maximum number of information symbols upon which the symbol may depend u Thus they are denoted by (n,k,L), where L is the code memory depth u Convolutional codes are commonly used in applications that require relatively good performance with low implementation cost u Convolutional codes are encoded by circuits based on shift registers and decoded by several methods as t Viterbi decoding that is a maximum likelihood method t Sequential decoding (performance depends on decoder complexity) t Feedback decoding (simplified hardware, lower performance)

ECED of 20 Example: convolutional encoder u Convolutional encoder is a finite state machine processing information bits in a serial manner u Thus the generated code word is a function of input and the state of the machine at that time instant u In this (n,k,L)=(2,1,2) encoder, each message bit influences a span of n(L+1)=6 successive output bits that is the code constraint length u Thus (n,k,L) convolutional code is produced that is a 2 n(L-1) state finite- state machine (n,k,L) = (2,1,2) encoder

ECED of 20 (3,2,1) Convolutional encoder Here each message bit influences a span of n(L+1)=3(1+1)=6 successive output bits

ECED of 20 Tells how one input bit is transformed into two output bits (initially register is all zero) Representing convolutional code: code tree

ECED of 20 Representing convolutional codes compactly: code trellis and state diagram Shift register states Input state ‘1’ indicated by dashed line