A non-return-to-zero (NRZ) line code is a binary code in which ones are by usually represented a positive voltage, while zeros are represented by some other significant condition, usually a negative voltage. There are just two levels and no pauses between bauds.
A problem arises when using NRZ to encode data for a synchronous link that may have long runs of consecutive bits with the same value. The figure below illustrates the problem that would arise if NRZ encoding were used with a DPLL recovered clock signal.
A long run of bits with the same value results in no transitions on the cable when NRZ encoding is used.
In Ethernet for example, there is no control over the number of 1's or 0's which may sent consecutively. There could potentially be thousands of 1's or 0's in sequence. If the encoded data contains long 'runs' of logic 1's or 0's, this does not result in any bit transitions. The lack of transitions prevents the receiver DPLL from reliably regenerating the clock making it impossible to detect the boundaries of the received bits at the receiver. This is the reason why Manchester encoding and other methods is used in Ethernet LANs.
In NRZ transmission, each data bit is represented by a level. A high level may represent a logic 1, where as a low level may represent a logic 0. The term is derived from the earlier transmision technique of sending pulses to represent bits (called Return to Zero, RZ) in which a logic 1 is represented by a pulse and a logic 0 by the absence of a pulse. (AMI and HDB3 are technqiues derived from RZ).
Gorry Fairhurst - Date: 01/02/2006