Lets call Symbols(s) the signal that we want. It has the wide open eye that we’d like the receiver to see after the transmitted signal Tx(s) has been through the channel. Then the pre-distorted signal should be as close to G-1(s)Symbols(s) as we can get. Now go back to the simple relationship between the transmitted signal, channel response, and received signal:
G(s)Tx(s) + Noise(s) = Rx(s),
plug in the pre-distorted wave, Tx(s) = G-1(s)Symbols(s), and get
G(s)G-1(s)Symbols(s) + Noise(s) = Symbols(s) + Noise(s) = Rx(s),
and, voila, except for the inevitable noise, the receiver sees a perfect waveform!
We call the predistorted transmitted signal transmitter FFE (feed forward equalization):
TxFFE(s) = G-1(s)Symbols(s).
Well, not so fast. Because the transmitter, in most cases (every case I've ever seen), can only modify a pulse once per bit period, we have to use a discrete form of transmitter FFE rather than the continuous ideal:
where the k i are called taps and the symbol voltage levels, VTx Symbol, are called cursors. The expression amounts to distorting the voltages of the symbol we're receiving and those surrounding it so that the channel compensates for the distortion.
A great way to get immediate gratification from your equalization genius is to see how your equalization scheme affects a single bit. Enter the pulse or single-bit response. Figure 2 shows the pulse shapes with no equalization, DFE (decision-feedback equalization), and TxFFE+DFE.
You can even see how the TxFFE and receiver DFE (decision feedback equalizer) work together; even the nonlinear nature of the DFE jumps out.
So, nothing really new here, but a pretty cool way to think of Tx FFE.