1. A method for receiving a mud pulse telemetry signal at a surface location, an encoded integer, the method comprising: (a) receiving an analog pressure waveform at the surface location; (b) digitizing the analog pressure waveform to obtain acquiring a digitized waveform including a first plurality of pulses distributed among a second plurality of time slots; (c) locating each of the pulses of the first plurality of pulses in the digitized waveform; (d) computing a confidence value for said each of the pulses of the first plurality of pulses; (e) selecting a subset of the first plurality of pulses, the subset including pulses having low confidence values computed in (d); (f) generating a set of unique waveforms from the digitized waveform, the set of unique waveforms corresponding to various combinations of the subset of the first plurality pulses selected in (e); (g) computing corresponding cross-correlations between each of the unique waveforms generated in (f) and the digitized waveform acquired in (b); and (h) selecting a second waveform of the unique waveforms generated in (f) having the highest cross-correlation computed in (g).