Presentation is loading. Please wait.

Presentation is loading. Please wait.

Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes.

Similar presentations


Presentation on theme: "Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes."— Presentation transcript:

1 Channel Coding and Error Control 1

2 Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes 2

3 – Severe transmission problems In terrestrial mobile communications due to: – Multipath fading » E.g., reflections / diffractions / scattering in cellular wireless communications – Low S/N (signal-to-noise) ratio In satellite communications due to: – Limited transmitting power for forward channels (downlink ) » Limited satellite energy resources Introduction 3

4 => Need channel coding and error control to improve transmissions Channel coding (CC) = coding (discrete digital) information into a form suitable for transmission, with emphasis on enhanced reliability – CC adds redundancy that allows for info restoration or recovery when needed Price paid: need broader bandwidth – CC ensures proper transmission quality Measured by – Bit error quality (BER) / Frame error quality (FER) 4

5 Information to be transmitted Source coding Channel coding Modulation Transmitter Channel Information received Source decoding Channel decoding Demodulation Receiver Channel coding Channel decoding Channel coding/decoding in a wireless communication system 5

6 Error Correction (EC) The key EC idea: – Transmit enough redundant data to allow receiver to recover from errors all by itself No sender retransmission required Major categories of EC codes (really: forward error correction – FEC) – Linear block codes Cyclic codes Reed-Solomon codes – Convolutional codes – Turbo codes 6

7 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 = k/(k + r) Decoder looks for code word closest to received vector – Received vector = code vector + error vector Tradeoffs between – Efficiency – Reliability – Encoding/decoding complexity 7

8 Cyclic Codes It is a linear 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. 8

9 Cyclic Redundancy Check (CRC) Cyclic redundancy code (CRC) is an error-checking code. Xmitter appends an extra n-bit sequence to every frame – Called Frame Check Sequence (FCS) – FCS holds redundant information about the frame Helps receivers to detect/correct errors in received frames CRC is based on polynomial manipulations using modulo arithmetic – Blocks of input bits treated as coefficient sets for polynomials (called message polynomials) E.g., for message 11001, message polynomial is: 1 * x 4 + 1 * x 3 + 0 * x 2 + 0 * x 1 + 1 * x 0 – CRC also uses another polynomial - with constant coefficients (called the generator polynomials) – Polynomial manipulations using modulo arithmetic are applied to the 2 polynomials 9

10 Convolutional Codes Among most commonly used channel codes – E.g., in GSM and IS-95 Encoding of information stream rather than information blocks – Output (encoded bits) depends not only on current input bits but also on past data bits M - max. # of (past) stages (a.k.a. memory size ) affecting output – Easy implementation using shift register Assuming k inputs and n outputs Decoding most often based on the Viterbi Algorithm (Modified by LTL) 10

11 Turbo Codes Brief history of turbo codes: – First introduced by C. Berrou et al. only in 1993 – Considered as the most efficient FEC coding schemes Performance close to the (perfect) Shannon Limit at modest complexity! Turbo codes use known components – Including: simple convolutional or block codes, interleaver, soft-decision decoder Turbo codes proposed for – Low-power applications Such as deep-space and satellite communications, – Interference-limited applications Such as 3G cellular, PCS (personal communication services), ad hoc networks and sensornets 11

12 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 12

13 Turbo Codes: Decoder X’ Convolutional Decoder 1 Convolutional Decoder 2 Interleaving Interleaver De-interleaving X Y1Y1 Y2Y2 X’: Decoded Information 13


Download ppt "Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes."

Similar presentations


Ads by Google