Patent ID: 8880349

Claim:
A non-transitory computer-readable storage medium storing a program that, when executed by a processor, causes the processor to: read values indicative of pressure within a pipe that has drilling fluid flowing therein, the drilling fluid carries pressure pulses that encode data; detect, in the values indicative of pressure, pressure transitions associated with the pressure pulses by causing the processor to: calculate a running average time series comprising a plurality of datums, each datum being an average of a subset of the values indicative of pressure; create a filtered pressure time series from the values indicative of pressure; detect negative pressure transitions in the filtered pressure time series that correspond in time to the running average time series reaching a first predetermined value and the running average time series having a first slope; and detect positive pressure transitions in the filtered pressure time series that correspond in time to the running average time series reaching a second predetermined value and the running average time series having a second slope; and determine from an amount of time between pressure transitions at least a portion of the data encoded in the pressure pulses.