Part 1: Overview of Low Density Parity Check(LDPC) codes.

Slides:



Advertisements
Similar presentations
Error Correction and LDPC decoding CMPE 691/491: DSP Hardware Implementation Tinoosh Mohsenin 1.
Advertisements

(speaker) Fedor Groshev Vladimir Potapov Victor Zyablov IITP RAS, Moscow.
Data and Computer Communications Tenth Edition by William Stallings Data and Computer Communications, Tenth Edition by William Stallings, (c) Pearson Education.
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.
Improving BER Performance of LDPC Codes Based on Intermediate Decoding Results Esa Alghonaim, M. Adnan Landolsi, Aiman El-Maleh King Fahd University of.
1 Channel Coding in IEEE802.16e Student: Po-Sheng Wu Advisor: David W. Lin.
Cooperative Multiple Input Multiple Output Communication in Wireless Sensor Network: An Error Correcting Code approach using LDPC Code Goutham Kumar Kandukuri.
By Hua Xiao and Amir H. Banihashemi
Near Shannon Limit Performance of Low Density Parity Check Codes
OCDMA Channel Coding Progress Report
Linear-time encodable and decodable error-correcting codes Daniel A. Spielman Presented by Tian Sang Jed Liu 2003 March 3rd.
Codes for Deletion and Insertion Channels with Segmented Errors Zhenming Liu Michael Mitzenmacher Harvard University, School of Engineering and Applied.
Computer Architecture Project
1 Scalable Image Transmission Using UEP Optimized LDPC Codes Charly Poulliat, Inbar Fijalkow, David Declercq International Symposium on Image/Video Communications.
Low Density Parity Check Codes LDPC ( Low Density Parity Check ) codes are a class of linear bock code. The term “Low Density” refers to the characteristic.
Code and Decoder Design of LDPC Codes for Gbps Systems Jeremy Thorpe Presented to: Microsoft Research
EE436 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Interconnect Efficient LDPC Code Design Aiman El-Maleh Basil Arkasosy Adnan Al-Andalusi King Fahd University of Petroleum & Minerals, Saudi Arabia Aiman.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Generalized Communication System: Error Control Coding Occurs In Right Column. 6.
1 Verification Codes Michael Luby, Digital Fountain, Inc. Michael Mitzenmacher Harvard University and Digital Fountain, Inc.
Improving the Performance of Turbo Codes by Repetition and Puncturing Youhan Kim March 4, 2005.
Compression with Side Information using Turbo Codes Anne Aaron and Bernd Girod Information Systems Laboratory Stanford University Data Compression Conference.
The Role of Specialization in LDPC Codes Jeremy Thorpe Pizza Meeting Talk 2/12/03.
Optimizing LDPC Codes for message-passing decoding. Jeremy Thorpe Ph.D. Candidacy 2/26/03.
CS774. Markov Random Field : Theory and Application Lecture 10 Kyomin Jung KAIST Oct
Page 1 of 37 Density Evolution, Capacity Limits, and the "5k" Code Result (L. Schirber 11/22/11) The Density Evolution (DE) algorithm calculates a "threshold.
Low Density Parity Check (LDPC) Code Implementation Matthew Pregara & Zachary Saigh Advisors: Dr. In Soo Ahn & Dr. Yufeng Lu Dept. of Electrical and Computer.
Block-LDPC: A Practical LDPC Coding System Design Approach
Wireless Mobile Communication and Transmission Lab. Theory and Technology of Error Control Coding Chapter 7 Low Density Parity Check Codes.
Daphne Koller Message Passing Loopy BP and Message Decoding Probabilistic Graphical Models Inference.
Tinoosh Mohsenin and Bevan M. Baas VLSI Computation Lab, ECE Department University of California, Davis Split-Row: A Reduced Complexity, High Throughput.
Distributed computing using Projective Geometry: Decoding of Error correcting codes Nachiket Gajare, Hrishikesh Sharma and Prof. Sachin Patkar IIT Bombay.
Andrea Montanari and Ruediger Urbanke TIFR Tuesday, January 6th, 2008 Phase Transitions in Coding, Communications, and Inference.
296.3Page :Algorithms in the Real World Error Correcting Codes III (expander based codes) – Expander graphs – Low density parity check (LDPC) codes.
Miss Insah Bhurtah Main Supervisor: Prof. K.M.S. Soyjaudah Associate Supervisor: Dr C Catherine.
Introduction of Low Density Parity Check Codes Mong-kai Ku.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
DIGITAL COMMUNICATIONS Linear Block Codes
ADVANTAGE of GENERATOR MATRIX:
David Wetherall Professor of Computer Science & Engineering Introduction to Computer Networks Error Detection (§3.2.2)
15-853Page :Algorithms in the Real World Error Correcting Codes III (expander based codes) – Expander graphs – Low density parity check (LDPC) codes.
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
LDPC Decoding: VLSI Architectures and Implementations
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
Low Density Parity Check codes
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
1 Design of LDPC codes Codes from finite geometries Random codes: Determine the connections of the bipartite Tanner graph by using a (pseudo)random algorithm.
FEC Linear Block Coding
Doc.: IEEE /992r1 Submission September, 2004 Victor Stolpman et. al Irregular Structured LDPC Codes and Structured Puncturing Victor Stolpman,
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.
Forschungszentrum Telekommunikation Wien [Telecommunications Research Center Vienna] Göttfried Lächner, Ingmør Lønd, Jössy Säyir Optimization of LDPC codes.
Code Construction and FPGA Implementation of a Low-Error-Floor Multi-Rate Low-Density Parity-Check Code Decoder Lei Yang, Hui Liu, C.-J Richard Shi Transactions.
Doc.: IEEE / n Submission March 2004 PCCC Turbo Codes for IEEE n B. Bougard; B. Van Poucke; L. Van der Perre {bougardb,
1 Channel Coding: Part III (Turbo Codes) Presented by: Nguyen Van Han ( ) Wireless and Mobile Communication System Lab.
Tinoosh Mohsenin 2, Houshmand Shirani-mehr 1, Bevan Baas 1 1 University of California, Davis 2 University of Maryland Baltimore County Low Power LDPC Decoder.
1 Aggregated Circulant Matrix Based LDPC Codes Yuming Zhu and Chaitali Chakrabarti Department of Electrical Engineering Arizona State.
Waseda University Low-Density Parity-Check Code: is an error correcting code which achieves information rates very close to the Shanon limit. Message-Passing.
Channel Coding: Part I Presentation II Irvanda Kurniadi V. ( ) Digital Communication 1.
Institute for Experimental Mathematics Ellernstrasse Essen - Germany DATA COMMUNICATION introduction A.J. Han Vinck May 10, 2003.
Factor Graphs and the Sum-Product Algorithm
Rate 7/8 LDPC Code for 11ay Date: Authors:
Rate 7/8 (1344,1176) LDPC code Date: Authors:
Progress report of LDPC codes
Chapter 6.
Optimizing LDPC Codes for message-passing decoding.
Physical Layer Approach for n
Chris Jones Cenk Kose Tao Tian Rick Wesel
Irregular Structured LDPC Codes and Structured Puncturing
Low-Density Parity-Check Codes
Presentation transcript:

Part 1: Overview of Low Density Parity Check(LDPC) codes

Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC code can get within ~.005 db of channel capacity

Low density parity check codes Low density parity check - H matrix has a large number of columns (n> 1000 or 10,000) - Number of 1’s in H is small ( <<1%) - H is constructed pseudorandomly subject to some constraints

Low density parity check codes Low density parity check - H is constructed pseudorandomly subject to some constraints: - fixed number of rows and columns - this fixes the rate - randomly fill H with 1’s - e.g. fixed number of 1’s per row/column

Encoding (Cont’d) Encoding in graph

Decoding Message passing decoder –Iterative algorithm Amenable to highly parallelized hardware implementation

Code design ‘Optimal’ LPDC codes can be described by distributions  (x) and (x)

Optimization Basic idea –Optimize the triple (  (x), (x),  (x) )  x)  x)

Optimization recursion  x)  x)

Simulation Results

One encoder/one decoder 2-IID capacity

Simulation Results One encoder/one decoder A single LDPC code designed for one rate and then punctured for a range of rates can be optimal for “all rates” 2-IID capacity

Part 2: Details of Low Density Parity Check(LDPC) codes: binary symmetric channels

Details: Encoding Encoder is derived from the the parity check matrix H Row reduction of H into systematic form -- get G from this If H is sparse then with high probability G will be dense Not addressed here, but this continues to be a topic of great concern

Details: Decoding the channel output can be either hard or soft information Use the properties of the graph to decode Decoding will be done in an iterative way: iterate between variable (bit) nodes and checks nodes

Low density parity check codes Consider the MAP rule discussed in the context of convolutional codes

Low density parity check codes Transmit Receive

Bit flipping decoder Receive

Motivating example Hard decoder: bit flipping decoder Bit (variable) nodes Check nodes

Motivating example All 0’s codeword is sent Bit (variable) nodes Check nodes

Example 1: single error Rec’d Assume all 0’s codeword and a single error

Example 1: single error Rec’d Step 1: Check node: Identify which parity checks are in error

Example 1: single error Rec’d Step 1: Parity node check: Identify which parity checks are in error

Example 1: single error Rec’d Step 1: Parity node check: Identify bits that are connected to those checks

Example 1: single error Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node

Example 1: single error Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node

Example 1: single error Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for this bit

Example 1: single error Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for this bit

Example 1: single error Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for all bits

Example 1: single error Rec’d Step 2: Bit node check: Flip the bits with the most unsatisfied checks

Example 1: single error Rec’d Step 2: Bit node check: Flip the bits with the most unsatisfied checks

Example 1: single error Rec’d Step 2: Bit node check: Flip the bits with the most unsatisfied checks

Example 1: single error Rec’d Step 3: parity node check: Check if all parities are satisfied

Example 1: single error Rec’d Step 3: parity node check: Check if all parities are satisfied

Example 1: single error Rec’d Step 3: parity node check: Check if all parities are satisfied Done!

Example 2: Double error Iteration #1

Example 2: Double error Iteration #1

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration #

Example 2: Double error Iteration # Done