Line coding is a technique typically employed in baseband communication systems for purposes of clock recovery and/or spectral shaping. Specifically, line coding maps a bit stream to a symbol stream suitable for transmission over a given communications channel. For example, in conventional Ethernet systems, data is communicated between a transmitting device and a receiving device in an asynchronous manner. The receiving device therefore recovers a clock signal (to be used for sampling a received data signal) from the received data signal itself. In order to enable clock recovery, the received data signal should have edges (e.g., signal transitions) to which the receiving device can synchronize its local clock. Conventional line coding schemes are designed to provide frequent signal transitions, and thus shorter “runs” of the same consecutive symbol, for purposes of optimizing clock recovery.
A receiving device may also include a decision feedback equalizer (DFE) to help reduce and/or eliminate inter-symbol interference (ISI) in the received data signal. Through feedback, the DFE uses the determination (e.g., hard decision) of one or more last-sampled symbols to make a decision for the next symbol in the sequence. For example, the DFE may compare the waveform (e.g., shape and/or amplitude of the signal) for the received symbol with the ideal waveform for a symbol of the determined value to determine the effects of ISI in the communications channel. The DFE may then filter (e.g., subtract) the determined ISI characteristics from the next symbol in the sequence. However, because the DFE applies this filter through recursive feedback, any errors in the calculated ISI for a particular symbol may be propagated to (and possibly compounded by) the decisions for each of the remaining symbols in the sequence.
The “error propagation” issue, described above, may severely degrade the coding gain of a forward error correction (FEC) code that is typically implemented in modern communications systems. Various schemes have been developed to alleviate error propagation at the cost of increased complexity and/or increased transmit signal power.