230 likes | 658 Vues
Error Correction and LDPC decoding. Error Correction in Communication Systems. noise. Transmitter. Receiver. Corrupted. Binary. Corrected. frame. frame. information. information. channel. 3.
E N D
Error Correction in Communication Systems noise Transmitter Receiver Corrupted Binary Corrected frame frame information information channel 3 • Error: Given the original frame k and the received frame k’, how many corresponding bits differ? • Hamming distance (Hamming, 1950). • Example: • Transmitted frame: 1110011 • Received frame: 1011001 • Number of errors:
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 Renewed interest in LDPC LDPC Introduced 1990 1970 2000 1980 1950 1960 Turbo codes Hamming codes Practical implementation of codes BCH codes Convolutional codes LDPC beats Turbo and convolutional codes Reed Solomon codes
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
Important metrics signal power is two times noise power • 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 • 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
Error Correction in Communication Systems Corrected Information k-bit noise Information k-bit Codewordn-bit • Goal: Attain lower BER at smaller SNR • Error correction is a key componentin 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 Receivedword n-bit Decoder (check parity, detect error) Encoder (add parity) channel 100 10-1 Uncoded system 10-2 Bit Error Probability 10-3 Convolutional code 10-4 3 dB 0 1 2 3 4 5 6 7 8 Signal to Noise Ratio (dB) Figure courtesy of B. Nikolic, 2003 (modified)
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 100 Uncoded 10-1 10-2 Bit Error Probability Conv. code 10-3 4 dB 10-4 0 1 2 3 4 5 6 7 8 Signal to Noise Ratio (dB) Figure courtesy of B. Nikolic, 2003 (modified)
Future Wireless Devices Requirements • Increased throughput • 1Gbps for next generation of WiMAX (802.16m) and LTE (Advanced LTE) • 2.2 Gbps WirelessHD UWB [Ref] • Power budget likely • Current smart phones require 100 GOPS within 1 Watt [Ref] • Required reconfigurability for different environments • A rate-compatible LDPC code is proposed for 802.16m [Ref] • Required reconfigurability for different communication standards • Ex: LTE/WiMax dual-mode cellphones require Turbo codes (used in LTE) and LDPC codes (used in WiMAX) • Requires hardware sharing for silicon area saving
Future Digital TV Broadcasting Requirements • High definition television for stationery and mobile users • DTMB/DMB-TH (terrestrial/mobile), ABS-S (satellite), CMMB (multimedia/mobile) • Current Digital TV (DTV) standards are not well-suited for mobile devices • Require more sophisticated signal processing and correction algorithms • Require Low power • Require Low error floor • Remove multi-level coding • Recently proposed ABS-S LDPC codes (15,360-bit code length, 11 code rates) achieves FER < 10-7 without concatenation [Ref]
Future Storage Devices Requirements • Ultra high-density storage • 2 Terabit per square inch [ref] • Worsening InterSymbol Interference (ISI) [ref] • High throughput • Larger than 5 Gbps [ref] • Low error floor • Lower than 10-15 [ref] • Remove multi-level coding • Next generation of Hitachi IDRC read-channel technology [9]
Encoding Picture Example V= Parity Image H×ViT=0 Binary multiplication called syndrome check
Decoding Picture Example Transmitter Receiver noise channel Ethernet cable, Wireless, or Hard disk Iterative message passing decoding Iteration 16 Iteration 15 Iteration 1 Iteration 5
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 • Each parity is generated by a few (not all) information bits • 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)
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, V5 to C1, V8 to C1, V10 to C1 C2 to V1, C5 to V1 Check nodes Check nodes Check nodes C C C 1 1 1 C C C 2 2 2 C C C 3 3 3 C C C 4 4 4 C C C 5 5 5 C C C 6 6 6 Variable nodes Variable nodes Variable nodes V V V 10 10 10 V V V 11 11 11 V V V 1 1 1 V V V 2 2 2 V V V 3 3 3 V V V 4 4 4 V V V 5 5 5 V V V 6 6 6 V V V 7 7 7 V V V 8 8 8 V V V 9 9 9 V V V 12 12 12 Receivedword from channel
Message Passing: Variable node processing α:message from check to variable node β:message from variable to check node λis the original received information from the channel
Message Passing: Check node processing(MinSum) After check node processing, the next iteration starts with another variable node processing (begins a new iteration) Magnitude Sign
Example Encoded information V= [1 0 1 0 1 0 1 0 1 1 1 1] BPSK modulated= [-1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1] λ(Received data from channel)= [ -9.1 4.9 -3.2 3.6 -1.4 3.1 0.3 1.6 -6.1 -2.5 -7.8 -6.8] Estimated code= V= 1 0 1 0 1 0 0 0 1 1 1 1 ^
Syndrome computation Step 1: syndrome check: H.Vt=0? Estimated code= V= 1 0 1 0 1 0 0 0 1 1 1 1 ^ Syndrome = [0 0 1 1 0 0] Sumsyndrome=2 Not ZERO then Error