Cellular Communications 6. Channel Coding
Motivation Wireless channel introduces errors due to Option A Option B Noise and Interference Multipath Effect resulting in fast fading Option A Increase power of transmission Waste of energy and interference Option B Send redundant information Errors can be detected and re-transmission requested Errors can be corrected Forward Error Correction(FEC) or Channel Coding
Coded Communication System
Coding advantages Pn 10-3 uncoded Coding gain coded 10-8 8 19 Eb/N0 dB
Binary Symmetric Channel Transmission medium introduce errors Demodulator produces errors Model as a channel Memoryless: probability of error is independent from one symbol to the next Symmetric: any error is equally probable Binary Symmetric Channel (BSC)
Error Correcting Codes (ECC) Redundancy added to information Encode message of k bits with n (n>k) bits Example: Systematic Encoding Redundant symbols are appending to information symbols to obtain a coded sequence Codeword
Error correction vs. Error Detection Detect that received sequence contains an error Request retransmission ARQ: Automatic Repeat Request/Query (HSDPA) Error-correction Correct the error Forward Error Correction “A Code allows correction of up to p errors and detection up to q (q>p) errors”
Block Codes vs. Convolution Codes Encode information block by block Each block encoded independently Encoding/Decoding is a memoryless operation Convolutional Codes Next symbol depend on a history of inputs/outputs
Example Single-bit message 0 or 1 Extend to 3 bit messages (codewords) 010 101 Only 2 valid codeword out of 8 Due to the error can receive any sequence Can associate invalid code with valid Invalid codes differs from valid only by 1 bit
Hamming distance and Block Code Two vectors of size n have a Hamming Distance of d if they differ in d bits Block code is a subset of 2^n bit sequences Code distance is minimum hamming distance between any two members of the code Assume code distance d=2t+1 Can detect up to 2t errors Can correct up to t-1 errors
Good Code Design Select a subset of 2^n (e.g. n=1024) vectors such that Distance between codewords is large as possible Can find correct message without comparing with all possible codewords
Sphere Packing Bound Assume have to encode M messages Want being able to correct up to t errors Each codeword have a ‘sphere” around it with codes of distance up to t Spheres around different codewords are not overlapping
Sphere Packing Bound Assume Example Code rate n=8, t=2=>M<6.9 Found only code of size 4 Code rate Example (8,2) systematic code, 4 message, 2 information bits Code rate 2/8=1/4
Shannon Theorem p is probability bit error Probability of an error (incorrect decoding) can be made arbitrary small if
Linear Codes Linear combination of valid codewords is also a codeword Code distance is a minimum among all nonzero codeword weights (number of 1s) Linear space spanned by basis:
Linear Codes: Decoding Parity check matrix Gives zero when multiplied by valid codeword When error is present, produce “syndrome”
Syndrome Syndrome depends only on error pattern Different errors=>different syndromes except for the addition of codeword Can identify error patterns of weight w<=t by looking at the syndrome One-to-one between syndromes and errors w<=t
Decoding using Syndrome Evaluate the syndrome s from r Lookup corresponding e in a pre-computed table Correct codeword c=r+e
Non-binary Codes Alphabet of more then two symbols q=p^n where p is prime, GF(p^n) Each element of the alphabet is a vector Element-wise: operation modulo p Vector-wise: view as a polynomial
Reed-Solomon Code a block code a cyclic code (some additional constrains) Used in CD/DVD Bar Codes Deep Space Communications Cellular Digit Packet Data CPDP RS(63,47)
Convolution Codes
Trellis Diagram
States During the Encoding
Decoding: Viterbi Algorithm Errors on the channel Find path with minimal total errors
Trellis Coded Modulation (TCM) Combined coding and modulation scheme Make most similar signals (phases) represent most different/distance codewords
Turbo Codes Use 2 convolutional codes on the same data Feed data in different order to the encoders
Turbo Codes Iterative Decoding Used in Each decoder takes into account “guess” from other Continue till produce same “guesses” Used in 3G/4G WiMAX
How Do they Work (© IEEE spectrum)
How Do they Work (© IEEE spectrum)