Free Trials

Download a free trial to find out which Altium software best suits your needs

Altium Online Store

Buy any Altium Products with few clicks or send us your quote to contact our sales

Downloads

Download the latest in PCB design and EDA software

  • PCB DESIGN SOFTWARE
  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool

  • NEXUS

    Agile PCB Design For Teams

  • CLOUD PLATFORM
  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • COMPONENT MANAGEMENT
  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PRODUCT EXTENSIONS
  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • EMBEDDED
  • TASKING

    World-Renowned Technology for Embedded Systems Development

  • TRAININGS
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • ONLINE VIEWER
  • Altium 365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use

    ALTIUMLIVE

    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Altium Online Store

    Buy any Altium Products with few clicks or send us your quote to contact our sales

    Downloads

    Take a look at what download options are available to best suit your needs

    • Documentation

      The documentation area is where you can find extensive, versioned information about our software online, for free.

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    • Video Library

      Quick and to-the-point video tutorials to get you started with Altium Designer

    What is an Impulse Response Function?

    Zachariah Peterson
    |  October 21, 2020
    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 is an Impulse Response Function?

    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 an impulse response function for your system takes a bit of math and requires a precise interpretation.

    Getting an Impulse Response Function from Measurements

    Although an impulse response function is a time-domain function, it is 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 the impulse response function 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 an Impulse Response Function.

    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.

    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. Just as an example, consider the S-parameters for two networks (A connected B). The equivalent matrix for a signal passing from input → A → B → output is just the product of the respective S-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.

    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 parameters (be they S, Y, Z, T, or H parameters), you simply need to look at the impulse response function. If the impulse response function is non-zero at any time before t = 0, then the impulse response function is 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.

    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®. Altium Designer on Altium 365® delivers an unprecedented amount of integration to the electronics industry until now relegated to the world of software development, allowing designers to work from home and reach unprecedented levels of efficiency.

    We have only scratched the surface of what is possible to do with Altium Designer on Altium 365. You can check the product page for a more in-depth feature description or one of the On-Demand Webinars.

    About Author

    About Author

    Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to electronics companies. Prior to working in the PCB industry, he taught at Portland State University. He conducted his Physics M.S. research on chemisorptive gas sensors and his Applied Physics Ph.D. research on random laser theory and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensing and monitoring systems, and financial analytics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written hundreds of technical blogs on PCB design for a number of companies. Zachariah currently works with other companies in the electronics industry providing design, research, and marketing services. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, and the American Physical Society, and he currently serves on the INCITS Quantum Computing Technical Advisory Committee.

    most recent articles

    Back to Home