1. A method for demodulating data from a channel, comprising: receiving a priori probability values for symbols transmitted across the channel; in accordance with the a priori probability values, determining a set of Monte Carlo samples of the symbols weighted with respect to a probability distribution of the symbols; and estimating a posteriori probability values for the symbols based on the set of Monte Carlo samples.