1. A method for error correction, comprising: receiving a bitstream, the bitstream comprising one or more bits; determining if the bitstream has one or more corrupt bits; determining one or more hypotheses representing an error pattern; and assigning a probability to each of the hypotheses, wherein the probability is determined based on one or more reference data.