Chapter 10: Error-Control Coding

Slides:



Advertisements
Similar presentations
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.
Advertisements

Data Communication, Lecture 111 Channel Coding. Data Communication, Lecture 112 audio video (analogue) data (digital) Source anti-alias filter A/D Nyquist.
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Forward Error Correction Demystified Presented by Sunrise Telecom Broadband … a step ahead.
Modern Digital and Analog Communication Systems Lathi Copyright © 2009 by Oxford University Press, Inc. C H A P T E R 15 ERROR CORRECTING CODES.
Data and Computer Communications
Chapter 6 Errors, Error Detection, and Error Control.
Cellular Communications
Coding and Error Control
Turbo Codes Azmat Ali Pasha.
1 Chapter Six - Errors, Error Detection, and Error Control Chapter Six.
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 6: Errors, Error Detection, and Error Control
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
EE 3220: Digital Communication Dr Hassan Yousif 1 Dr. Hassan Yousif Ahmed Department of Electrical Engineering College of Engineering at Wadi Aldwasser.
Matthew C. Valenti (presenter)
Channel Coding and Error Control
Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 1 Chapter 4 Channel Coding.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
Information Coding in noisy channel error protection:-- improve tolerance of errors error detection: --- indicate occurrence of errors. Source.
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved. 1 Communication Reliability Asst. Prof. Chaiporn Jaikaeo, Ph.D.
ECS 152A 4. Communications Techniques. Asynchronous and Synchronous Transmission Timing problems require a mechanism to synchronize the transmitter and.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Unit 5 Lecture 2 Error Control Error Detection & Error Correction.
1 Chapter 8. Coding and Error Control Wen-Shyang Hwang KUAS EE.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 12.
Errors, Error Detection, and Error Control
1 Chapter Six - Errors, Error Detection, and Error Control Chapter Six.
Data Communications & Computer Networks, Second Edition1 Chapter 6 Errors, Error Detection, and Error Control.
Chapter 6: Errors, Error Detection, and Error Control Data Communications and Computer Networks: A Business User’s Approach Third Edition.
Outline Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) Receivers (Chapter 5) (week 3 and 4) Received Signal Synchronization.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
TI Cellular Mobile Communication Systems Lecture 4 Engr. Shahryar Saleem Assistant Professor Department of Telecom Engineering University of Engineering.
CELLULAR COMMUNICATIONS MIDTERM REVIEW. Representing Oscillations   w is angular frequency    Need two variables to represent a state  Use a single.
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
An ARQ Technique Using Related Parallel and Serial Concatenated Convolutional Codes Yufei Wu formerly with: Mobile and Portable Radio Research Group Virginia.
Turbo Codes. 2 A Need for Better Codes Designing a channel code is always a tradeoff between energy efficiency and bandwidth efficiency. Lower rate Codes.
1/30/ :20 PM1 Chapter 6 ─ Digital Data Communication Techniques CSE 3213 Fall 2011.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
Interleaving Compounding Packets & Convolution Codes
Coding No. 1  Seattle Pacific University Digital Coding Kevin Bolding Electrical Engineering Seattle Pacific University.
Diana B. Llacza Sosaya Digital Communications Chosun University
Block Coded Modulation Tareq Elhabbash, Yousef Yazji, Mahmoud Amassi.
II. Linear Block Codes. © Tallal Elshabrawy 2 Digital Communication Systems Source of Information User of Information Source Encoder Channel Encoder Modulator.
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
Serial Communications
8 Coding Theory Discrete Mathematics: A Concept-based Approach.
ERROR DETECTION AND CORRECTION
Error Detection and Correction
Chapter Six Errors, Error Detection, and Error Control
Lecture Slides 03-October-2017
DATA COMMUNICATION AND NETWORKINGS
The Three Main Sources of Transmission Errors
Part III Datalink Layer 10.
Digital data communication (Error control)
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Chapter 6.
Error Correction Code (2)
Chapter 3 Digital Transmission Fundamentals
Chapter 10 Error-Control Coding.
Transmission Errors Error Detection and Correction
Coding and Error Control
Error Detection and Correction
Transmission Errors Error Detection and Correction
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Presentation transcript:

Chapter 10: Error-Control Coding

Errors An error occurs when a transmitted bit is a 1 and its corresponding received bit becomes a 0 or a 0 becomes a 1. Virtually all digital transmission systems introduce errors, even after they have been optimally designed.   Sources of errors may include: white noise (e.g., a hissing noise on the phone) impulse noise (e.g., a scratch on CD/DVD) crosstalk (e.g., hearing another phone conversion) echo (e.g., hearing talker’s or listener’s voice again) interference (e.g., unwanted signals due to frequency-reuse in cellular systems) multipath and fading (e.g., due to reflected, refracted paths in mobile systems) thermal and shot noise (e.g., due to the transmitting and receiving equipment) In random errors, the bit errors occur independently of each other, and usually when one bit has changed, its neighbouring bits remain correct (unchanged). In burst errors, two or more bits in a row have usually changed, in that periods of low-error rate transmission are interspersed with periods in which clusters of errors occur. Chapter 10

Methods of Controlling Errors The central concept in detecting and/or correcting errors is redundancy in that the number of bits transmitted is intentionally over and above the required information bits. The transmitter sends the information bits along with some extra (also known as parity) bits. The receiver uses the redundant bits to detect or correct corrupted bits, and then removes the redundant bits.   In error detection, which is simpler than error correction, we are simply interested only to find out if errors have occurred. However, every error-detection technique will fail to detect some errors. Error detection in a received data unit (bit stream) is the prerequisite to the retransmission request. A digital communication system, which requires a data unit to be retransmitted as necessary until it is correctly received, is called an automatic repeat request (ARQ) system. In error correction, we need to find out which bits are in error, i.e., to determine their locations in the received bit stream. The techniques that introduce redundancy to allow for correction of errors are collectively known as forward error correction (FEC) coding techniques. Error correcting codes are thus more complex than error detecting codes, and require more redundancy (parity) bits. Error correction generally yields a lower bit error rate, but at the expense of significantly higher transmission bandwidth and more decoding complexity. Chapter 10

Detectable & Undetectable Error Patterns for 2-Dimensional Parity-Check Code: Examples 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 No errors One error (detected) 0 1 0 0 0 1 1 0 0 0 0 0 1 1 Two errors Three errors 1 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 Four errors (undetected) Note: Arrows indicate failed check bits Chapter 10

Procedure to Determine Checksum Steps Checksum generator at the transmit end Checksum checker at the receive end 1 2 3 The sum is complemented, i.e., all bits are inverted, to form the checksum. The sum is complemented, i.e., all bits are inverted, to form a new checksum. 4 If the value of new checksum is 0, the message is accepted; otherwise, it is rejected. Chapter 10

Checksum Generator and Checker: An Example 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 Carry from 8th column Carry from 7th column Carry from 6th column Carry from 5th column Carry from 4th column Carry from 3rd column Carry from 2nd column Carry from 1st column Received checksum Partial sum Sum Checksum Checksum generator at the transmitter Checksum checker at the receiver Chapter 10

CRC Generator and Checker: An Example   Information bits: 1100 CRC generator Received bits: 1101010 checker CRC generator at the transmitter CRC checker at the receiver Chapter 10

Block Diagram for an ARQ System Return channel Forward channel Storage and controller Source Encoder Modulator Decoder Demodulator Sink Transmitter Receiver Channel Chapter 10

1 2 3 Transmitter Receiver ACK NAK Error detected (a) Time 1 2 3 4 5 6   1 2 3 Transmitter Receiver ACK NAK Error detected (a) Time 1 2 3 4 5 6 7 8 9 Transmitter Receiver ACK NAK Error detected (b) Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Transmitter Receiver ACK NAK Error detected (c) Time Chapter 10

ARQ Throughput Performance Stop-and-Wait ARQ Selective-Repeat ARQ Chapter 10

Block Codes   Chapter 10

D + … Gate Parity bits Message bits Codeword 1 2 (a) D + … Gate   D + …   Gate Parity bits Message bits Codeword 1 2 (a) D + …   Gate Received bits Syndrome output (b)

Convolutional Codes   Chapter 10

  1 … 2 ... k   Information bits + 3 Encoded bits

Convolutional Encoder and Tree Diagram: An Example 00 11 10 01 1     Input bits Encoded output bits

Convolutional State Transition Diagram and Trellis Diagram: An Example   10 01 11 00 Input bit 0 Input bit 1 01 11 10 00   Output branch word Encoder state Input bit 0 Input bit 1

Steps in the Viterbi Algorithm: An Example   (a) 1 2 3 14 5 4 6 7 8 10 9 11 (b)   1 2   (c) 4 5   (d) 11 13   (e) 24

Block Diagram of a TCM Scheme Trellis-coded modulation (TCM) combines an amplitude and/or phase modulation signaling set with a trellis coding scheme, such as convolutional codes. The number of signal points in the constellation using TCM is larger than what is required when coding is not employed. This additional signal points, at a constant power level, can decrease the minimum Euclidean distance within the constellation, thus decreasing the error rate, while conserving bandwidth. However, this reduction in minimum Euclidean distance can be well compensated by an increase in the distance due to channel coding such that the error rate significantly improves only at the expense of the bandwidth conserved due to the use of a larger set of signal points.   2 1 Signal point

Partitioning of 8-PSK Constellation: A TCM Example   111 110 011 010 000 001 1 101 100

Interleaving   Chapter 10

Block Interleaving: a) Interleaver; b) Deinterleaver Read bits to modulator column by column   . . . Write bits from encoder row by row First Last Write bits from demodulator column by column Read bits to decoder row by row (b) Chapter 10

Convolutional Interleaving: a) Interleaver; b) Deinterleaver . . .   (a) (b) Chapter 10

Concatenated Coding A concatenated code is one that uses two levels of coding to achieve the desired error performance, where the codes are in series. The additional decoding complexity associated with a concatenated code is justified for poor communication channels, such as fading channels, and power-limited communication channels, such as satellite channels. In a concatenated code, the two codes are as follows: i) an inner code, which is usually a low-rate binary convolutional code with soft-decision decoding, can correct most of the random errors, and ii) an outer code, which is usually a high-rate non-binary block code, such as Reed-Solomon code, with hard decision decoding, can correct burst errors. The minimum distance of the concatenated code is the product of the minimum distances of the inner coder and the outer code. The primary reason to use a concatenated code is thus to achieve a low bit error rate with an overall complexity which is less than that which would be required by a single coding operation. Interleaving is usually used in conjunction with a concatenated code to construct a code with very long codewords. The interleaver at the transmitter is between the encoders and the deinterleaver at the receiver is between the decoders. Channel Outer (block) encoder Interleaver Deinterleaver Inner (convolutional) (soft-decision) decoder (hard-decision) Chapter 10

Turbo Coding A turbo encoder employs two generally identical recursive systematic short constraint-length linear convolutional encoders in parallel, where one of the encoders is preceded by a large-size pseudo-random interleaver. In a recursive systematic convolutional encoder, the info bits appear directly as part of the encoded bits and the parity check bits by each encoder are generated by a recursive feedback shift register. The output of the turbo encoder contains the info bits and two sets of parity check bits. The pseudo-random interleaver has a large size in the order of tens of thousands of bits. The pseudo-random interleaver takes the info bits at the input and produces bits at the output in a different temporal manner. The interleaver can provide a robust performance regardless of the channel statistics, while tying channel errors together to improve performance. The optimal decoding of turbo codes is an impossible task, for the number of states in the code trellis is quite large. However, the suboptimal iterative turbo decoding algorithm can provide excellent performance. The unique feature of turbo codes lies in iterative decoding, that is the concept of allowing the two decoders with low-complexity to exchange info iteratively. The turbo decoder forms a closed-loop feedback system. The use of feedback in a turbo decoder highlights the fact some info from one decoder to the next is sent in an iterative manner, where decoders have soft-input and soft-output values. In other words, each decoder uses a soft-decoding algorithm, that is, a decoder accepts soft input values and generates soft output values for the other. This closed-loop iteration will repeat multiple times until no significant adjustment is required, that is until a point at which no further improvement in performance is attainable. Once convergence is reached, the decoding process stops and the output of the second decoder is passed through a de-interleaver and hard-limited to produce an estimate of the info bit.

Block Diagram for Turbo Coding: Encoder & Decoder Parity check bits Systematic information bits Information bits Multiplexer & Modulator Encoder 2 Encoder 1 Interleaver Channel Interleaver Hard-limiter MAP Decoder 1 (SISO) Channel Decoder 2 Deinterleaver   Demodulator & Demultiplexer Extrinsic Information Intrinsic Decoded bits Received parity check bits (encoder-1) Received parity check bits (encoder-2) Received systematic information bits Decoding Stage 2 Decoding Stage 1 +