  This dissertation focuses on fountain codes under maximum likelihood (ML)
decoding. First LT codes are considered under a practical and widely used ML
decoding algorithm known as inactivation decoding. Different analysis
techniques are presented to characterize the decoding complexity. Next an upper
bound to the probability of decoding failure of Raptor codes under ML decoding
is provided. Then, the distance properties of an ensemble of fixed-rate Raptor
codes with linear random outer codes are analyzed. Finally, a novel class of
fountain codes is presented, which consists of a parallel concatenation of a
block code with a linear random fountain code.
