I am trying to understand Differential Manchester Encoding. The way I understand it is that the representation depends on the previous bit. If the previous bit was 0 there is a transition, but if it was one there is no transition.

Given that, would the following be correct? enter image description here

Your representation is correct. Differential Manchester encodes each data bit as follow:

  • If it has the same value as the data bit before --> High to Low transition (that would be a '0' in non-differential Manchester)
  • If it has a different value than the data bit before --> Low to High Transition (that would be a '1' in non-differential Manchester).

The very first bit of the transmission would not be specified, you may choose to encode it as normal Manchester.

You may also first calculate the "differential data stream" and then perform a normal Manchester encoding of this differential data stream. The differential data stream would be defined as: \${\text{diff}}_i={\text{data}}_i \oplus {\text{data}}_{i-1}\$.

For example if your data is 00110110 you would get X0101101 and then encode it as normal Manchester.

The decoding of the data stream is just the same. You may decode it first as normal Manchester and then apply \${\text{data}}_i={\text{decoded}}_i \oplus {\text{decoded}}_{i-1}\$

You can think of each bit as being represented as 2 bits. So for a given bit length L, your Manchester encoded signal will be 2L.

I believe there are variants of this, but basically in your example, a logic low, is represented as a \$10_2\$, and a logic high is represented as a \$01_2\$.

So for a signal that is 01101 (bit length 5) the Manchester encoded signal will be 10 01 01 10 01 or 1001011001 (bit length 10)

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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