We get a lot of questions about DSP every day and over the course of an explanation; I will often use the word Impulse Response. Almost inevitably, I will receive the reply:
What Is An Impulse Response?
In signal processing, an impulse response or IR is the output of a system when we feed an impulse as the input signal. A Linear Time Invariant (LTI) system can be completely characterized by its impulse response. I will return to the term LTI in a moment. 
What Is An Impulse?
An impulse is any short duration signal. However, in signal processing we typically use a Dirac Delta function for analog/continuous systems and Kronecker Delta for discrete-time/digital systems. As we are concerned with digital audio let’s discuss the Kronecker Delta function. 
A Kronecker delta function is defined as:
This means that, at our initial sample, the value is 1. At all other samples our values are 0. This is illustrated in the figure below.
Why Is This Useful?
If we take the DTFT (Discrete Time Fourier Transform) of the Kronecker delta function, we find that all frequencies are uni-formally distributed. That is to say, that this single impulse is equivalent to white noise in the frequency domain.
The mathematical proof and explanation is somewhat lengthy and will derail this article. However, this concept is useful. If we take our impulse, and feed it into any system we would like to test (such as a filter or a reverb), we can create measurements!
Using an impulse, we can observe, for our given settings, how an effects processor works. Essentially we can take a sample, a snapshot, of the given system in a particular state. Using a convolution method, we can always use that particular setting on a given audio file.
Examples Of Impulse Responses Of Effects
Here is a filter in Audacity. The settings are shown in the picture above. The resulting impulse is shown below. If I want to, I can take this impulse response and use it to create an FIR filter at a particular state (a Notch Filter at 1 kHz Cutoff with a Q of 0.8).
The picture above is the settings for the Audacity Reverb. The resulting impulse response is shown below (Please note the dB scale!), I can then deconstruct how fast certain frequency bands decay. I can also look at the density of reflections within the impulse response.
Why Do You Need To Understand This?
In digital audio, you should understand Impulse Responses and how you can use them for measurement purposes. On the one hand, this is useful when exploring a system for emulation. More importantly, this is a necessary portion of system design and testing.  However, there are limitations:
- This impulse response only works for a given setting, not the entire range of settings or every permutation of settings.
- This impulse response is only a valid characterization for LTI systems.
Linear Time Invariant (LTI) Systems
LTI is composed of two separate terms Linear and Time Invariant. Linear means that the equation that describes the system uses linear operations. To understand this, I will guide you through some simple math.
Let’s assume we have a system with input x and output y. In digital audio, our audio is handled as buffers, so x[n] is the sample index n in buffer x. So the following equations are linear time invariant systems:
They are linear because they obey the law of additivity and homogeneity. An additivesystem is one where the response to a sum of inputs is equivalent to the sum of the inputs individually. A homogeneous system is one where scaling the input by a constant results in a scaling of the output by the same amount. 
The following equation is NOT linear (even though it is time invariant) due to the exponent:
A Time Invariant System means that for any delay applied to the input, that delay is also reflected in the output. Another way of thinking about it is that the system will behave in the same way, regardless of when the input is applied. The following equation is not time invariant because the gain of the second term is determined by the time position. 
Practically speaking, this means that systems with modulation applied to variables via dynamics gates, LFOs, VCAs, sample and holds and the like cannot be characterized by an impulse response as their terms are either not linearly related or they are not time invariant.
I hope this article helped others understand what an impulse response is and how they work. Impulse responses are an important part of testing a custom design. If you would like a Kronecker Delta impulse response and other testing signals, feel free to check out my GitHub where I have included a collection of .wav files that I often use when testing software systems. I hope this helps guide your understanding so that you can create and troubleshoot things with greater capability on your next project.
Be good to each other and take it easy…
Will Fehlhaber is an Acoustics Engineer and Audio Programmer from the UK and Bay Area.
- Digital Filter Design: The Analog Prototypes for IIR Filters
- Understanding the Z-Transform Part IV: Analyzing an IIR Filter
- Understanding the Z-Transform III: Analyzing an FIR Filter
- Digital Filter Design: Create an FIR Filter via Windowing
- Understanding the Z-Transform II: Understanding z and the Z-Plot