Signal Integrity

Power-aware Signal Integrity and EMI/EMC On High-speed Digital Chip-to-Chip Links

Signal Integrity header image 2

Tutorial: Mitigate Inter-Symbol Interference by using an Equalization Filter

Posted October 8th, 2012 · 5 Comments · Calculator


By Colin Warwick

This tutorial came about as a result of a question I received about how to set the equalizer taps on an IBIS AMI model. I wanted some graphic way of illustrating how equalizers mitigate channel impairments (like the non-ideal impulse responses that causes inter-symbol interference (ISI)) and also what the limitations of such techniques are. I came up with a tutorial spreadsheet illustration that you can play with. You can see the spreadsheet in action in this video. Either a) Click bottom left to see it in HD on YouTube.

…or b) click here to download the MP4.

The situation behind the question was this: If you’ve ever used the ADS Channel Simulator you’ll know it supports not only IC vendor-specific models (in the IBIS AMI format) but also built-in generic IC models. The built-in generic models don’t represent a specific IC, they model industry best practices for signal processing in SERDES devices. And they include a very handy optimizer that looks at the channel impulse response and comes up a set of taps that best mitigate the ISI impairment of the particular channel.

So the first question was how much ISI can you correct with a given number of taps? The second question was what about IC vendor-specific models in IBIS AMI format? What if the vendors model doesn’t contain an optimizer? Can I relate the taps saves using the generic model to set up the AMI model?

Tags: ··

5 Comments so far ↓

  • Istvan Novak

    Congratulations Colin! Excellent tutorial. As always, it is very entertaining, sharp and well to the point.

    Thanks for sharing it,

  • Equalizer Design

    […] For an explanation of how this works with a given channel response see “Part 2″ Tutorial: Mitigate Inter-Symbol Interference by using an Equalization Filter […]

  • jad


    if I have a 1000 sample impulse response how can I get the x matrix, does it have a specific name?, i want to calculate it in matlab, thanks.


    • Colin Warwick

      Thanks for your question, Jad. I don’t know if the matrix I called ‘x’ has specific name or not. It’s just a slice of impulse response shifted in time across the “window” of the EQ filter taps. In my example the impulse is five samples and the EQ window is 3 taps, so the x matrix is five by three. You can do the same shifting with MATLAB index numbers, I believe. hth.

Leave a Comment