Part III Advanced Coding Techniques

Similar documents
Cyclic Redundancy Check Codes

Introduction to Low-Density Parity Check Codes. Brian Kurkoski

ECEN 655: Advanced Channel Coding

An Introduction to Low Density Parity Check (LDPC) Codes

Fountain Uncorrectable Sets and Finite-Length Analysis

Quasi-cyclic Low Density Parity Check codes with high girth

LDPC Codes. Intracom Telecom, Peania

Convergence analysis for a class of LDPC convolutional codes on the erasure channel

On the minimum distance of LDPC codes based on repetition codes and permutation matrices 1

Lecture 14 October 22

On Encoding Symbol Degrees of Array BP-XOR Codes

LDPC Codes. Slides originally from I. Land p.1

Windowed Erasure Codes

Regenerating Codes and Locally Recoverable. Codes for Distributed Storage Systems

Iterative Encoding of Low-Density Parity-Check Codes

Raptor Codes: From a Math Idea to LTE embms. BIRS, October 2015

Lecture 12. Block Diagram

Codes on graphs and iterative decoding

Codes on Graphs. Telecommunications Laboratory. Alex Balatsoukas-Stimming. Technical University of Crete. November 27th, 2008

Fountain Codes. Amin Shokrollahi EPFL

Compressed Sensing and Linear Codes over Real Numbers

Construction of low complexity Array based Quasi Cyclic Low density parity check (QC-LDPC) codes with low error floor

Section 3 Error Correcting Codes (ECC): Fundamentals


Erasure Codes with a Banded Structure for Hybrid Iterative-ML Decoding

Structured Low-Density Parity-Check Codes: Algebraic Constructions

Graph-based codes for flash memory

Performance Analysis and Code Optimization of Low Density Parity-Check Codes on Rayleigh Fading Channels

Arrangements, matroids and codes

Constructions of Nonbinary Quasi-Cyclic LDPC Codes: A Finite Field Approach

Low-density parity-check codes

Vector spaces. EE 387, Notes 8, Handout #12

An Introduction to Algorithmic Coding Theory

Quasi-Cyclic Asymptotically Regular LDPC Codes

Optimal Rate and Maximum Erasure Probability LDPC Codes in Binary Erasure Channel

Lecture 4: Linear Codes. Copyright G. Caire 88

RECURSIVE CONSTRUCTION OF (J, L) QC LDPC CODES WITH GIRTH 6. Communicated by Dianhua Wu. 1. Introduction

1.6: Solutions 17. Solution to exercise 1.6 (p.13).

Extended Subspace Error Localization for Rate-Adaptive Distributed Source Coding

Spatially Coupled LDPC Codes

Thresholds for the Recovery of Sparse Solutions via L1 Minimization

Variable Rate Channel Capacity. Jie Ren 2013/4/26

Iterative Decoding for Wireless Networks

Error Detection, Correction and Erasure Codes for Implementation in a Cluster File-system

Physical Layer and Coding

AN INTRODUCTION TO COMPRESSIVE SENSING

Proofs of Retrievability via Fountain Code

New Coherence and RIP Analysis for Weak. Orthogonal Matching Pursuit

Block Codes :Algorithms in the Real World

Low-Density Parity-Check Codes

EE229B - Final Project. Capacity-Approaching Low-Density Parity-Check Codes

Chapter 7. Error Control Coding. 7.1 Historical background. Mikael Olofsson 2005

Lecture 4 : Introduction to Low-density Parity-check Codes

Time-invariant LDPC convolutional codes

Weaknesses of Margulis and Ramanujan Margulis Low-Density Parity-Check Codes

Codes designed via algebraic lifts of graphs

Lecture 22: More On Compressed Sensing

Making Error Correcting Codes Work for Flash Memory

Compressed Sensing Using Reed- Solomon and Q-Ary LDPC Codes

Low-complexity error correction in LDPC codes with constituent RS codes 1

An Introduction to Sparse Approximation

Low Density Parity Check (LDPC) Codes and the Need for Stronger ECC. August 2011 Ravi Motwani, Zion Kwok, Scott Nelson

A Structured Construction of Optimal Measurement Matrix for Noiseless Compressed Sensing via Polarization of Analog Transmission

Codes on graphs and iterative decoding

Low-Density Parity-Check codes An introduction

MATH32031: Coding Theory Part 15: Summary

A Key Recovery Attack on MDPC with CCA Security Using Decoding Errors

Turbo Codes are Low Density Parity Check Codes

A Class of Quantum LDPC Codes Derived from Latin Squares and Combinatorial Design

Message-Passing Decoding for Low-Density Parity-Check Codes Harish Jethanandani and R. Aravind, IIT Madras

Secure RAID Schemes from EVENODD and STAR Codes

Universal variable-length data compression of binary sources using fountain codes

Design and Analysis of LT Codes with Decreasing Ripple Size

Capacity of a channel Shannon s second theorem. Information Theory 1/33

On Generalized EXIT Charts of LDPC Code Ensembles over Binary-Input Output-Symmetric Memoryless Channels

LDPC codes based on Steiner quadruple systems and permutation matrices

Construction and Performance Evaluation of QC-LDPC Codes over Finite Fields

ECC for NAND Flash. Osso Vahabzadeh. TexasLDPC Inc. Flash Memory Summit 2017 Santa Clara, CA 1

MATH3302 Coding Theory Problem Set The following ISBN was received with a smudge. What is the missing digit? x9139 9

Local correctability of expander codes

THE ANALYTICAL DESCRIPTION OF REGULAR LDPC CODES CORRECTING ABILITY

Maximum Likelihood Decoding of Codes on the Asymmetric Z-channel

Efficient design of LDPC code using circulant matrix and eira code Seul-Ki Bae

Fully-parallel linear error block coding and decoding a Boolean approach

Coding for loss tolerant systems

Practical Polar Code Construction Using Generalised Generator Matrices

Integrated Code Design for a Joint Source and Channel LDPC Coding Scheme

B. Cyclic Codes. Primitive polynomials are the generator polynomials of cyclic codes.

Solutions of Exam Coding Theory (2MMC30), 23 June (1.a) Consider the 4 4 matrices as words in F 16

MATH3302. Coding and Cryptography. Coding Theory

ML and Near-ML Decoding of LDPC Codes Over the BEC: Bounds and Decoding Algorithms

Coding Theory and Applications. Linear Codes. Enes Pasalic University of Primorska Koper, 2013

Solutions to problems from Chapter 3

MATH 433 Applied Algebra Lecture 21: Linear codes (continued). Classification of groups.

Performance Comparison of LDPC Codes Generated With Various Code-Construction Methods

Enhancing Binary Images of Non-Binary LDPC Codes


(Classical) Information Theory III: Noisy channel coding

Coding Techniques for Data Storage Systems

GALLAGER S binary low-density parity-check (LDPC)

Transcription:

Part III Advanced Coding Techniques José Vieira SPL Signal Processing Laboratory Departamento de Electrónica, Telecomunicações e Informática / IEETA Universidade de Aveiro, Portugal 2010 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 1 / 68

Ocean Store The Infinite disk ID ID Client DATA DATA Client ID DATA Client José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 2 / 68

Error Correction Code Unpredictable Channel Conditions Coder Erasure Channel Decoder m c e y m^ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 3 / 68

Digital Fountains Questions Dissemination of data: How to encode data files to distribute them by a huge number of disks around the world? Resilience: How can we encode data files to make any encoded data useful? Ratelessness: How to generate an infinite number of codewords? Answer: random coding! José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 4 / 68

Digital Fountains Questions Dissemination of data: How to encode data files to distribute them by a huge number of disks around the world? Resilience: How can we encode data files to make any encoded data useful? Ratelessness: How to generate an infinite number of codewords? Answer: random coding! José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 4 / 68

Digital Fountains Questions Dissemination of data: How to encode data files to distribute them by a huge number of disks around the world? Resilience: How can we encode data files to make any encoded data useful? Ratelessness: How to generate an infinite number of codewords? Answer: random coding! José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 4 / 68

Digital Fountains Questions Dissemination of data: How to encode data files to distribute them by a huge number of disks around the world? Resilience: How can we encode data files to make any encoded data useful? Ratelessness: How to generate an infinite number of codewords? Answer: random coding! José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 4 / 68

Essential Textbooks and Papers David J. C. Mackay, Information Theory, Inference and Learning Algorithms, Cambridge, 2004 Mackay, D. J. C., Fountain Codes, IEE Proceedings - Communications, Vol.152, N.6, pp.1062-1068, December, 2005 Luby, Michael, LT Codes, Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science (FOCS 02), pp.271-280, IEEE, November, 2002 Maymounkov, Petar, Online Codes, New York University, New York, November, 2002 Fragouli, Christina, Boudec, Jean-Yves Le, and Widmer, Jörg, Network Coding: Na Instant Primer, ACM SIGCOMM Computer Communication Review, Vol.36, N.1, pp.63-68, January, 2006 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 5 / 68

Suplementar Papers Shokrollahi, Amin, Raptor Codes, IEEE Transactions on Information Theory, Vol.52, N.6, pp.2551-2567, June, 2006 Shamai, Shlomo, Telatar, I. Emre, and Verdú, Sergio, Fountain Capacity, IEEE Transactions on Information Theory, Vol.53, N.11, pp.4372-4376, November, 2007 Dimakis, Alexandros G., Prabhakaran, Vinod, and Ramchandran, Kannan, Decentralized Erasure Codes for Distributed Networked Storage, IEEE Transactions on Information Theory, Vol.52, N.6, pp.2809-2816, June, 2006 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 6 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 7 / 68

Linear Codes Coding with Real Numbers One linear combination [ ] c1 = [ g 1 ] m 1 1 1 K K 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 8 / 68

Linear Codes Coding with Real Numbers Two linear combinations [ ] [ ] c1 g1 = m c 2 g 2 2 1 2 K K 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 9 / 68

Linear Codes Coding with Real Numbers Adding redundancy to a signal N > K c 1 c 2. c N N 1 g 1 g 2 = m. g N N K K 1 c = Gm José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 10 / 68

Linear Codes Coding with Real Numbers Adding redundancy to a signal N > K c 1 c 2. c N N 1 g 1 g 2 = m. g N N K K 1 c = Gm José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 10 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 11 / 68

Erasures Erasures Lost samples at known positions How to recover the message m from incomplete c? c 1 c 2 c 3 c 4 c 5 N 1 g 1 g 2 = g 3 m g 4 g 5 K 1 N K José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 12 / 68

Erasures If only L samples of c are received we have: c 1 g 1 Xc 2 Xg 2 c 3 = g 3 m Xc 4 Xg 4 g 5 K 1 c 5 N 1 N K Define J = {1, 3, 5} as the set of the received samples José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 13 / 68

Erasures Solve the following system of equations to obtain the original signal m c 1 c 3 c 5 L 1 g 1 = g 3 m g 5 L K K 1 c(j) = G(J)m José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 14 / 68

Erasures Depending on L (number of received samples), there are three possible situations L < K Underdetermined system of equations. In general not enough information to recover m uniquely. Additional restrictions can be imposed in order to get an unique solution. L = K Determined system of equations, one solution (max.). ˆm = G(J) 1 c(j) L > K Overdetermined system of equations. In general there is not an unique solution. In the field R we can choose the least squares solution, the one that best approximates all the equations in L 2 sense. ˆm = (G(J) T G(J)) 1 G(J) T c(j) = G(J) c(j) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 15 / 68

Erasures Depending on L (number of received samples), there are three possible situations L < K Underdetermined system of equations. In general not enough information to recover m uniquely. Additional restrictions can be imposed in order to get an unique solution. L = K Determined system of equations, one solution (max.). ˆm = G(J) 1 c(j) L > K Overdetermined system of equations. In general there is not an unique solution. In the field R we can choose the least squares solution, the one that best approximates all the equations in L 2 sense. ˆm = (G(J) T G(J)) 1 G(J) T c(j) = G(J) c(j) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 15 / 68

Erasures Depending on L (number of received samples), there are three possible situations L < K Underdetermined system of equations. In general not enough information to recover m uniquely. Additional restrictions can be imposed in order to get an unique solution. L = K Determined system of equations, one solution (max.). ˆm = G(J) 1 c(j) L > K Overdetermined system of equations. In general there is not an unique solution. In the field R we can choose the least squares solution, the one that best approximates all the equations in L 2 sense. ˆm = (G(J) T G(J)) 1 G(J) T c(j) = G(J) c(j) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 15 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 16 / 68

Correcting Errors Errors Errors: Lost samples at unknown positions m c y Coder Decoder m^ How can we find the errors positions? e José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 17 / 68

Correcting Errors Consider an N N orthogonal matrix partitioned in the following way: F = G H N K N (N K) [ G T H T ] [ G [GH] = T G G T H H T G H T H So we have H T G = 0 ] = [ I 0 0 I ] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 18 / 68

Correcting Errors Consider an N N orthogonal matrix partitioned in the following way: F = G H N K N (N K) [ G T H T ] [ G [GH] = T G G T H H T G H T H So we have H T G = 0 ] = [ I 0 0 I ] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 18 / 68

Correcting Errors Consider an N N orthogonal matrix partitioned in the following way: F = G H N K N (N K) [ G T H T ] [ G [GH] = T G G T H H T G H T H So we have H T G = 0 ] = [ I 0 0 I ] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 18 / 68

Correcting Errors Received y and given F, if there are no errors, then y = c = Gm We can use the matrix H to test the received signal y s = H T y = H T c = H}{{ T G} m = 0 =0 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 19 / 68

Correcting Errors Received y and given F, if there are no errors, then y = c = Gm We can use the matrix H to test the received signal y s = H T y = H T c = H}{{ T G} m = 0 =0 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 19 / 68

Correcting Errors The received vector y is a corrupted version of c at unknown positions, example y 1 c 1 0 y 2 y 3 y 4 = c 2 c 3 c 4 + 0 e 3 0 y 5 c 5 0 y = c + e The matrix H is used to verify that the received signal y is a codeword s = H T y = H T c + H T e = H T e 0 The syndrome s is a linear combination of the columns of H T where the e i are the coefficients. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 20 / 68

Correcting Errors The received vector y is a corrupted version of c at unknown positions, example y 1 c 1 0 y 2 y 3 y 4 = c 2 c 3 c 4 + 0 e 3 0 y 5 c 5 0 y = c + e The matrix H is used to verify that the received signal y is a codeword s = H T y = H T c + H T e = H T e 0 The syndrome s is a linear combination of the columns of H T where the e i are the coefficients. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 20 / 68

Correcting Errors The received vector y is a corrupted version of c at unknown positions, example y 1 c 1 0 y 2 y 3 y 4 = c 2 c 3 c 4 + 0 e 3 0 y 5 c 5 0 y = c + e The matrix H is used to verify that the received signal y is a codeword s = H T y = H T c + H T e = H T e 0 The syndrome s is a linear combination of the columns of H T where the e i are the coefficients. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 20 / 68

Correcting Errors The received vector y is a corrupted version of c at unknown positions, example y 1 c 1 0 y 2 y 3 y 4 = c 2 c 3 c 4 + 0 e 3 0 y 5 c 5 0 y = c + e The matrix H is used to verify that the received signal y is a codeword s = H T y = H T c + H T e = H T e 0 The syndrome s is a linear combination of the columns of H T where the e i are the coefficients. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 20 / 68

Correcting Errors Example: repetition code c 2 2 c = 2 c 1 = c 2 Repetition code: [ G H ] 1 F = 1 1 1 Suppose we[ code 1 c = Gm = 1 ] [2] = [ 2 2 ] m = [ 2] c 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 21 / 68

Correcting Errors Example: repetition code c 2 c 1 = c 2 3 y = 2 Repetition code: [ G H ] 1 F = 1 1 1 Suppose we[ code 1 c = Gm = 1 ] [2] = [ 2 2 If [ an] error [ occurs ] y [ = c ] + e = 2 1 3 + = 2 0 2 ] c 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 22 / 68

g Correcting Errors Example: repetition code c 2 h y c 1 = c 2 c 1 Repetition code: [ G H ] 1 F = 1 1 1 Suppose we[ code 1 c = Gm = 1 ] [2] = [ 2 2 If [ an] error [ occurs ] y [ = c ] + e = 2 1 3 + = 2 0 2 We can verify that the received vector [ y has ] an error 3 H T y = [1 1] = 1 0 2 ] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 23 / 68

Linear Codes Coding with Real Numbers c 3 C o d e w o r d s s u b s p a c e c 2 M e s s a g e s u b s p a c e c 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 24 / 68

Linear Codes Coding with Real Numbers c 3 1 G = 0 1/ 2 0 1 1/ 2 1/ 2 H = 1/ 2 1 g 2 g 1 c 2 h c 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 25 / 68

Linear Codes Coding with Real Numbers c 3 1 c = 1 1 c 2 c 1 1 m = 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 26 / 68

Linear Codes Coding with Real Numbers Linear code: F = G 1 0 0 1 1/2 1/2 To code the message m = [ 1 1 If an error occurs y = c + e = H 1 1 2 ] we get c = Gm = 1 1 1 + 0 0 1/2 To verify that the received vector y has an error 1 s = H T y = [ 1 1 2 ] 1 1/2 = 1 0 1 1 1 = 1 1 1/2 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 27 / 68

Linear Codes Coding with Real Numbers Linear code: F = G 1 0 0 1 1/2 1/2 To code the message m = [ 1 1 If an error occurs y = c + e = H 1 1 2 ] we get c = Gm = 1 1 1 + 0 0 1/2 To verify that the received vector y has an error 1 s = H T y = [ 1 1 2 ] 1 1/2 = 1 0 1 1 1 = 1 1 1/2 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 27 / 68

Linear Codes Coding with Real Numbers Linear code: F = G 1 0 0 1 1/2 1/2 To code the message m = [ 1 1 If an error occurs y = c + e = H 1 1 2 ] we get c = Gm = 1 1 1 + 0 0 1/2 To verify that the received vector y has an error 1 s = H T y = [ 1 1 2 ] 1 1/2 = 1 0 1 1 1 = 1 1 1/2 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 27 / 68

Linear Codes Coding with Real Numbers Linear code: F = G 1 0 0 1 1/2 1/2 To code the message m = [ 1 1 If an error occurs y = c + e = H 1 1 2 ] we get c = Gm = 1 1 1 + 0 0 1/2 To verify that the received vector y has an error 1 s = H T y = [ 1 1 2 ] 1 1/2 = 1 0 1 1 1 = 1 1 1/2 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 27 / 68

Correcting Errors The Syndrome as a linear combination of columns of H T s 1. s N K = H T h 1 h 2 h N e 1 e 2 e 3.. e N s 1. s N K = e 1 h 1 + e 2 h 2 + + e N h N José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 28 / 68

Correcting Errors The Syndrome as a linear combination of columns of H T s 1. s N K = H T h 1 h 2 h N e 1 e 2 e 3.. e N s 1. s N K = e 1 h 1 + e 2 h 2 + + e N h N José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 28 / 68

Correcting Errors Brute force approach Problem Find the linear combination of vectors h i that best approximates s The error vector e is a sparse vector, so we want the sparsest solution Brute force approach: test all error patterns Equivalent to solve the following optimization problem: Problem min e 0 s.t. s = H T e José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 29 / 68

Correcting Errors Brute force approach Problem Find the linear combination of vectors h i that best approximates s The error vector e is a sparse vector, so we want the sparsest solution Brute force approach: test all error patterns Equivalent to solve the following optimization problem: Problem min e 0 s.t. s = H T e José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 29 / 68

Correcting Errors Brute force approach Problem Find the linear combination of vectors h i that best approximates s The error vector e is a sparse vector, so we want the sparsest solution Brute force approach: test all error patterns Equivalent to solve the following optimization problem: Problem min e 0 s.t. s = H T e José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 29 / 68

Correcting Errors Brute force approach Search for the best linear combination s 1. = e 1 h 1 + e 2 h 2 + + e N h N s N K Find the minimum of s ŝ 2 for all error patterns and each number of errors n N o Combinations 1 ŝ = e i h i N ( 2 ŝ = e i h i + e j h N ) j 2... L ŝ = i=j e L ( N ) ih i n=1 n This is a NP hard combinatorial problem. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 30 / 68

Correcting Errors Brute force approach Search for the best linear combination s 1. = e 1 h 1 + e 2 h 2 + + e N h N s N K Find the minimum of s ŝ 2 for all error patterns and each number of errors n N o Combinations 1 ŝ = e i h i N ( 2 ŝ = e i h i + e j h N ) j 2... L ŝ = i=j e L ( N ) ih i n=1 n This is a NP hard combinatorial problem. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 30 / 68

Correcting Errors Brute force approach Search for the best linear combination s 1. = e 1 h 1 + e 2 h 2 + + e N h N s N K Find the minimum of s ŝ 2 for all error patterns and each number of errors n N o Combinations 1 ŝ = e i h i N ( 2 ŝ = e i h i + e j h N ) j 2... L ŝ = i=j e L ( N ) ih i n=1 n This is a NP hard combinatorial problem. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 30 / 68

Avoiding the combinatorial explosion Solutions Solution 1: Use coding matrices G and parity check matrices H with a convenient structure: Hamming DFT - (BCH cyclic codes) DCT etc. Solution 2: Use random matrices and L 1 minimization to obtain a sparse solution for the error vector Solution 3: Use sparse random matrices and fast algorithms that take advantage of sparsity (LDPC and LT codes) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 31 / 68

Avoiding the combinatorial explosion Solutions Solution 1: Use coding matrices G and parity check matrices H with a convenient structure: Hamming DFT - (BCH cyclic codes) DCT etc. Solution 2: Use random matrices and L 1 minimization to obtain a sparse solution for the error vector Solution 3: Use sparse random matrices and fast algorithms that take advantage of sparsity (LDPC and LT codes) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 31 / 68

Avoiding the combinatorial explosion Solutions Solution 1: Use coding matrices G and parity check matrices H with a convenient structure: Hamming DFT - (BCH cyclic codes) DCT etc. Solution 2: Use random matrices and L 1 minimization to obtain a sparse solution for the error vector Solution 3: Use sparse random matrices and fast algorithms that take advantage of sparsity (LDPC and LT codes) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 31 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 32 / 68

Solution 1 Coding with structured matrices Choose β i as the roots of unity in any field (finite or not). Note that the roots of unity are the solutions of a n = 1 Construct the Vandermonde matrix β0 0 β1 0 βn 1 0 β0 1 β1 1 βn 1 1...... with β i β j β0 N 1 β1 N 1 β N 1 N 1 These codes can correct at least N K 2 errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 33 / 68

Solution 1 Coding with the DFT In a Galois field, only certain values of N have roots of unity In the Complex field C the roots of unity of order N are β i = e j 2π N i - DFT matrix These codes are known as the BCH codes A codeword c is generated by evaluating the IDFT of a zero padded message vector m c = IDFT m 0 0 = G m José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 34 / 68

Solution 1 Coding with the DFT The syndrome s is part of the DFT of e s = H T e The complete equation will be [ ] [ ] s G T = e s If we have a way of obtaining s then we could calculate the error e by inverse transform. As e is sparse with only L values different from zero, s is a linear combination of only L components: s n = H T L a k s n k k=1 If we know 2L values of the syndrome we can correct L errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 35 / 68

Solution 1 Coding with the DFT The syndrome s is part of the DFT of e s = H T e The complete equation will be [ ] [ ] s G T = e s If we have a way of obtaining s then we could calculate the error e by inverse transform. As e is sparse with only L values different from zero, s is a linear combination of only L components: s n = H T L a k s n k k=1 If we know 2L values of the syndrome we can correct L errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 35 / 68

Solution 1 Coding with the DFT The syndrome s is part of the DFT of e s = H T e The complete equation will be [ ] [ ] s G T = e s If we have a way of obtaining s then we could calculate the error e by inverse transform. As e is sparse with only L values different from zero, s is a linear combination of only L components: s n = H T L a k s n k k=1 If we know 2L values of the syndrome we can correct L errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 35 / 68

Solution 1 Coding with the DFT The syndrome s is part of the DFT of e s = H T e The complete equation will be [ ] [ ] s G T = e s If we have a way of obtaining s then we could calculate the error e by inverse transform. As e is sparse with only L values different from zero, s is a linear combination of only L components: s n = H T L a k s n k k=1 If we know 2L values of the syndrome we can correct L errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 35 / 68

Solution 1 Coding with the DFT The syndrome s is part of the DFT of e s = H T e The complete equation will be [ ] [ ] s G T = e s If we have a way of obtaining s then we could calculate the error e by inverse transform. As e is sparse with only L values different from zero, s is a linear combination of only L components: s n = H T L a k s n k k=1 If we know 2L values of the syndrome we can correct L errors José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 35 / 68

Solution 1 Decoding example Error vector 1 0.8 0.6 0.4 0.2 Consider the following example: N = 16 Two errors at J = {2, 14} 0 0 5 10 15 n José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 36 / 68

Solution 1 Decoding example 0.15 0.1 0.05 Syndrome In this example, due to the error vector symmetry, the syndrome is a real vector We have the following difference equation 0 s n = a 1 s n 1 + a 2 s n 2 0.05 0.1 2 4 6 8 10 12 14 16 k We have two unknowns and with the four known elements of the syndrome we can form { s3 = a 1 s 2 + a 2 s 1 s 4 = a 1 s 3 + a 2 s 2 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 37 / 68

Solution 1 Stability Problems Due to the structure of the coding matrix G and the parity check matrix H, the syndrome reconstruction is very sensitive to burst of errors This is a direct consequence of the structure of the matrix H. Contiguous row vectors are almost colinear, leading to bad conditioned system of equations To improve the reconstruction stability, we have to modify the structure of H On real number codes we have stability problems. On finite fields those codes behave poorly for burst errors Conclusion: The coding matrix structure is fundamental for both fields: Real and Finite José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 38 / 68

Solution 1 Stability Problems Due to the structure of the coding matrix G and the parity check matrix H, the syndrome reconstruction is very sensitive to burst of errors This is a direct consequence of the structure of the matrix H. Contiguous row vectors are almost colinear, leading to bad conditioned system of equations To improve the reconstruction stability, we have to modify the structure of H On real number codes we have stability problems. On finite fields those codes behave poorly for burst errors Conclusion: The coding matrix structure is fundamental for both fields: Real and Finite José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 38 / 68

Solution 1 Stability Problems Due to the structure of the coding matrix G and the parity check matrix H, the syndrome reconstruction is very sensitive to burst of errors This is a direct consequence of the structure of the matrix H. Contiguous row vectors are almost colinear, leading to bad conditioned system of equations To improve the reconstruction stability, we have to modify the structure of H On real number codes we have stability problems. On finite fields those codes behave poorly for burst errors Conclusion: The coding matrix structure is fundamental for both fields: Real and Finite José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 38 / 68

Solution 1 Stability Problems Due to the structure of the coding matrix G and the parity check matrix H, the syndrome reconstruction is very sensitive to burst of errors This is a direct consequence of the structure of the matrix H. Contiguous row vectors are almost colinear, leading to bad conditioned system of equations To improve the reconstruction stability, we have to modify the structure of H On real number codes we have stability problems. On finite fields those codes behave poorly for burst errors Conclusion: The coding matrix structure is fundamental for both fields: Real and Finite José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 38 / 68

Solution 1 Stability Problems Due to the structure of the coding matrix G and the parity check matrix H, the syndrome reconstruction is very sensitive to burst of errors This is a direct consequence of the structure of the matrix H. Contiguous row vectors are almost colinear, leading to bad conditioned system of equations To improve the reconstruction stability, we have to modify the structure of H On real number codes we have stability problems. On finite fields those codes behave poorly for burst errors Conclusion: The coding matrix structure is fundamental for both fields: Real and Finite José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 38 / 68

Solution 1 + 1/2 Turbo Codes The first attempt to randomise the coding matrix structure was achieved with turbo codes The message is codded with two different coding matrices usually the DFT and a column permuted version Those codes perform better than the BCH codes for both fields. They come close to the Shannon limit DFT coder C 0 m P DFT coder C 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 39 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 40 / 68

Solution 2 Coding with random matrices Consider a N K random real number coding matrix G c = Gm To correct errors we need to evaluate the syndrome with a parity check matrix H which must obey the condition H T G = 0 The columns of H should be orthogonal to the columns of G. This can be obtained by applying the Gram-Schmidt orthogonalization algorithm to a N N random matrix José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 41 / 68

Solution 2 Coding with random matrices Problem How to solve the underdetermined system of equations s = H T e As H has no structure a general method must be found Additional restrictions must be applied to the vector e in order to define an unique solution, e.g.: Minimum energy - min e 2 (L 2 norm) Sparsest - min e 0 (L 0 pseudonorm) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 42 / 68

Solution 2 Coding with random matrices Problem How to solve the underdetermined system of equations s = H T e As H has no structure a general method must be found Additional restrictions must be applied to the vector e in order to define an unique solution, e.g.: Minimum energy - min e 2 (L 2 norm) Sparsest - min e 0 (L 0 pseudonorm) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 42 / 68

Solution 2 Coding with random matrices Problem How to solve the underdetermined system of equations s = H T e As H has no structure a general method must be found Additional restrictions must be applied to the vector e in order to define an unique solution, e.g.: Minimum energy - min e 2 (L 2 norm) Sparsest - min e 0 (L 0 pseudonorm) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 42 / 68

Solution 2 Coding with random matrices Problem How to solve the underdetermined system of equations s = H T e As H has no structure a general method must be found Additional restrictions must be applied to the vector e in order to define an unique solution, e.g.: Minimum energy - min e 2 (L 2 norm) Sparsest - min e 0 (L 0 pseudonorm) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 42 / 68

Solution 2 Coding with random matrices Problem How to solve the underdetermined system of equations s = H T e As H has no structure a general method must be found Additional restrictions must be applied to the vector e in order to define an unique solution, e.g.: Minimum energy - min e 2 (L 2 norm) Sparsest - min e 0 (L 0 pseudonorm) José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 42 / 68

Solution 2 L 0 to L 1 equivalence Donoho and Elad in 2001 founded empirically and theoretically that instead of solving the hard L 0 problem to find the sparsest solution Problem min e 0 s.t. s = H T e They could solve the easiest L 1 problem and under certain conditions, still obtain the same sparsest solution Problem min e 1 s.t. s = H T e This problem can be solved by Linear Programing using the Simplex algorithm or Interior Point methods José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 43 / 68

Solution 2 L 0 to L 1 equivalence Donoho and Elad in 2001 founded empirically and theoretically that instead of solving the hard L 0 problem to find the sparsest solution Problem min e 0 s.t. s = H T e They could solve the easiest L 1 problem and under certain conditions, still obtain the same sparsest solution Problem min e 1 s.t. s = H T e This problem can be solved by Linear Programing using the Simplex algorithm or Interior Point methods José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 43 / 68

Solution 2 L 0 to L 1 equivalence Donoho and Elad in 2001 founded empirically and theoretically that instead of solving the hard L 0 problem to find the sparsest solution Problem min e 0 s.t. s = H T e They could solve the easiest L 1 problem and under certain conditions, still obtain the same sparsest solution Problem min e 1 s.t. s = H T e This problem can be solved by Linear Programing using the Simplex algorithm or Interior Point methods José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 43 / 68

Solution 2 Coding with random matrices We can write the equation to solve in the following form s 1. s N K = e 1 h 1 + e 2 h 2 + + e N h N The syndrome s is a linear combination of L vectors h i We want to find the linear combination of vectors h i that better explains the syndrome using the smallest number of vectors h i José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 44 / 68

Solution 2 Coding with random matrices L < 1 + 1/M(HT ) 2 = ebp ebp is the Equivalent Break Point and is an estimate of the maximum number of correctable errors M(A) is the mutual incoherence of matrix A Definition M(H T ) = max i j hi T h j, such that hk 2 = 1 How to choose H? All the sets of N K columns of H T should be linearly independent Ideally, hi T h j 0 i j José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 45 / 68

Solution 2 Coding with random matrices L < 1 + 1/M(HT ) 2 = ebp ebp is the Equivalent Break Point and is an estimate of the maximum number of correctable errors M(A) is the mutual incoherence of matrix A Definition M(H T ) = max i j hi T h j, such that hk 2 = 1 How to choose H? All the sets of N K columns of H T should be linearly independent Ideally, hi T h j 0 i j José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 45 / 68

Solution 2 Coding with random matrices L < 1 + 1/M(HT ) 2 = ebp ebp is the Equivalent Break Point and is an estimate of the maximum number of correctable errors M(A) is the mutual incoherence of matrix A Definition M(H T ) = max i j hi T h j, such that hk 2 = 1 How to choose H? All the sets of N K columns of H T should be linearly independent Ideally, hi T h j 0 i j José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 45 / 68

Solution 2 Coding with random matrices L < 1 + 1/M(HT ) 2 = ebp ebp is the Equivalent Break Point and is an estimate of the maximum number of correctable errors M(A) is the mutual incoherence of matrix A Definition M(H T ) = max i j hi T h j, such that hk 2 = 1 How to choose H? All the sets of N K columns of H T should be linearly independent Ideally, hi T h j 0 i j José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 45 / 68

Solution 2 Coding with random matrices L < 1 + 1/M(HT ) 2 = ebp ebp is the Equivalent Break Point and is an estimate of the maximum number of correctable errors M(A) is the mutual incoherence of matrix A Definition M(H T ) = max i j hi T h j, such that hk 2 = 1 How to choose H? All the sets of N K columns of H T should be linearly independent Ideally, hi T h j 0 i j José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 45 / 68

Solution 2 Coding with random matrices Random matrices are the solution José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 46 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 47 / 68

Solution 3 Coding with random sparse matrices With random sparse matrices is possible to find efficient algorithms to code and decode. This algorithms make use of the sparsity and avoid the slower L1 optimisation We will introduce two different types of codes that uses sparse matrices LDPC codes Low-Density Parity-Check codes [Gallager 1968] LT codes The first rateless erasure codes [Luby 2002] Online codes Almost the first rateless erasure code [Maymounkov 2002] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 48 / 68

Solution 3 Coding with random sparse matrices With random sparse matrices is possible to find efficient algorithms to code and decode. This algorithms make use of the sparsity and avoid the slower L1 optimisation We will introduce two different types of codes that uses sparse matrices LDPC codes Low-Density Parity-Check codes [Gallager 1968] LT codes The first rateless erasure codes [Luby 2002] Online codes Almost the first rateless erasure code [Maymounkov 2002] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 48 / 68

Solution 3 Coding with random sparse matrices With random sparse matrices is possible to find efficient algorithms to code and decode. This algorithms make use of the sparsity and avoid the slower L1 optimisation We will introduce two different types of codes that uses sparse matrices LDPC codes Low-Density Parity-Check codes [Gallager 1968] LT codes The first rateless erasure codes [Luby 2002] Online codes Almost the first rateless erasure code [Maymounkov 2002] José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 48 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes The parity check matrix is highly sparse: the number of nonzero elements grows linearly with N Due to sparsity low complexity algorithms exists The parity check matrix can be generated randomly but must obey certain rules Usually N is very large (1000 to 10000 or more) Usually the coding matrix is not sparse, which implies a coding complexity quadratic with N As N becomes large the LDPC codes approach the Shannon limit [MacKay1999] An optimal LDPC code can get within 0.005 db of channel capacity José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 49 / 68

Solution 3 LDPC codes example The LDPC parity check matrix can be represented by a Tanner graph H T 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 s = H T e e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 s 1 s 2 s 3 s 4 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 50 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 51 / 68

Fountain Codes What is a Digital Fountain? Is a new paradigm for data transmission that changes the standard approach where a user must receive an ordered stream of data symbols to one where the user must receive enough symbols to reconstruct the original information. With a Digital Fountain is possible to generate an infinite data stream from a K symbol file. Once the receiver gets any K symbols from the stream it can reconstruct the original message. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 52 / 68

Fountain Codes Digital Fountain? The name Digital Fountain comes from the analogy with a water fountain filling a glass of water. The glass must be filled up, not with some specific drops of water. José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 53 / 68

Fountain Codes Concept One linear combination [ ] c1 = [ g 1 ] m 1 1 1 K K 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 54 / 68

Fountain Codes Concept Two linear combinations [ ] [ ] c1 g1 = m c 2 g 2 2 1 2 K K 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 55 / 68

Fountain Codes Concept Infinite number of linear combinations c 1 g 1 c 2 = g 2 m.. N 1 N K K 1 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 56 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Fountain Codes Concept On Fountain Codes, each line g i of G is generated online Each g i has only a finite number of 1 s (degree) The number of 1 s is a random variable with distribution ρ The symbols to combine (XOR) are chosen randomly We can generate linear combinations as needed The receiver can be filled with codewords until it is sufficient to decode the original message The K original symbols can be recovered from K(1 + ɛ) coded symbols with probability 1 δ José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 57 / 68

Online Code Decoding 1 Find a codeword c with all message symbols decoded except one 2 Recover that message symbol m x = c m 1 m 2 m i 1 where m 1, m 2,..., m i 1 are the recovered symbols associated with c 3 Apply the previous steps until no more message symbols left José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 58 / 68

Online Code Decoding Example 1 1 0 1 1 c 0 c 1 c 2 c 3 Received codewords s 0 s 1 s 2 1 s 0 = c 0 Symbols to decode José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 59 / 68

Online Code Decoding Example 2 1 0 1 1 c 0 c 1 c 2 c 3 s 0 s 1 s 2 1 1 s 1 = c 1 s 0 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 60 / 68

Online Code Decoding Example 3 1 0 1 1 c 0 c 1 c 2 c 3 s 0 s 1 s 2 1 1 0 s 2 = c 2 s 0 José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 61 / 68

Online Code Decoding Example 4 1 0 1 1 c 0 c 1 c 2 c 3 s 0 s 1 s 2 1 1 0 Done José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 62 / 68

Online Code Distribution Example 0.35 Distribution ρ with δ = 0.05 ε = 0.5 0.3 0.25 0.2 0.15 0.1 0.05 0 0 10 20 30 40 50 60 70 80 90 degree José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 63 / 68

Online Code Decoding simulation 1 δ = 0.05 ε = 0.5 0.99 Percent of decoded x 0.98 0.97 0.96 Experimental (1 δ) 0.95 0.94 0 10 20 30 40 50 60 70 80 90 100 Test number José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 64 / 68

Outline 1 Linear Codes in any Field Correcting Erasures Correcting Errors 2 Coding Matrices Structured Matrices Random Matrices Sparse Random Matrices 3 Coding with Sparse Random Matrices Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 65 / 68

Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 66 / 68

Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 67 / 68

Fountain Codes Applications José Vieira (IEETA, Univ. Aveiro) MAPtele 2010 68 / 68