Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 1 Chapter 4 Channel Coding.

Slides:



Advertisements
Similar presentations
Data and Computer Communications
Advertisements

Reliability & Channel Coding
Error Detection and Correction
Cellular Communications
Transmission Errors Error Detection and Correction
Chapter 3: Channel Coding (part 1)
Error Detection and Correction
Coding and Error Control
Error Detection and Correction
Lecture 9-10: Error Detection and Correction Anders Västberg Slides are a selection from the slides from chapter 8 from:
Transmission Errors1 Error Detection and Correction.
Chapter 11 Error-Control CodingChapter 11 : Lecture edition by K.Heikkinen.
1 CS 6910 – Pervasive Computing Spring 2007 Section 4 (Ch.4): Channel Coding and Error Control Prof. Leszek Lilien Department of Computer Science Western.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Error Control.
Chapter 6 Errors, Error Detection, and Error Control
7/2/2015Errors1 Transmission errors are a way of life. In the digital world an error means that a bit value is flipped. An error can be isolated to a single.
DIGITAL COMMUNICATION Coding
Transmission Errors Error Detection and Correction
Data link layer: services
Coding and Error Control
Channel Coding and Error Control
Channel Coding Part 1: Block Coding
Coding and Error Control
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
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.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
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.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Lecture 3-2: Coding and Error Control (Cont.) ECE
COSC 3213: Computer Networks I Instructor: Dr. Amir Asif Department of Computer Science York University Section M Topics: 1. Error Detection Techniques:
1 Chapter 8. Coding and Error Control Wen-Shyang Hwang KUAS EE.
EEC4113 Data Communication & Multimedia System Chapter 5: Error Control by Muhazam Mustapha, October 2011.
Basic Characteristics of Block Codes
Introduction of Low Density Parity Check Codes Mong-kai Ku.
Data Communications & Computer Networks, Second Edition1 Chapter 6 Errors, Error Detection, and Error Control.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
DIGITAL COMMUNICATIONS Linear Block Codes
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
Wireless Communication Network Lab. Chapter 4 Channel Coding and Error Control Chih-Cheng Tseng1EE of NIU Prof. Chih-Cheng Tseng
CHAPTER 3: DATA LINK CONTROL Flow control, Error detection – two dimensional parity checks, Internet checksum, CRC, Error control, Transmission efficiency.
1 Error Detection and Correction Martin Weiss. Slide 2 Objectives of this Meeting u Describe the major error detection techniques u Describe forward error.
10.1 Chapter 10 Error Detection and Correction Data can be corrupted during transmission. Some applications require that errors be detected and.
Error Detection and Correction
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
1/30/ :20 PM1 Chapter 6 ─ Digital Data Communication Techniques CSE 3213 Fall 2011.
Coding and Error Control
Transmission Errors Error Detection and Correction.
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.
Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link layer services: m error detection, correction m sharing.
Chi-Cheng Lin, Winona State University CS412 Introduction to Computer Networking & Telecommunication Error Correction/Detection.
Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes.
Digital Communications Chapter 6. Channel Coding: Part 1
Lecture 4 Error Detecting and Correcting Techniques Dr. Ghalib A. Shah
CSE 5345 – Fundamentals of Wireless Networks
Digital data communication (Error control)
Chapter 6.
Chapter 3 Digital Transmission Fundamentals
Chapter 10 Error-Control Coding.
DIGITAL COMMUNICATION Coding
Lecture 3 Digital Transmission Fundamentals
Transmission Errors Error Detection and Correction
Chapter 10: Error-Control Coding
Coding and Error Control
COMPUTER NETWORKS CS610 Lecture-5 Hammad Khalid Khan.
Transmission Errors Error Detection and Correction
Chapter 10 Error Detection and Correction
Presentation transcript:

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 1 Chapter 4 Channel Coding

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 2 Outline Introduction Block Codes Cyclic Codes CRC (Cyclic Redundancy Check) Convolutional Codes Interleaving Information Capacity Theorem Turbo Codes ARQ (Automatic Repeat Request) Stop-and-wait ARQ Go-back-N ARQ Selective-repeat ARQ

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 3 Information to be transmitted Source coding Channel coding Modulation Transmitter Channel Information received Source decoding Channel decoding Demodulation Receiver Introduction Channel coding Channel decoding

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 4 Forward Error Correction (FEC) The key idea of FEC is to transmit enough redundant data to allow receiver to recover from errors all by itself. No sender retransmission required. The major categories of FEC codes are Block codes, Cyclic codes, Reed-Solomon codes (Not covered here), Convolutional codes, and Turbo codes, etc.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 5 Linear Block Codes Information is divided into blocks of length k r parity bits or check bits are added to each block (total length n = k + r),. Code rate R = k/n Decoder looks for codeword closest to received vector (code vector + error vector) Tradeoffs between Efficiency Reliability Encoding/Decoding complexity

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 6 Linear Block Codes The uncoded k data bits be represented by the m vector: m=(m 1, m 2, …, m k ) The corresponding codeword be represented by the n-bit c vector: c=(c 1, c 2, …c k, c k+1, …, c n-1, c n ) Each parity bit consists of weighted modulo 2 sum of the data bits represented by symbol.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 7 Block Codes: Linear Block Codes  Linear Block Code The block length C of the Linear Block Code is C = m G where m is the information codeword block length, G is the generator matrix. G = [I k | P] k × n, where p i = Remainder of [x n-k+i-1 /g(x)] for i=1, 2,.., k, and I is unit matrix.  The parity check matrix H = [P T | I n-k ], where P T is the transpose of the matrix p.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 8 Block Codes: Example Example : Find linear block code encoder G if code generator polynomial g(x)=1+x+x 3 for a (7, 4) code. We have n = Total number of bits = 7, k = Number of information bits = 4, r = Number of parity bits = n - k = 3. where 

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 9 Block Codes: Example (Continued)

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 10 e H T = e H T e ) * H T =c H T e be the received message where c is the correct code and e is the error Block Codes: Linear Block Codes Let x = c Compute S = x * H T =( c If S is 0 then message is correct else there are errors in it, from common known error patterns the correct message can be decoded. The parity check matrix H is used to detect errors in the received code by using the fact that c * H T = 0 ( null vector) Generator matrix G Code Vector C Message vector m Parity check matrix H T Code Vector C Null vector 0 Operations of the generator matrix and the parity check matrix

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 11 Linear Block Codes Consider a (7,4) linear block code, given by G as Then, For m = [ ] and c = mG = [ ]. If there is no error, the received vector x=c, and s=cH T =[0, 0,0]

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 12 Linear Block Codes Let c suffer an error such that the received vector x=c e =[ ] [ ] =[ ]. Then, s=xH T = =(eH T )

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 13 Cyclic Codes It is a block code which uses a shift register to perform encoding and decoding The code word with n bits is expressed as c(x)=c 1 x n-1 +c 2 x n-2 ……+ c n where each c i is either a 1 or 0. c(x) = m(x) x n-k + c p (x) where c p (x) = remainder from dividing m(x) x n-k by generator g(x) if the received signal is c(x) + e(x) where e(x) is the error. To check if received signal is error free, the remainder from dividing c(x) + e(x) by g(x) is obtained(syndrome). If this is 0 then the received signal is considered error free else error pattern is detected from known error syndromes.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 14 Cyclic Code: Example Example : Find the codewords c(x) if m(x)=1+x+x 2 and g(x)=1+x+x 3 for (7,4) cyclic code. We have n = Total number of bits = 7, k = Number of information bits = 4, r = Number of parity bits = n - k = 3.  Then,

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 15 Cyclic Redundancy Check (CRC) Cyclic redundancy Code (CRC) is an error-checking code. The transmitter appends an extra n-bit sequence to every frame called Frame Check Sequence (FCS). The FCS holds redundant information about the frame that helps the receivers detect errors in the frame. CRC is based on polynomial manipulation using modulo arithmetic. Blocks of input bit as coefficient-sets for polynomials is called message polynomial. Polynomial with constant coefficients is called the generator polynomial.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 16 Cyclic Redundancy Check (CRC) Generator polynomial is divided into the message polynomial, giving quotient and remainder, the coefficients of the remainder form the bits of final CRC. Define: M – The original frame (k bits) to be transmitted before adding the Frame Check Sequence (FCS). F – The resulting FCS of n bits to be added to M (usually n=8, 16, 32). T – The cascading of M and F. P – The predefined CRC generating polynomial with pattern of n+1 bits. The main idea in CRC algorithm is that the FCS is generated so that the remainder of T/P is zero.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 17 Cyclic Redundancy Check (CRC) The CRC creation process is defined as follows: Get the block of raw message Left shift the raw message by n bits and then divide it by p Get the remainder R as FCS Append the R to the raw message. The result is the frame to be transmitted. CRC is checked using the following process: Receive the frame Divide it by P Check the remainder. If the remainder is not zero, then there is an error in the frame.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 18 Common CRC Codes CodeGenerator polynomial g(x) Parity check bits CRC-121+x+x 2 +x 3 +x 11 +x CRC-161+x 2 +x 15 +x CRC-CCITT1+x 5 +x 15 +x 16 16

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 19 Convolutional Codes Encoding of information stream rather than information blocks Value of certain information symbol also affects the encoding of next M information symbols, i.e., memory M Easy implementation using shift register  Assuming k inputs and n outputs Decoding is mostly performed by the Viterbi Algorithm (not covered here)

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 20 Convolutional Codes: (n=2, k=1, M=2) Encoder Input Output Input: … Output: … Input: … Output: … D1D2 Di -- Register x y1y1 y2y2 c

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved /0 01/1 11/1 11/0 State Diagram 11 10/1 00/ /0 00/1

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 22 Tree Diagram … … …… First input First output

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 23 Trellis … …

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 24 Interleaving a1, a2, a3, a4, a5, a6, a7, a8, a9, … Input Data a1, a2, a3, a4 a5, a6, a7, a8 a9, a10, a11, a12 a13, a14, a15, a16 Write Read Interleaving a1, a5, a9, a13, a2, a6, a10, a14, a3, … Transmitting Data a1, a2, a3, a4 a5, a6, a7, a8 a9, a10, a11, a12 a13, a14, a15, a16 Read Write De-Interleaving a1, a2, a3, a4, a5, a6, a7, a8, a9, … Output Data

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 25 Interleaving (Example) 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,… Transmitting Data 0, 1, 0, 0 0, 1, 0, 0 0, 1, 0, 0 1, 0, 0, 0 Read Write De-Interleaving 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, … Output Data Burst error Discrete error

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 26 Information Capacity Theorem (Shannon Limit) The information capacity (or channel capacity) C of a continuous channel with bandwidth B Hertz can be perturbed by additive Gaussian white noise of power spectral density N 0 /2, provided bandwidth B satisfies where P is the average transmitted power P = E b R b (for an ideal system, R b = C). E b is the transmitted energy per bit, R b is transmission rate.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 27 Shannon Limit E b /N 0 dB Region for which R b <C Region for which R b >C R b /B -1.6 Shannon Limit Capacity boundary R b =C

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 28 Turbo Codes A brief historic of turbo codes : The turbo code concept was first introduced by C. Berrou in Today, Turbo Codes are considered as the most efficient coding schemes for FEC. Scheme with known components (simple convolutional or block codes, interleaver, soft-decision decoder, etc.) Performance close to the Shannon Limit (E b /N 0 = -1.6 db if R b  0) at modest complexity! Turbo codes have been proposed for low-power applications such as deep-space and satellite communications, as well as for interference limited applications such as third generation cellular, personal communication services, ad hoc and sensor networks.

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 29 Turbo Codes: Encoder Convolutional Encoder 1 Interleaving Convolutional Encoder 2 Data Source X X Y Y1Y1 Y2Y2 (Y 1, Y2) X: Information Y i : Redundancy Information

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 30 Turbo Codes: Decoder Convolutional Decoder 1 Convolutional Decoder 2 Interleaving Interleaver De-interleaving X Y1Y1 Y2Y2 X’ X’: Decoded Information

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 31 Automatic Repeat Request (ARQ) SourceTransmitterChannelReceiverDestination Encoder Transmit Controller ModulationDemodulationDecoder Transmit Controller Acknowledge

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 32 Stop-And-Wait ARQ (SAW ARQ) Transmitting Data 1323 Time Received Data 1 23 Time ACK NAK Output Data 123 Time Error Retransmission ACK: Acknowledge NAK: Negative ACK

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 33 Stop-And-Wait ARQ (SAW ARQ) Throughput: S = (1/T) * (k/n) = [(1- P b ) n / (1 + D * R b / n) ] * (k/n) where T is the average transmission time in terms of a block duration T = (1 + D * R b / n) * P ACK + 2 * (1 + D * R b / n) * P ACK * (1- P ACK ) + 3 * (1 + D * R b / n) * P ACK * (1- P ACK ) 2 + ….. = (1+ D * R b /n) * P ACK i * (1-P ACK ) i-1 = (1+ D * Rb/n) * P ACK /[1-(1-P ACK )] 2 = (1 + D * R b / n) / P ACK where n = number of bits in a block, k = number of information bits in a block, D = round trip delay, R b = bit rate, P b = BER of the channel, and P ACK = (1- P b ) n

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 34 Go-Back-N ARQ (GBN ARQ) Transmitting Data 1 Time Received Data NAK Output Data Time Error Go-back Time Error NAK Go-back

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 35 Throughput S = (1/T) * (k/n) = [(1- P b ) n / ((1- P b ) n + N * (1-(1- P b ) n ) )]* (k/n) where T = 1 * P ACK + (N+1) * P ACK * (1- P ACK ) +2 * (N+1) * P ACK * (1- P ACK ) 2 + …. = P ACK +P ACK * [(1-P ACK )+(1-P ACK ) 2 +(1-P ACK ) 3 +…]+ P ACK [N * (1-P ACK )+2 * N * (1-P ACK ) 2 +3 * N * (1-P ACK ) 3 +…] = P ACK +P ACK *[(1-P ACK )/P ACK + N * (1-P ACK )/P ACK 2 = 1 + (N * [1 - (1- P b ) n ])/ (1- P b ) n Go-Back-N ARQ (GBN ARQ)

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 36 Selective-Repeat ARQ (SR ARQ) Transmitting Data 1 Time Received Data NAK Error Retransmission Time Error NAK Retransmission 59 Buffer 1 Time Output Data 1 Time

Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 37 Selective-Repeat ARQ (SR ARQ) Throughput S = (1/T) * (k/n) = (1- P b ) n * (k/n) where T = 1 * P ACK + 2 * P ACK * (1- P ACK ) + 3 * P ACK * (1- P ACK ) 2 + …. = P ACK i * (1-P ACK ) i-1 = P ACK /[1-(1-P ACK )] 2 = 1/(1- P b ) n