1. A data storage system, comprising: a head configured to produce a signal representing data stored on a storage medium; a bank of noise whitening filters configured to apply one or more noise whitening filters to the signal to produce a filtered signal; a data-dependent noise mean calculator configured to estimate a data-dependent noise mean from the filtered signal; a branch metric calculator configured to perform one or more branch metric calculations on the filtered signal to produce one or more branch metrics, the one or more branch metric calculations accounting for the data-dependent noise mean; and an adaptive data-dependent noise-predictive maximum likelihood (D3-NPML) detector configured to generate an output stream from the one or more branch metric calculations.