Can anyone state the difference between frequency response and impulse response in simple English?


4 Answers 4


The impulse response and frequency response are two attributes that are useful for characterizing linear time-invariant (LTI) systems. They provide two different ways of calculating what an LTI system's output will be for a given input signal. A continuous-time LTI system is usually illustrated like this:

LTI system diagram

In general, the system $H$ maps its input signal $x(t)$ to a corresponding output signal $y(t)$. There are many types of LTI systems that can have apply very different transformations to the signals that pass through them. But, they all share two key characteristics:

  • The system is linear, so it obeys the principle of superposition. Stated simply, if you linearly combine two signals and input them to the system, the output is the same linear combination of what the outputs would have been had the signals been passed through individually. That is, if $x_1(t)$ maps to an output of $y_1(t)$ and $x_2(t)$ maps to an output of $y_2(t)$, then for all values of $a_1$ and $a_2$,

$$ H\{a_1 x_1(t) + a_2 x_2(t)\} = a_1 y_1(t) + a_2 y_2(t) $$

  • The system is time-invariant, so its characteristics do not change with time. If you add a delay to the input signal, then you simply add the same delay to the output. For an input signal $x(t)$ that maps to an output signal $y(t)$, then for all values of $\tau$,

$$ H\{x(t - \tau)\} = y(t - \tau) $$

Discrete-time LTI systems have the same properties; the notation is different because of the discrete-versus-continuous difference, but they are a lot alike. These characteristics allow the operation of the system to be straightforwardly characterized using its impulse and frequency responses. They provide two perspectives on the system that can be used in different contexts.

Impulse Response:

The impulse that is referred to in the term impulse response is generally a short-duration time-domain signal. For continuous-time systems, this is the Dirac delta function $\delta(t)$, while for discrete-time systems, the Kronecker delta function $\delta[n]$ is typically used. A system's impulse response (often annotated as $h(t)$ for continuous-time systems or $h[n]$ for discrete-time systems) is defined as the output signal that results when an impulse is applied to the system input.

Why is this useful? It allows us to predict what the system's output will look like in the time domain. Remember the linearity and time-invariance properties mentioned above? If we can decompose the system's input signal into a sum of a bunch of components, then the output is equal to the sum of the system outputs for each of those components. What if we could decompose our input signal into a sum of scaled and time-shifted impulses? Then, the output would be equal to the sum of copies of the impulse response, scaled and time-shifted in the same way.

For discrete-time systems, this is possible, because you can write any signal $x[n]$ as a sum of scaled and time-shifted Kronecker delta functions:

$$ x[n] = \sum_{k=0}^{\infty} x[k] \delta[n - k] $$

Each term in the sum is an impulse scaled by the value of $x[n]$ at that time instant. What would we get if we passed $x[n]$ through an LTI system to yield $y[n]$? Simple: each scaled and time-delayed impulse that we put in yields a scaled and time-delayed copy of the impulse response at the output. That is:

$$ y[n] = \sum_{k=0}^{\infty} x[k] h[n-k] $$

where $h[n]$ is the system's impulse response. The above equation is the convolution theorem for discrete-time LTI systems. That is, for any signal $x[n]$ that is input to an LTI system, the system's output $y[n]$ is equal to the discrete convolution of the input signal and the system's impulse response.

For continuous-time systems, the above straightforward decomposition isn't possible in a strict mathematical sense (the Dirac delta has zero width and infinite height), but at an engineering level, it's an approximate, intuitive way of looking at the problem. A similar convolution theorem holds for these systems:

$$ y(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) d\tau $$

where, again, $h(t)$ is the system's impulse response. There are a number of ways of deriving this relationship (I think you could make a similar argument as above by claiming that Dirac delta functions at all time shifts make up an orthogonal basis for the $L^2$ Hilbert space, noting that you can use the delta function's sifting property to project any function in $L^2$ onto that basis, therefore allowing you to express system outputs in terms of the outputs associated with the basis (i.e. time-shifted impulse responses), but I'm not a licensed mathematician, so I'll leave that aside). One method that relies only upon the aforementioned LTI system properties is shown here.

In summary: For both discrete- and continuous-time systems, the impulse response is useful because it allows us to calculate the output of these systems for any input signal; the output is simply the input signal convolved with the impulse response function.

Frequency response:

An LTI system's frequency response provides a similar function: it allows you to calculate the effect that a system will have on an input signal, except those effects are illustrated in the frequency domain. Recall the definition of the Fourier transform:

$$ X(f) = \int_{-\infty}^{\infty} x(t) e^{-j 2 \pi ft} dt $$

More importantly for the sake of this illustration, look at its inverse:

$$ x(t) = \int_{-\infty}^{\infty} X(f) e^{j 2 \pi ft} df $$

In essence, this relation tells us that any time-domain signal $x(t)$ can be broken up into a linear combination of many complex exponential functions at varying frequencies (there is an analogous relationship for discrete-time signals called the discrete-time Fourier transform; I only treat the continuous-time case below for simplicity). For a time-domain signal $x(t)$, the Fourier transform yields a corresponding function $X(f)$ that specifies, for each frequency $f$, the scaling factor to apply to the complex exponential at frequency $f$ in the aforementioned linear combination. These scaling factors are, in general, complex numbers. One way of looking at complex numbers is in amplitude/phase format, that is:

$$ X(f) = A(f) e^{j \phi(f)} $$

Looking at it this way, then, $x(t)$ can be written as a linear combination of many complex exponential functions, each scaled in amplitude by the function $A(f)$ and shifted in phase by the function $\phi(f)$. This lines up well with the LTI system properties that we discussed previously; if we can decompose our input signal $x(t)$ into a linear combination of a bunch of complex exponential functions, then we can write the output of the system as the same linear combination of the system response to those complex exponential functions.

Here's where it gets better: exponential functions are the eigenfunctions of linear time-invariant systems. The idea is, similar to eigenvectors in linear algebra, if you put an exponential function into an LTI system, you get the same exponential function out, scaled by a (generally complex) value. This has the effect of changing the amplitude and phase of the exponential function that you put in.

This is immensely useful when combined with the Fourier-transform-based decomposition discussed above. As we said before, we can write any signal $x(t)$ as a linear combination of many complex exponential functions at varying frequencies. If we pass $x(t)$ into an LTI system, then (because those exponentials are eigenfunctions of the system), the output contains complex exponentials at the same frequencies, only scaled in amplitude and shifted in phase. These effects on the exponentials' amplitudes and phases, as a function of frequency, is the system's frequency response. That is, for an input signal with Fourier transform $X(f)$ passed into system $H$ to yield an output with a Fourier transform $Y(f)$,

$$ Y(f) = H(f) X(f) = A(f) e^{j \phi(f)} X(f) $$

In summary: So, if we know a system's frequency response $H(f)$ and the Fourier transform of the signal that we put into it $X(f)$, then it is straightforward to calculate the Fourier transform of the system's output; it is merely the product of the frequency response and the input signal's transform. For each complex exponential frequency that is present in the spectrum $X(f)$, the system has the effect of scaling that exponential in amplitude by $A(f)$ and shifting the exponential in phase by $\phi(f)$ radians.

Bringing them together:

An LTI system's impulse response and frequency response are intimately related. The frequency response is simply the Fourier transform of the system's impulse response (to see why this relation holds, see the answers to this other question). So, for a continuous-time system:

$$ H(f) = \int_{-\infty}^{\infty} h(t) e^{-j 2 \pi ft} dt $$

So, given either a system's impulse response or its frequency response, you can calculate the other. Either one is sufficient to fully characterize the behavior of the system; the impulse response is useful when operating in the time domain and the frequency response is useful when analyzing behavior in the frequency domain.

  • 24
    $\begingroup$ any way to vote up 1000 times? The best answer.. But sorry as SO restriction, I can give only +1 and accept the answer! :) thanks a lot. . . $\endgroup$
    – Ant's
    Commented Oct 30, 2011 at 5:39
  • 9
    $\begingroup$ AMAZING! So much better than any textbook I can find! $\endgroup$
    – Jase
    Commented May 25, 2013 at 5:38
  • 1
    $\begingroup$ nice answer! :) $\endgroup$
    – some_id
    Commented May 7, 2014 at 21:35
  • 4
    $\begingroup$ @heltonbiker No, the step response is redundant. Either the impulse response or the frequency response is sufficient to completely characterize an LTI system. For the discrete-time case, note that you can write a step function as an infinite sum of impulses. Because of the system's linearity property, the step response is just an infinite sum of properly-delayed impulse responses. $\endgroup$
    – Jason R
    Commented Dec 3, 2015 at 3:30
  • 1
    $\begingroup$ Thanks you for the great answer! $\endgroup$
    – ESCM
    Commented Sep 30, 2022 at 15:56

Bang on something sharply once and plot how it responds in the time domain (as with an oscilloscope or pen plotter). That will be close to the impulse response.

Get a tone generator and vibrate something with different frequencies. Some resonant frequencies it will amplify. Others it may not respond at all. Plot the response size and phase versus the input frequency. That will be close to the frequency response.

For certain common classes of systems (where the system doesn't much change over time, and any non-linearity is small enough to ignore for the purpose at hand), the two responses are related, and a Laplace or Fourier transform might be applicable to approximate the relationship.


The impulse response is the response of a system to a single pulse of infinitely small duration and unit energy (a Dirac pulse). The frequency response shows how much each frequency is attenuated or amplified by the system.

The frequency response of a system is the impulse response transformed to the frequency domain. If you have an impulse response, you can use the FFT to find the frequency response, and you can use the inverse FFT to go from a frequency response to an impulse response.

  • 6
    $\begingroup$ It should perhaps be noted that this only applies to systems which are linear and time-invariant $\endgroup$
    – Paul R
    Commented Oct 29, 2011 at 21:10

Shortly, we have two kind of basic responses: time responses and frequency responses. Time responses test how the system works with momentary disturbance while the frequency response test it with continuous disturbance. Time responses contain things such as step response, ramp response and impulse response. Frequency responses contain sinusoidal responses.

Aalto University has some course Mat-2.4129 material freely here, most relevant probably the Matlab files because most stuff in Finnish. If you are more interested, you could check the videos below for introduction videos. I found them helpful myself.

I have only very elementary knowledge about LTI problems so I will cover them below -- but there are surely much more different kinds of problems!

Responses with Linear time-invariant problems

With LTI (linear time-invariant) problems, the input and output must have the same form: sinusoidal input has a sinusoidal output and similarly step input result into step output. If you don't have LTI system -- let say you have feedback or your control/noise and input correlate -- then all above assertions may be wrong. With LTI, you will get two type of changes: phase shift and amplitude changes but the frequency stays the same. If you break some assumptions let say with non-correlation-assumption, then the input and output may have very different forms.

If you need to investigate whether a system is LTI or not, you could use tool such as Wiener-Hopf equation and correlation-analysis. Wiener-Hopf equation is used with noisy systems. It is essential to validate results and verify premises, otherwise easy to make mistakes with differente responses. More about determining the impulse response with noisy system here.


  1. Wikipedia article about LTI here

  2. Very good introduction videos about different responses here and here -- a few key points below.

enter image description here

  • $\begingroup$ (unrelated question): how did you create the snapshot of the video? $\endgroup$
    – alexey
    Commented Jul 18, 2016 at 18:47
  • 1
    $\begingroup$ @alexey look for "collage" apps in some app store or browser apps. $\endgroup$
    – hhh
    Commented Jul 19, 2016 at 12:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.