guess all the error-positions. The simplest form is due to Prange: Let be the generator matrix of used for encoding. Select columns of at random, and denote by the corresponding submatrix of . With reasonable probability will have full rank, which means that if we let be the sub-vector for the corresponding positions of any codeword of for a message , we can recover as . Hence, if we were lucky that these positions of the received word contained no errors, and hence equalled the positions of the sent codeword, then we may decode. If errors occurred, the probability of such a fortunate selection of columns is given by . This method has been improved in various ways, e.g. by Stern and Canteaut and Sendrier. Partial response maximum likelihood Partial response maximum likelihood (PRML) is a method for converting the weak analog signal from the head of a magnetic disk or tape drive into a digital signal. Viterbi decoder A Viterbi decoder uses the Viterbi algorithm for decoding a bitstream that has been encoded using forward error correction based on a convolutional code. The Hamming distance is used as a metric for hard decision Viterbi decoders. The squared Euclidean distance is used as a metric for soft decision decoders. Optimal decision decoding algorithm (ODDA) Optimal decision decoding algorithm (ODDA) for an asymmetric TWRC system. See also Don't care alarm Error detection and correction Forbidden input References Further reading Coding theory