Noise-Predictive Maximum-Likelihood (NPML) Detection