What are Impulse Response Functions?

Zachariah Peterson
|  已创建:October 21, 2020  |  已更新:October 26, 2022
What is impulse response function Fourier transform

The first time I read about impulse response functions, it was in the context of stochastic calculus while working on a portfolio management paper. This was before I started working in the electronics industry. I didn’t go so deep as to extract impulse response functions to examine how sudden changes in asset prices are interrelated, but the underlying concept is extremely valuable for understanding physical systems. Once I started working on causal channel modeling and design techniques, I started to realize the power of understanding impulse response functions for different channel parameters.

So what is an impulse response function? As its name suggests, this function defines how something responds to some input signal, which we call an “impulse.” While it might sound arbitrary, the term “impulse” has a very precise mathematical definition that we use to characterize a channel in a high speed PCB. Example application areas include anything with Ethernet, SerDes channels, fiber channels, coax cables, and much more. Here’s how to get an impulse response function for a high speed PCB channel and how you can use it to better understand your board.

What are Impulse Response Functions?

A linear time-invariant system (which PCBs certainly are until we start using magnetic substrates) will exhibit some defined response when it receives some input signal (be it defined as a specific voltage/current/power). With currently available PCB materials, all high speed channels on a PCB substrate are linear systems, and they are certainly time-invariant (the material parameters do not change in time). Think of an underdamped RLC circuit; the response is an underdamped oscillation that decays to the final voltage. The actual time-domain waveform can be calculated directly if you know the circuit’s impulse response function.

This doesn’t just apply to RLC networks; you can easily model the response for a channel or circuit to any input signal using the channel’s impulse response function. The channel’s response R(t) to a given input signal S(t) is defined using a convolution operation with the channel’s impulse response function h(t):

What is impulse response function
A channel’s response R(t) and the input signal S(t) are related by the impulse response function.

Note that any program with basic signal processing capabilities (Mathematica or MATLAB) gives you a convolution function and will calculate the above integral for you. This integral tells me literally everything I need to know about the channel: no matter what signal I want to inject into the channel, I know what the signal will look like at the other end of the channel as long as I know h(t). This is critical for evaluating the following effects in high-speed PCBs:

If you graph an impulse response function, it looks like a pulse that enters a channel and quickly decays to zero. Note that this is just a mathematical tool that tells you how the channel responds to a delta function at t = 0. This is not the actual time-domain waveform for R(t). Getting impulse response functions for your system takes a bit of math and requires a precise interpretation.

Getting Impulse Response Functions from Measurements

Although impulse response functions are time-domain functions, they are not something you can get accurately by measuring directly. In fact, with a time-domain measurement of an impulse response, what you measure will always be bandlimited because any injected pulse on a high speed channel will never have a rise/fall time that reaches zero. You would still have to calculate some sort of transfer function, and then you’d still have to convert back to the time-domain, and each conversion produces non-causal errors (more on causality below).

For this reason, we prefer to take measurements in the frequency domain, and then convert the results back to the time domain to get the channel’s impulse response function. If you have the channel’s network parameters (S, Y, Z, T, ABCD, or H parameters), you can calculate impulse response functions from those parameters using an inverse Fourier transform:

  1. Measure the relevant network parameters for your channel (S, Y, Z, T, ABCD, or H parameters)
  2. Calculate your transfer function from these parameters (note: an S-parameter is in effect a transfer function)
  3. Take the inverse Fourier transform of the transfer function (I’ve written this as a matrix for a MIMO system):
What is impulse response function and transfer function
General form of an impulse response matrix h in terms of a parameter matrix P.

Congratulations! You have taken your network parameter measurements and calculated the impulse response function that relates to your particular parameter matrix. Interpreting an impulse response function is another matter as not all impulse response functions are created equal.

Interpreting Impulse Response Functions

This is perhaps where most ambiguities around impulse response functions arise. If you simply calculate a transfer function from your parameters, then it doesn’t matter what parameters you use. However, the various parameters you might measure (most commonly S-parameters) are themselves transfer functions. For example, S-parameters measure how the power carried by an electromagnetic wave gets transferred through a channel or circuit network. 

An impulse response function calculated from, for example, a Z-parameter does not have the same physical meaning as the impulse response calculated from, for example, the channel’s S-parameters. In fact, they don’t even have the same units! For example, the impulse response function calculated from a Z-parameter has units of Ohms/s. Perhaps the most important point a newer SI engineer may not understand is: the impulse response function does not tell you how that the impedance or any other system parameter varies in time (we’re dealing with an LTI system, so of course the impedance is not time-dependent by definition). Any impulse response function has a precise mathematical meaning that should not be taken literally as a physical interpretation.

What is more important is the actual impulse response, which is R(t) calculated with the convolution operation given above.

Cascaded Networks

What about cascaded networks? If you’re familiar with electrical network theory, then you know that a parameter matrix for a cascaded network can be found by multiplying together the matrices for individual networks. However, for S-parameters, we need to convert to either T-parameters of ABCD parameters, and multiply the matrices for these new network parameters, and convert back to the S-parameters for the cascaded network. Just as an example, consider the ABCD-parameters for two networks (A connected to B). The equivalent matrix for a signal passing from input → A → B → output is just the product of the respective ABCD-parameter matrices, as shown below.

What is impulse response function cascaded network
The impulse response function for a cascaded network (C) would just use the inverse Fourier transform of the S-parameters in the C-matrix.

You can derive a similar relation using T-parameters. In fact, MATLAB's cascaded S-parameter calculation uses the ABCD parameters to determine S-parameters for cascaded networks. To convert to ABCD parameters or T-parameters for an S-parameter network, read this reference from Caspers (Appendix 1) to find some simple formulas you can use. You can also see some examples of cascaded S-parameters in this IEEE article.

What About Causality?

The above discussion has momentarily ignored a crucial point of signal integrity simulations and modeling channel responses. This point is around causality. Basically, causality states that a channel can only respond to a signal after the signal has entered the channel.

If you want to verify causality of your channel model in terms of its relevant parameters (be they S, Y, Z, T, or H parameters), you need to look at the calculated impulse response given your channel model. If the impulse response is non-zero at any time before t = 0, then your channel model and its impulse response are non-causal. In other words, the impulse response function tells you that the channel responds to a signal before a signal is launched on the channel, which is obviously incorrect.

An example is showing impulse response causality is given below. This example shows a comparison of impulse responses in a differential channel (the odd-mode impulse response) given an input pulse (marked Input waveform in blue). The graph compares impulse responses determined with three models:

  1. The classic dispersionless transmission line model from basic transmission line theory
  2. The model in #1 with causality correction applied to the calculated S-parameters (see more on these corrections here)
  3. A model with causality correction applied to the channel propagation constant, dielectric constant, and transfer function

As we look at the rising edges of these impulse responses, we can evaluate how close to perfectly causal each of these models becomes. Because every practical model is bandlimited, you can never have perfect causality, but you can get quite close with corrections appropriately applied to channel models.

Causal impulse response
Impulse response comparison without causality correction, with basic causality correction, and with alternative causality correction applied to channel parameters. [Source]

It's quite clear that the causality correction needs to be applied to a model extracted from S-parameter measurements, or constructed from geometry/dielectric parameters on the PCB. The conclusion one draws from the above study is that causality needs to be enforced in the dielectric constant through the Kramers-Kronig relation when calculating channel behavior analytically (using the RLCG model).

In general, impulse response functions determined from measurements will not appear causal because all measurements are bandlimited. Jason Ellison discusses this all very well in a recent blog post, so I won’t repeat his comments here. Take a look at his blog to learn more about causality corrections.

Signal processing can be difficult, but once you understand what is an impulse response function and what it means for your PCB, you can implement the design you need in Altium Designer®. When you’ve finished your design, and you want to release files to your manufacturer, the Altium 365™ platform makes it easy to collaborate and share your projects.

We have only scratched the surface of what’s possible with Altium Designer on Altium 365. Start your free trial of Altium Designer + Altium 365 today.

关于作者

关于作者

Zachariah Peterson拥有学术界和工业界广泛的技术背景。在从事PCB行业之前,他曾在波特兰州立大学任教。他的物理学硕士研究课题是化学吸附气体传感器,而应用物理学博士研究课题是随机激光理论和稳定性。他的科研背景涵盖纳米粒子激光器、电子和光电半导体器件、环境系统以及财务分析等领域。他的研究成果已发表在若干经同行评审的期刊和会议论文集上,他还为多家公司撰写过数百篇有关PCB设计的技术博客。Zachariah与PCB行业的其他公司合作提供设计和研究服务。他是IEEE光子学会和美国物理学会的成员。

相关资源

相关的技术文档

返回主页
Thank you, you are now subscribed to updates.