mud pulse telemetry m˜ary encoding and decoding
TRANSCRIPT
Copyright © 2017 Erdos Miller 2
Introduction Mud Pulse Telemetry is encoded data which is
transmitted using pressure wave from a downhole
tool to an uphole receiver. Mud pulse telemetry is
commonly encoded using a technique referred to as
M-ary encoding. This paper will describe the encoding
and decoding of M-ary data from a physical medium.
M-ary is a data transmission format that take in a fi xed
size data packet and encodes it for transmission over
various physical media. It also handles the conversion
from the physical media back into the same fi xed size
data packet. M-ary does not handle guarantee of data
reception, nor does it provide any promises on the
accuracy of the received data.
M-Ary Data Streams
M-ary operates on units referred to as a data stream.
A M-ary data stream is comprised of two major
components. A Synch signal indicates the start of a
M-ary data stream. It is followed by data packets until
the entire data stream is transmitted; the M-ary packet
structure and order is shown below
Encoding & Decoding Process
An overview of the encoding and decoding process
which translates fi xed size data packets into
pulse trains and back again. The process of data
packetization, encoding/decoding, and transmission is
shown in the following diagram.
M-Ary EncodingThe M-ary encoding process consists of data packetization, pulse encoding, and pulse transmission.
Packetization
Prior to encoding the data into pulses, a fi xed size data
packet must be broken into two or three bit packets.
To determine this, given an n-bit size value of the fi xed
sized packet, the following rules should be applied in
order:
1. If n is divisible by 3, it should be broken up into n/3
packets of three-bit packets.
2. If n is not divisible by 3 and the remainder is 2,
it should be broken up into (n/3 + 1) packets. The
fi rst packet should be a two-bit packet. All the
remaining packets should be three-bit packets.
3. If n is not divisible by 3 and the remainder is 1, it
should be broken up into (n/3 + 1) packets. The fi rst
two packets should be two two-bit packets. All the
remaining packets should be three-bit packets.
M-ary cannot support 1-bit packets. For 1-bit data, such
as logical values, the encoding will automatically
be expanded from a 1-bit to a 2-bit packet. Table 1
demonstrates for n bits in the range 2 to 21 how the
data will be broken up into packets.
Synch Data Packet #1 Data Packet #N...
Physical Media
M-ary Decoding
Pulse Reception
Pulse Decoding
Data De-Packetization
M-ary Decoding
Pulse Reception
Pulse Decoding
Data De-Packetization
M-ary Encoding
Data Packetization
Pulse Encoding
Pulse Transmission
M-ary Encoding
Data Packetization
Pulse Encoding
Pulse Transmission
Copyright © 2017 Erdos Miller 3
The table below shows how data ranging from 2 to 21-
bits can be broken up into 2 and 3-bit packets.
Number of Bits in
Fixed Data Packet
Packet Stream (Value
Indicates Packet Size in Bits)
2 2
3 3
4 2+2
5 2+3
6 3+3
. . . . . .
20 2+3+3+3+3+3+3
21 3+3+3+3+3+3+3
As an example, assuming a starting binary value of the
following: 0110 0011 1001, the output after packetization
would be 011 000 111 001.
An outline of the binary encoding for a 2-bit packet
waveform is shown in the table below, each line
segment in the pulse waveform column represents
half of the pulse width. A 3-bit packet follows the same
pattern, but with a longer duration.
Binary Value Pulse Waveform
00 0
01 1
10 2
11 3
Pulse Encoding
M-ary pulse encoding is a form of phase shift keying.
Data is packetized and transmitted using a basic shift
technique. During the previous stage, data was broken
into two and three bit packets.
The data within each packet is interpreted as a
numerical unsigned data value. For example, a two-bit
packet of 01 is interpreted at a “1” data value. Another
example: A three-bit packet of 101 is interpreted as a
“5” data value.
Packets have a fixed time slice in which to indicate data
values. Two bit packets have a two pulse width wide
time slice and three bit packets have a four pulse width
wide time slice Pulses are always a single pulse width
wide. To indicate the value of the data, the pulse must
start at a specific time within that time slice relative to
the beginning time. All packets are followed by a low
period equal to their time slice.
To determine when to transmit the pulse within the time
slice of a packet with respect to the pulse width, the
following formula can be followed:
where tre
is the time of the rising edge, N is the number
of bits, V is the data value, tPW
is the pulse width, and tps
is the time of the packet start.
Assuming the following packet of 011 and a pulse width
of 1 second and the packet start time of 0 seconds, the
pulse would be transmitted at
Pulse Transmission
All data in the data stream is encoded into pulses. A
pulse is a pressure wave generated by a mud pulser.
How the mud pulser creates these pulses is outside the
scope of this document. To create the pulse, the pulser
22
22
22
2
accepts a single input line that controls the pulsing. To
determine a pulse, this line must be held high or low
for a specific time. This time is referred to as the pulse
width. Most mud pulsers have this value in seconds as
a configurable parameter. A demonstration of a single
pulse output on a pulse line us shown below.
Most current mud pulse telemetry systems define the
minimum pulse width value to be 250 milliseconds
and the maximum value to be 3 seconds. Common
acceptable pulse widths (units of seconds) are: 0.250,
0.375, 0.500, 0.600, 0.800, 1.0, 1.2, 1.5, 2.0, 3.0.
An example of a single pulse width
Synch Signal
Prior to any data pulses being sent, a Synch signal is
transmitted on the pulse line. The synch signal typically
consists of 4 pulses (each a single pulse width wide)
that are 2 pulse widths apart. This type of synch is
known as ‘1111’, and is the most commonly used synch
signal (there are alternate synch signals, but those are
beyond the scope of this document). The pulse line
must be off for a minimum of 2 pulse widths before the
first pulse is sent; the final off time is 5.5 pulse widths.
An example of the standard 1111 synch signal is shown
below. Assuming the following data stream values 3, 0,
7 ,1 encoded using three-bit packets and a pulse width
of 1 second and the synch signal already have been
sent, the pulse train for that transmission is also shown
below.Pulse Width
Pulse Width
VHigh
VLow
Time (seconds)
Time (seconds)
Pulse WidthPulse WidthPulse WidthPulse Width Pulse WidthPulse Width Pulse WidthPulse Width
2 x Pulse Width2 x Pulse Width 2 x Pulse Width2 x Pulse Width 2 x Pulse Width2 x Pulse Width 5.5 x Pulse Width2 x Pulse Width2 x Pulse Width
VHigh
VLow
Time (seconds)
1 second1 second1 second1 second 1 second1 second 1 second1 second
6.5 Seconds 1.5 seconds1.5 seconds 8 seconds 1.5 seconds2.5 seconds
VHigh
VLow
An example of a complete 1111 synch signal
Pulse waveform for transmission of 3, 0, 7, 1 using three-bit packets and a 1 second pulse width
Copyright © 2017 Erdos Miller 4
Copyright © 2017 Erdos Miller 5
M-ary DecodingDecoding an M-ary signal consists of receiving the pulse, decoding the pulses, and de-packetizing the data.
Receiving Pulses
The purpose of the synch signal is to provide with a
way for the decoding system to identify signal from the
input. There are a variety of ways to detect signals in
communications mediums. That is out of scope of this
document.
Once the detection of the synch has occurred, then the
receiving system will convert the analog input into a
two-level voltage signal to indicate if a pulse is present
or not.
Pulse Decoding
M-ary requires sharing of the expected data packet
size between the transmitter and receiver. Using that
information in the same manner as the packetization
step, the decoder determines how many packets and
their bit size.
The receiver will use the synch signal’s end to indicate
the start time of the time slices it is expecting for
initial data packet. All other data packet’s time slices
beginning will be based of the previous time slice’s
end.
To determine the value being sent, the start time of
the packet time slice is subtracted from the timing of
the rising edge of the pulse and modulus divided by
the pulse width. This value is then subtracted from
the maximum number of values possible minus 1. The
formula is below
where V is the data value, N is the number of bits, tre
is
the time of the rising edge, tps
is the time of the packet
start, and tPW
is the pulse width. After decoding, the
data value is then converted into binary.
Assuming the pulse width as 1 second and two-bit
encoding, a pulse is received at 3 seconds and the
packet started at 1 second. Then the data value
transmitted is
Assuming the pulse width as 1 second and three-
bit encoding, a pulse is received at 3 seconds and
the packet started at 1 second. Then the data value
transmitted is
Once the two-bit and three-bit packets are decoded,
the receiver will buffer those binary values into the
final data packet size and pass them to the intended
recipient.
ConclusionThis document presents the basics of M-ary encoding
and decoding for mud pulse telemetry systems.
The M-ary telemetry protocol is a very power
efficient encoding scheme that is commonly used
in measurement while drilling systems. Erdos Miller
has extensive experience developing and optimizing
measurement while drilling electronics and firmware,
including a thorough understanding of M-ary telemetry
protocol. For more information, please contact Erdos
Miller to speak with our engineering team.
Copyright © 2017 Erdos Miller 6
About Erdos MillerTurnkey solutions made to last in the harshest environments
With our extensive experience in designing rugged and reliable downhole electronics, software, and surface
equipment, Erdos Miller can solve your oilfield engineering challenges. We have experience designing custom
MWD electronics, firmware, and software for our customer’s downhole needs.
Let us know how we can partner on your next project.
Address
15120 Northwest Fwy.
Ste. 100
Houston, TX 77040
Contact
1-888-337-0869
erdosmiller.com
References
Monroe, S. P. “Applying digital data-encoding techniques to mud pulse telemetry.” Petroleum Computer
Conference. Society of Petroleum Engineers, 1990.
Zhao, Qingjie, Baojun Zhang, and Wei Wang. “Data processing techniques for a wireless data transmission
application via mud.” EURASIP Journal on Advances in Signal Processing 2011.1 (2011): 45.
Lin, D.; Cheng, C. “A New Pulse Interval and Width Modulation (PIWM) Technique for Underground Drilling Fluid
Measurement Systems.” International Journal of Simulation Systems, Science & Technology,
Hutin, R., R. W. Tennent, and S. V. Kashikar. “New mud pulse telemetry techniques for deepwater applications and
improved real-time data capabilities.” SPE/IADC drilling conference. Society of Petroleum Engineers, 2001.
Whitacre, Timothy P. “A Neural Network Receiver for EM-MWD Communication.” (2011).
Tubel, P., Clark Bergeron, and S. Bell. “Mud pulser telemetry system for down hole measurement-while-drilling.”
Instrumentation and Measurement Technology Conference, 1992. IMTC’92., 9th IEEE. IEEE, 1992.