I just learned the following about the so-called 'Manchester encoding':

  • There is a transition at the middle of each bit period.
  • The midbit transition serves as a clock mechanism and also as data: low to high represents 1, high to low represents 0.

The following image is said to illustrate this:

enter image description here

We can see that, in the first 'time interval', the signal goes from high to low, signifying a 0, and during the second time interval, the signal goes from low to high, signifying a 1, as expected. During the third time interval, we see that the signal goes from high to low, signifying a 0, which corresponds to what is in the image, but then, in the middle of the time interval, at the end of the 'bit sent', we see that the signal goes from low to high, signifying a 1, but the next bit sent is still a 0. This latter part seems to contradict what we would expect, since the transition from low to high in the middle of the interval would mean that the next bit would be a 1, no?

  • Did any answer help you? if so, you should accept the answer so that the question does not keep popping up forever, looking for an answer. Alternatively, you could post and accept your own answer.
    – Ron Maupin
    Dec 23, 2021 at 17:14
  • Hi @RonMaupin. I don't remember, so I'll have to come back to this when I have time and read through it again. Dec 23, 2021 at 17:15

1 Answer 1


You need to see it like this:

  • a user bit 0 is line encoded as 10
  • a user bit 1 is line encoded as 01

If alternating bits are transmitted, there is only one level transition per bit:

  user           line
01010101 => 1001100110011001
10101010 => 0110011001100110

If same bits are transmitted, there are two level transitions per bit:

  user           line
00000000 => 1010101010101010
11111111 => 0101010101010101

Note the difficulty to detect the exact middle of the two-level symbol where the transition signals the relevant data - all the receiver sees is this: enter image description here

If the receiver erroneously misplaces the symbol borders it decodes garbage data.

That's why Manchester requires a preamble with alternating bits to synchronize the receiver to the middle transition. The other transitions (between symbols) are simply irrelevant.

  • Thanks for the answer. What do you mean by "level transition"? Mar 2, 2021 at 10:21
  • A level transition is between line 0 and line 1 (or low/high, +/-, ...) or reverse.
    – Zac67
    Mar 2, 2021 at 10:22
  • Hmm, I don't think I'm understanding this part. So a level transition is between each change in digit between 0 and 1 in the 'line'? So if the symbol | signifies a level transition, for 1001100110011001, we would have 1|0|0|1|1|0|0|1|1|0|0|1|1|0|0|1? (I'm sure this is wrong, but I'm not sure exactly what you mean.) Mar 2, 2021 at 10:33
  • Don't forget that there's no external clock: the receiver needs to reconstruct the symbol borders only from the transitions it can see.
    – Zac67
    Mar 2, 2021 at 10:34
  • 1
    This youtu.be/XKtxxZ327UM video seems to clarify things: the "low to high represents 1, high to low represents 0" pattern is being used, but the odd parts on the boundaries in between are basically to connect the 0 and 1 values. Mar 2, 2021 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.