1. A method for demodulating data from a channel, comprising: receiving a priori probability values for symbols transmitted across the channel, each symbol decomposable into a first symbol component and a second symbol component; in accordance with the a priori probability values, determining a first set of Monte Carlo samples of the first symbol components weighted with respect to a probability distribution of the first symbol components and determining a second set of Monte Carlo samples of the second symbol components weighted with respect to a probability distribution of the second symbol components, where the first symbol components and the second symbol components are sampled independently; and estimating a posteriori probability values for the symbols based on the first and second sets of Monte Carlo samples.