390 likes | 598 Views
FEC Linear Block Coding. Matthew Pregara & Zachary Saigh Advisors: Dr. In Soo Ahn & Dr. Yufeng Lu Dept. of Electrical and Computer Eng. Table of Contents. Motivation Introduction Hamming Code Example Tanner Graph/Hard Decision Decoding Simulink Simulation on Hamming Code
E N D
FEC Linear Block Coding Matthew Pregara & Zachary Saigh Advisors: Dr. In Soo Ahn & Dr. Yufeng Lu Dept. of Electrical and Computer Eng.
Table of Contents • Motivation • Introduction • Hamming Code Example • Tanner Graph/Hard Decision Decoding • Simulink Simulation on Hamming Code • VHDL Simulation Results • Low Density Parity Check Code • Timeline and Division of Labor • Conclusion
Motivation • FEC: Forward Error Correction • Adds redundancy to message. • Detects AND Corrects Errors. • ARQ: Automatic Repeat Request • Detects errors and requests retransmission.
Redundancy • Add extra bits (Parity Bits) to message. • Increases number of bits sent, requiring larger transmission bandwidth. • Decreases number of errors in message. • Parity bits • Information from multiple message bits
Linear Block Coding • Block Codes are denoted by (n, k). • k = message bits (message word) • n = message bits + parity bits (codeword) • # of parity bits: m = n - k • Code Rate R = k/n • Example: (7,4) code • 4 message bits • +3 parity bits • = 7 codeword bits • Code rate R = 4/7
Hamming Code • G matrix is derived from a primitive polynomial, a factor of xn +1. • Systematic G matrix is obtained from G matrix. • H matrix is determined from systematic G matrix. • G = [Ik | P], where P = parity matrix • H = [PT | In-k]; HT =
Encoding • Message m, made of k bits, is post-multiplied by the G matrix using Modulo-2 arithmetic.
Constructing G • Starts with xn+1, n = 7. • Factorize x7+1 = (x+1)(x3+x2+1)(x3+x+1). • Find solution for one of the terms. • (x3+x2+1) => [1 1 0 1]
Fill matrix with solution (shifting 1 entry in each row) Fill empty entries with 0’s Result is the systematic G matrix Find RREF I4 P
Decoding • Received codeword of n bits is post-multiplied by HT to obtain the syndrome.
Decoding Recall: • G = [Ik | P]; P = parity matrix • H = [PT | In-k ] • S = syndrome
Correcting Errors • In this case the 2nd bit is corrupted • Invert the corrupted bit according to the location found by the syndrome table
Tanner Graph and Hard Decision Decoding (8,4) Example (2458) (1236) (3678) (1457)
Encoding 27 Decoding
Low Density Parity Check Code • Offers performance close to Shannon’s channel capacity limit. • Can correct multiple bit errors. • Low decoder complexity.
LDPC Code • Start with H matrix first • The entries of 1 in H are sparsely populated • From the H matrix, find the systematic G matrix • The entries of 1 in G are not sparsely populated, causing encoder complexity.
LDPC Code • Decoding is done iteratively. • To operate close to Shannon limit under very low SNR, the dimensions of H matrix are very large. • For real-time operations, the dimensions of H matrix are constrained by hardware , and decoding time allowed, and others.
Zack MATLAB Encoder Simulink design of encoder/channel Implementation of VHDL on FPGA Performance analysis of FPGA implementaiton Matt MATLAB Decoder Simulink design of Decoder Implementation of Xilinx system generator Performance analysis of MATLAB/Simulink implementation Division of Labor
Conclusion • LDPC coding is to be implemented. • Preliminary investigations are performed. • Examined Hamming coder/decoder under Matlab and Simulink environment. • Tanner graph representation of LDPC examples researched. • Plans to choose an LDPC coding scheme and to implement it using FPGA.
References [1] Valenti, Matthew. Iterative Solutions Coded Modulation Library Theory of Operation. West Virginia University, 03 Oct. 2005. Web. 23 Oct. 2012. <www.wvu.edu>. [2] B. Sklar, Digital Communications, second edition: Fundamentals and Applications, Prentice-Hall, 2000. [3] Xilinx System Generator Manual, Xilinx Inc. , 2011.
Q and A’s • Thank you for listening. • Any questions or suggestions are welcome.