# Fountain codes and LDPC codes

I am having a small clarification with the difference between LDPC and fountain codes.

• In LDPC codes, each parity bit is depenedent on numerous data bits. Isn't that similar to fountain codes as the encoded blocks are dependent on each other(I'm thinking of luby transform codes)?

Also, my professor was explaining that it doesn't matter if some blocks are missed, as long as it receives a subset of the encoded blocks. Fountain codes can decode the message because it just keeps listening to receive more information as there is enough redundancy built in.

• My doubt is that, if it just keeps listening, when does the transmitter transmit the next set of messages if it's always sending redundancy to make up for what could be possibly deleted? Especially since there is no feedback.

• Or is it that the message sizes are so large and that the encoding is done so that the redundancy is built throughout the message so that even if certain blocks are lost, we can still decode the information?

• Lastly, fountain code applications are lossy connection, etc. In which case, why is this only applied to erasure channels?

• Because if it is good at combating lossy connection, then it should also be able to effectively combat deletion codes right?

• Assuming $K$ vectors of size $l$ as the source (generation block), we generate encoded vectors of the same length ($l$). We need $K$ valid encoded vectors at the receiver (some of them are not received due to erasure). The original packets are recovered by solving a system of $K$ linear equations with $K$ unknown vectors. Regarding Ack, yes it resembles a form of feedback. But we have very different types of such mechanism which can be categorized into positive/negative or group/single Ack. – msm Sep 3 '16 at 22:50