# Differential Manchester Encoding

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?

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}$

• I think encoding X0101101 using normal Manchester leads to YY10011001011001 which doesn't correspond to the OP's figure – helperFunction Feb 11 at 11:05

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)

• The question asks for Differential Manchester Encoding, and not Manchester Encoding – helperFunction Feb 11 at 10:57