CELLULAR COMMUNICATIONS 6. Channel Coding Motivation Wireless channel introduces errors due to Option A Noise and Interference Multipath Effect resulting in fast fading 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 Coding gain 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 Error-detection Error-correction Detect that received sequence contains an error Request retransmission ARQ: Automatic Repeat Request/Query (HSDPA) Detect that received sequence contains an error 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 Block 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 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 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)