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

Slides:



Advertisements
Similar presentations
Computer Networking Error Control Coding
Advertisements

Data and Computer Communications Tenth Edition by William Stallings Data and Computer Communications, Tenth Edition by William Stallings, (c) Pearson Education.
The Impact of Channel Estimation Errors on Space-Time Block Codes Presentation for Virginia Tech Symposium on Wireless Personal Communications M. C. Valenti.
Houshmand Shirani-mehr 1,2, Tinoosh Mohsenin 3, Bevan Baas 1 1 VCL Computation Lab, ECE Department, UC Davis 2 Intel Corporation, Folsom, CA 3 University.
Data and Computer Communications
EE302 Lesson 21: Transmission of Binary Data in Communication Systems
DIGITAL COMMUNICATIONS.  The modern world is dependent on digital communications.  Radio, television and telephone systems were essentially analog in.
Cooperative Multiple Input Multiple Output Communication in Wireless Sensor Network: An Error Correcting Code approach using LDPC Code Goutham Kumar Kandukuri.
Submission May, 2000 Doc: IEEE / 086 Steven Gray, Nokia Slide Brief Overview of Information Theory and Channel Coding Steven D. Gray 1.
Cellular Communications
Near Shannon Limit Performance of Low Density Parity Check Codes
Code and Decoder Design of LDPC Codes for Gbps Systems Jeremy Thorpe Presented to: Microsoft Research
Interconnect Efficient LDPC Code Design Aiman El-Maleh Basil Arkasosy Adnan Al-Andalusi King Fahd University of Petroleum & Minerals, Saudi Arabia Aiman.
Digital Data Communications Techniques Updated: 2/9/2009.
1/26 Chapter 6 Digital Data Communication Techniques.
Digital to analogue conversion. 1 DIGITAL-TO-ANALOG CONVERSION Digital-to-analog conversion is the process of changing one of the characteristics (A,
Low Density Parity Check (LDPC) Code Implementation Matthew Pregara & Zachary Saigh Advisors: Dr. In Soo Ahn & Dr. Yufeng Lu Dept. of Electrical and Computer.
Institute for Experimental Mathematics Ellernstrasse Essen - Germany DATA COMMUNICATION 2-dimensional transmission A.J. Han Vinck May 1, 2003.
1 INF244 Textbook: Lin and Costello Lectures (Tu+Th ) covering roughly Chapter 1;Chapters 9-19? Weekly exercises: For your convenience Mandatory.
Channel Coding Part 1: Block Coding
Coding No. 1  Seattle Pacific University Modulation Kevin Bolding Electrical Engineering Seattle Pacific University.
Copyright © 2003, Dr. Dharma P. Agrawal and Dr. Qing-An Zeng. All rights reserved. 1 Chapter 4 Channel Coding.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
ECE 6332, Spring, 2014 Wireless Communication Zhu Han Department of Electrical and Computer Engineering Class 18 March. 26 th, 2014.
Tinoosh Mohsenin and Bevan M. Baas VLSI Computation Lab, ECE Department University of California, Davis Split-Row: A Reduced Complexity, High Throughput.
ECS 152A 4. Communications Techniques. Asynchronous and Synchronous Transmission Timing problems require a mechanism to synchronize the transmitter and.
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
Distributed computing using Projective Geometry: Decoding of Error correcting codes Nachiket Gajare, Hrishikesh Sharma and Prof. Sachin Patkar IIT Bombay.
Data and Computer Communications Chapter 6 – Digital Data Communications Techniques.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Basic Characteristics of Block Codes
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
TI Cellular Mobile Communication Systems Lecture 4 Engr. Shahryar Saleem Assistant Professor Department of Telecom Engineering University of Engineering.
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
1 Channel Coding (III) Channel Decoding. ECED of 15 Topics today u Viterbi decoding –trellis diagram –surviving path –ending the decoding u Soft.
Part 1: Overview of Low Density Parity Check(LDPC) codes.
Multi-Split-Row Threshold Decoding Implementations for LDPC Codes
Timo O. Korhonen, HUT Communication Laboratory 1 Convolutional encoding u Convolutional codes are applied in applications that require good performance.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
Tufts University. EE194-WIR Wireless Sensor Networks. February 17, 2005 Increased QoS through a Degraded Channel using a Cross-Layered HARQ Protocol Elliot.
FEC Linear Block Coding
1/30/ :20 PM1 Chapter 6 ─ Digital Data Communication Techniques CSE 3213 Fall 2011.
Implementation of Turbo Code in TI TMS320C8x Hao Chen Instructor: Prof. Yu Hen Hu ECE734 Spring 2004.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
Information Theory & Coding for Digital Communications Prof JA Ritcey EE 417 Source; Anderson Digital Transmission Engineering 2005.
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.
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.
Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes.
Fundamentals of Communications. Communication System Transmitter: originates the signal Receiver: receives transmitted signal after it travels over the.
Error Correction and LDPC decoding
VLSI Architectures For Low-Density Parity-Check (LDPC) Decoders
Variable Length LDPC Codes for 45GHz
Q. Wang [USTB], B. Rolfe [BCA]
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:
Chapter 6.
Coding and Interleaving
January 2004 Turbo Codes for IEEE n
An Improved Split-Row Threshold Decoding Algorithm for LDPC Codes
Chapter 6.
High Throughput LDPC Decoders Using a Multiple Split-Row Method
Variable Length Ldpc Codes for 45GHz
Chris Jones Cenk Kose Tao Tian Rick Wesel
CT-474: Satellite Communications
Coding and Error Control
Low-Density Parity-Check Codes
Presentation transcript:

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

Error Correction in Communication Systems 2 Error: Given the original frame k and the received frame k’, how many corresponding bits differ? Hamming distance (Hamming, 1950). Example: Transmitted frame: Received frame: Number of errors: noise Transmitter Binary information Corrected information frame Corrupted frame channel Receiver 3

3 Error Detection and Correction Add extra information to the original data being transmitted. Frame = k data bits + m bits for error control: n = k + m. Error detection: enough info to detect error. Need retransmissions. Error correction: enough info to detect and correct error. Forward error correction (FEC).

Error Correction in Communication Systems Reed Solomon codes Hamming codes LDPC Introduced Convolutional codes BCH codes Renewed interest in LDPC Turbo codes Practical implementation of codes LDPC beats Turbo and convolutional codes

Modulation Phase-shift keying (PSK) is a digital modulation scheme that conveys data by changing, or modulating, the phase of a reference signal Binary Phase Shift-Keying (BPSK) Modulation phase reversal keying, or 2PSK) is the simplest form of phase shift keying (PSK). It uses two phases which are separated by 180° In matlab: 1-2X where X is the input signal Quadrature phase-shift keying (QPSK) 4-PSK, or 4-QAM. QPSK uses four points on the constellation diagram, equispaced around a circle. With four phases, QPSK can encode two bits per symbol, shown in the diagram with gray coding to minimize the bit error rate (BER). 5

Key terms Encoder : adds redundant bits to the sender's bit stream to create a codeword. Decoder: uses the redundant bits to detect and/or correct as many bit errors as the particular error-control code will allow. Communication Channel: the part of the communication system that introduces errors. Ex: radio, twisted wire pair, coaxial cable, fiber optic cable, magnetic tape, optical discs, or any other noisy medium Additive white Gaussian noise (AWGN) Larger noise makes the distribution wider 6

Important metrics Bit error rate (BER): The probability of bit error. We want to keep this number small Ex: BER=10 -4 means if we have transmitted10,000 bits, there is 1 bit error. BER is a useful indicator of system performance independent of error channel BER=Number of error bits/ total number of transmitted bits Signal to noise ratio (SNR): quantifies how much a signal has been corrupted by noise. defined as the ratio of signal power to the noise power corrupting the signal. A ratio higher than 1:1 indicates more signal than noise often expressed using the logarithmic decibel scale: Important number: 3dB means 7 signal power is two times noise power

Error Correction in Communication Systems Goal: Attain lower BER at smaller SNR Error correction is a key component in communication and storage applications. Coding example: Convolutional, Turbo, and Reed-Solomon codes What can 3 dB of coding gain buy? A satellite can send data with half the required transmit power A cellphone can operate reliably with half the required receive power Signal to Noise Ratio (dB) Figure courtesy of B. Nikolic, 2003 (modified) Bit Error Probability dB Convolutional code Uncoded system noise 8 Information k-bit channel Codeword n-bit Receivedword n-bit Decoder (check parity, detect error) Encoder (add parity) Corrected Information k-bit

LDPC Codes and Their Applications Low Density Parity Check (LDPC) codes have superior error performance 4 dB coding gain over convolutional codes Standards and applications 10 Gigabit Ethernet (10GBASE-T) Digital Video Broadcasting (DVB-S2, DVB-T2, DVB-C2) Next-Gen Wired Home Networking (G.hn) WiMAX (802.16e) WiFi (802.11n) Hard disks Deep-space satellite missions Signal to Noise Ratio (dB) Bit Error Probability dB Conv. code Uncoded Figure courtesy of B. Nikolic, 2003 (modified) 9

Encoding Picture Example H.V i T =0 Parity Image V= Binary multiplication called syndrome check

Decoding Picture Example Iterative message passing decoding Receiver noise Iteration 1 Transmitter Iteration 5 Iteration 15 Iteration 16 channel Ethernet cable, Wireless, or Hard disk

LDPC Codes—Parity Check Matrix Defined by a large binary matrix, called a parity check matrix or H matrix Each row is defined by a parity equation The number of columns is the code length Example: 6x 12 H matrix for a12-bit LDPC code No. of columns=12 (i.e. Receivedword (V) = 12 bit) No. of rows= 6 No. of ones per row=3 (row weight) No. of ones per col= 2 (column weight) 12

LDPC Codes—Tanner Graph Interconnect representation of H matrix Two sets of nodes: Check nodes and Variable nodes Each row of the matrix is represented by a Check node Each column of matrix is represented by a Variable node A message passing method is used between nodes to correct errors (1) Initialization with Receivedword (2) Messages passing until correct Example: V3 to C1, V4 to C1, V8 to C1, V10 to C1 C2 to V1, C5 to V1 13 C1C2C3C4C5C6 V1V2V3V4V5V6V7V8V9 V10V11 V12 Variable nodes Receivedword from channel C1C2C3C4C5C6 V1V2V3V4V5V6V7V8V9 V10V11 V12 Check nodes Variable nodes C1C2C3C4C5C6 V1V2V3V4V5V6V7V8V9 V10V11 V12 Variable nodes The same for other nodes: message passing along the connections

Message Passing: Variable node processing λ is the original received information from the channel 14 α : message from check to variable node β : message from variable to check node

Message Passing: Check node processing (MinSum) 15 Sign Magnitude After check node processing, the next iteration starts with another variable node processing (begins a new iteration) C1C2C3C4C5C6 V1V2V3 V 4V6V7V8V9 V10 V11V12 V6 Check nodes Variable nodes

Code Estimation Based on your modulation scheme (here BPSK) estimate the transmitted bits 16 ^ V ^ V Z

Syndrome Check Compute syndrome Ex: 17 H.V i T =0 (Binary multiplication) If syndrome =0, terminate decoding Else, continue another iteration ^

Example Encoded information V= [ ] 18 BPSK modulated= [ ] λ (Received data from channel)= [ ] Estimated code= V= ^ Information k-bit channel Codeword (V) n-bit Receivedword(λ) n-bit Decoder (iterative MinSum) Encoder Corrected Information n-bit BPSK modulation

Ex: Variable node processing (iteration 1) λ=λ=

Ex: Check node processing (Iteration 1) 20 = Here assume C1C2C3C4C5C6 V1V2V3 V 4V6V7V8V9 V10 V11V12 V6

Ex: Code Estimation (Iteration 1) 21 ^ V ^ V Z = Z=λ = [ ] ^ V

Ex: Syndrome Check (iteration 1) Compute syndrome H.V i T =0 (Binary multiplication) ^ 22 Sumsyndrome=2 Not ZERO => Error, continue decoding x

Second iteration In variable node processing, compute β, α and Z based on the algorithm 23 Z= [ ] [ ] ^ V= λ=λ= λ=λ=

Ex: Syndrome Check (iteration 2) Compute syndrome H.V i T =0 (Binary multiplication) ^ 24 Sumsyndrome= ZERO => corrected code Terminate Decoding x

Full-Parallel Decoding Every check node and variable node is mapped to a processor All processors directly connected based on the Tanner graph Very High throughput No large memory storage elements (e.g. SRAMs) High routing congestion Large delay, area, and power caused by long global wires 25 init: all α = 0 Chk Var λ from channel Var Chk Var Chk Var Chk 1 2 6

Full-Parallel LDPC Decoder Examples For all data in the plot: Same automatic place & route flow is used CPU: Quad Core, Intel Xeon 3.0GHz Ex 1: 1024-bit decoder, [JSSC 2002] 52.5 mm 2, 50% logic utilization, 160 nm CMOS Ex 2: 2048 bit decoder, [ISCAS 2009] 18.2 mm 2, 25% logic utilization, 30 MHz, 65 nm CMOS CPU time for place & route>10 days 512 Chk & 1024 Var Proc. 384 Chk & 2048 Var Proc.

Serial Decoder Example (2) compute V1 and store V2V3 V4 V5 V6 V7 V8 V9 V10 V11V12 (1) initialize memory (clear contents) (3) …now compute C1 and store C2 C3 C4C5C6

Decoding Architectures Partial parallel decoders Multiple processing units and shared memories Throughput: 100 Mbps-Gbps Requires Large memory (depending on the size) Requires Efficient Control and scheduling

Reported LDPC Decoder ASICs 10GBASE-T e DVB-S n a/g

Throughput Across Fabrication Technologies Existing ASIC implementations without early termination Full-parallel decoders have the highest throughput

Energy per Decoded Bit in Different Technologies Existing ASIC implementations without early termination Full-parallel decoders have the lowest energy dissipation

Circuit Area in Different Technologies Full-parallel decoders have the largest area due to the high routing congestion and low logic utilization

Key optimization factors Architectural optimization Parallelism Memory Data path wordwidth (fixedpoint format) 33

Architectural optimization 34 Z. Zhang JSSC 2010

BER performance versus quantization format 35 SNR(dB)

Check Node Processor

37

Variable Node Processor Based on the variable update equation The same as the original MinSum and SPA algorithms Variable node hardware complexity is mainly reduced via wordwidth reduction seven 5-bit inputs

39

Partial parallel decoder example 40

802.11ad LDPC code 41

42

Transmission scenario 43