Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.

Slides:



Advertisements
Similar presentations
Mahdi Barhoush Mohammad Hanaysheh
Advertisements

1 S Digital Communication Systems Cyclic Codes.
Computer Networking Error Control Coding
II. Linear Block Codes. © Tallal Elshabrawy 2 Last Lecture H Matrix and Calculation of d min Error Detection Capability Error Correction Capability Error.
Information Theory Introduction to Channel Coding Jalal Al Roumy.
Cellular Communications
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
DIGITAL COMMUNICATION Coding
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Orthogonality and Least Squares
DIGITAL COMMUNICATION Coding
15-853Page :Algorithms in the Real World Error Correcting Codes I – Overview – Hamming Codes – Linear Codes.
3F4 Error Control Coding Dr. I. J. Wassell.
Linear codes 1 CHAPTER 2: Linear codes ABSTRACT Most of the important codes are special types of so-called linear codes. Linear codes are of importance.
Syndrome Decoding of Linear Block Code
Linear Codes.
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
1 S Advanced Digital Communication (4 cr) Cyclic Codes.
Channel Coding and Error Control
Channel Coding Part 1: Block Coding
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
Information and Coding Theory Linear Block Codes. Basic definitions and some examples. Juris Viksna, 2015.
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
Information Coding in noisy channel error protection:-- improve tolerance of errors error detection: --- indicate occurrence of errors. Source.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes.
ERROR CONTROL CODING Basic concepts Classes of codes: Block 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.
Chapter 3 Digital Transmission Fundamentals Line Coding Error Detection and Correction.
Introduction to Coding Theory. p2. Outline [1] Introduction [2] Basic assumptions [3] Correcting and detecting error patterns [4] Information rate [5]
Lecture 3-2: Coding and Error Control (Cont.) ECE
Basic Characteristics of Block Codes
CS717 Algorithm-Based Fault Tolerance Matrix Multiplication Greg Bronevetsky.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
§6 Linear Codes § 6.1 Classification of error control system § 6.2 Channel coding conception § 6.3 The generator and parity-check matrices § 6.5 Hamming.
DIGITAL COMMUNICATIONS Linear Block Codes
6876: Communication Networks ERROR CONTROL STRATEGIES Error Control Strategies Forward Error Correction (FEC) Automatic Repeat Request (ARQ)
EE 430 \ Dr. Muqaibel Cyclic Codes1 CYCLIC CODES.
ADVANTAGE of GENERATOR MATRIX:
Linear Block Code 指導教授:黃文傑 博士 學生:吳濟廷
Chapter 31 INTRODUCTION TO ALGEBRAIC CODING THEORY.
AGC DSP AGC DSP Professor A G Constantinides©1 Signal Spaces The purpose of this part of the course is to introduce the basic concepts behind generalised.
Information Theory Linear Block Codes Jalal Al Roumy.
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
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.
Some Computation Problems in Coding Theory
Error Detection and Correction
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
INFORMATION THEORY Pui-chor Wong.
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.
1 Product Codes An extension of the concept of parity to a large number of words of data 0110… … … … … … …101.
CHAPTER 8 CHANNEL CODING: PART 3 Sajina Pradhan
Extending a displacement A displacement defined by a pair where l is the length of the displacement and  the angle between its direction and the x-axix.
II. Linear Block Codes. © Tallal Elshabrawy 2 Digital Communication Systems Source of Information User of Information Source Encoder Channel Encoder Modulator.
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.
Channel Coding: Part I Presentation II Irvanda Kurniadi V. ( ) Digital Communication 1.
RS – Reed Solomon Error correcting code. Error-correcting codes are clever ways of representing data so that one can recover the original information.
Chapter 6.
Subject Name: Information Theory Coding Subject Code: 10EC55
Block codes. encodes each message individually into a codeword n is fixed, Input/out belong to alphabet Q of cardinality q. The set of Q-ary n-tuples.
Information Redundancy Fault Tolerant Computing
Standard Array.
DIGITAL COMMUNICATION Coding
II. Linear Block Codes.
Error Correction Coding
Presentation transcript:

Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear Block Codes -Cyclic Codes -Convolutional Codes -BCH Codes -Reed Solomone (RS) codes

Block Error Control Codes A block error control code C consists of a set of M code words { c 0,c 1,c 2,……,c M-1 ). Each code word is of the form c = (c 0,c 1,…….,c n-1 ). If the values are taken from the Galois field GF(q) then the code is said to be q-ary Error Control Coding © Erhan A. Ince

Uncoded Data Stream Encoding Process 1.Breaking up the data stream into blocks 2.Mapping these blocks onto code words in C Error Control Coding © Erhan A. Ince Block Encoder Coded Data Stream k-symbol block n-symbol block

Encoding process… If M = q k then the encoder breaks the data stream into k- symbol blocks. If M is not in the above form the encoder must work on messages of varying length. Message Blocks Code Words (000) ( ) (001) ( ) (010) ( ) (011) (100) (101) (1100) (1101) (11100) (11101) (11110) ( ) (11111) ( ) Error Control Coding © Erhan A. Ince Ex: Binary Hadmard Code A 12 Consists of 12 code words of length 11. The information Blocks must be of varying length

Error Control Coding © Erhan A. Ince Since # of valid code words < # of possible n-symbol blocks redundancy = r = n – log q M There are (q n -M) n-symbol patterns which are not associated with data blocks and thus are not valid code words. The code C is said to contain redundancy. If M = q k, then r simplifies to the difference r = ( n - k )

Rate of a Block Code If M represents the number of code words each of length n in a code C  The rate of C is :  For M =q k then Error Control Coding © Erhan A. Ince

If the received word is found to be invalid, then receiver assumes that channel has caused multiple symbol errors. The determination of whether errors are present is ERROR DETECTION An error pattern is undetectable if it causes the received word to be a valid code other than the one transmitted. Given a transmitted code word c there are (M-1) code words other than c hence (M-1) undetectable error patterns. Error Control Coding © Erhan A. Ince c =(c 0,c 1,…..c n-1 ) Transmitted Codeword e =(e 0,e 1,…..e n-1 ) Error pattern r =(r 0,r 1,…..r n-1 ) Received Codeword Comm Channel

The decoder may react in a number of ways Error Control Coding © Erhan A. Ince Request a retransmission of the word (ARQ) (automatic repeat request) Tag the word as being incorrect and pass it along the datasink(muting ) Attempt to correct the errors in the received word Final option is referred to as : FORWARD ERROR CORRECTION (FEC)

Code Weight The weight of a code word or error pattern is the number of nonzero coordinates in the code word or error pattern. Weight of a codeword is generally shown as w(c) Example: w(1,0,0,1,1,0,1,1,1,1) = 7 w(  3,  29,0,0,1,  6,0) = 4 Error Control Coding © Erhan A. Ince

Distance between codes Assume we have a pair of n-symbol blocks: v = (v 0,v 1,……, v n-1 ) w=(w 0,w 1,……,w n-1 ) We can discuss the distance, d( v, w ), between these two blocks in a number of ways: If we talk about Euclidean distance Euclidean distance is used extensively in the analysis of convolutional and trellis codes Error Control Coding © Erhan A. Ince

Distance of codes … With block codes we talk more of the time about Hamming Distance. This is the number of coordinates in which the two blocks differ: Error Control Coding © Erhan A. Ince

Minimum Distance The minimum distance of a block code C is the minimum Hamming distance between all distinct pairs of code words in C. This minimum distance is denoted as d min. A transmitted codeword is guaranteed to differ in at least d min coordinates from any other code word. For an error pattern to be undetectable it must change the symbol values in the transmitted code word in at least d min coordinates.  A code with minimum distance d min can detect all error patterns of weight less than or equal to (d min –1) Error Control Coding © Erhan A. Ince

In FEC systems goal is to minimize the probability of decoder error given a received word r. The maximum a posteriori decoder identifies the code word c i that maximize : p(c=c i | r) p(c| r) is the probability that code word c is transmitted on receipt of code word r. The maximum likelihood decoder (ML) identifies the code word c i that maximizes: p(r| c=c i ). p(c|r) Two expressions can be related by Baye’s rule Error Control Coding © Erhan A. Ince

The conditional probability p(r|c) is equal to the probability of occurrence of the error pattern e= (r - c) given that c has been transmitted since lower-weight error patterns are more likely to occur than the higher weight ones  The codeword c i that maximizes p(r|c i ) is the codeword that minimize the d(r,c i )=w(r-c) The maximum likelihood transmitted codeword is thus the code word that is closest in Hamming distance to the received word r. Error Control Coding © Erhan A. Ince

A decoder error occurs when the received word is closer to an incorrect code word than to the correct code word. By definition incorrect code words are at least d min away from the transmitted code word Therefore decoder errors are possible only if the weight of the error pattern induced by the channel is greater than or equal to d min /2  A code with minimum distance d min can correct all error patterns of weight less than or equal to (d min –1) /2 Error Control Coding © Erhan A. Ince

Error Control Coding © Erhan A. Ince  Consider a block code U  consisting of n-tuples {V 1,V 2,……V n-1 }of symbols from FG(q). U is a q-ary linear code if and only if U forms a vector subspace over GF(q) FG(q) is a Galois Field DEFINITION

Linear Block Codes - are a class of parity check codes that can be characterized by the (n,k) notation - The encoder transforms a block of k message digits into a longer block code of n codeword digits (a code vector) - If the alphabet consists of two elements (0 and 1) the code is a binary code - k-bit messages form 2 k distinct message sequences referred to as the k-tuples. - the n-bit blocks can form as many as 2 n distinct sequences known as n-tuples. Error Control Coding © Erhan A. Ince

 The encoding process assigns to each of the 2 k message k-tuples one of the 2 n n-tuples.  The mapping is accomplished by a look-up table. For linear codes the mapping transformation is of course linear VECTOR SPACES The set of all binary n-tuples, V n, is called a vector space over the binary field of two elements (0 and 1). A binary field has two operations, addition and multiplication such that the results of all operations are in the same set of two elements. The arithmetic operations of addition and multiplication are defined by the conventions of the algebraic field. Error Control Coding © Erhan A. Ince

 In a binary field the rules are: Error Control Coding © Erhan A. Ince VECTOR SUBSPACES A subset S of the vector space V n is called the subspace if the following two conditions are satisfied: 1.The all-zero vector is in S 2.The sum of any two vectors in S is also in S (known as closure property)

Error Control Coding © Erhan A. Ince 2 k n-tuples Constitude subspace of code words 2 n n-tuples Entire space V n

Linear Code  If V i and V j are two code words in an (n,k) binary block code the code is said to be linear only if (V i  V j ) is also a code vector.  Vectors outside the subspace can not be created by the addition of legitimate code vectors (members of the subspace) Example : vector space V 4 is populated by the following tuples Error Control Coding © Erhan A. Ince

Example ofa subset of V 4 is : A set of 2 k n-tuples is called a linear block code if and only if it is a subspace of the vector space V n of all n-tuples. Error Control Coding © Erhan A. Ince

Example: Assume that we have a (6,3) code  There are 2 k = 2 3 = 8 message vectors  there are 2 n = 2 6 = 64 6-tuples in the V 6 vector space message vectorcode vector It is easy to check that the eight code vectors form a subspace of V 6 (all-zeros vector is present and the sum of any two code words yields an other one which is a member of the subspace. Error Control Coding © Erhan A. Ince

Generator Matrix  If for an (n,k) code k is large a table look-up implementation is not feasible. i.e for (127,92) code there are 2 92 or approximately 5x20 27 code vectors. Table-lookup brings the need for a large amount of memory  Fortunately it is possible to only generate code vectors as they are required.  Since a set of code vectors that form a linear block code is a k-dimensional subspace of the n-dimensional binary vector space (k<n), it is always possible to find a set of n-tuples, fewer than 2 k, that can generate all the 2 k vectors in the subspace. The generating set of vectors is said to span the subspace. Error Control Coding © Erhan A. Ince

 Smallest linearly independent set that spans the subspace is called a basis of the subspace.  number of vectors in this basis set is the dimension of the subspace.  Any basis set of the k linearly independent n-tuples V 1, V 2, ….., V k can be used to generate the required linear block code vectors since each code word is a linear combination of V 1, V 2, ….., V k That is each of the set of 2 k code vectors U can be described as: U = m 1 V 1 + m 2 V 2 + ………+ m k V k where mi = ( 0 or 1) and i= 1,……,k Error Control Coding © Erhan A. Ince

Generator matrix….  In general we can define a generator matrix as a (k  n) array: The message m is shown as a row vector with (1  k) dimensions : The generation of the code vector U is denoted as: U =mG Error Control Coding © Erhan A. Ince

Ex: Assume a generator matrix as below: Where V 1,V 2 and V 3 are the three linearly independent vectors ( a subset of the eight code vectors ) that can generate all code vectors. Assuming message vector is ( 1 1 0) we can use G to generate the code vector for this message: = = ( code vector for message 110) * Linear combination of the rows of G Error Control Coding © Erhan A. Ince