Skip to main content

Convolution in the Frequency Domain and Time Domain from Simulation Data

Key Takeaways

  • There are times where you may need to calculate the convolution in the frequency domain for your circuits.

  • If you have numerical data in the time domain for your circuit behavior, you can calculate convolution in the frequency domain, and vice versa.

  • SPICE tools can give you these data in the time and frequency domain allowing you to easily calculate convolutions when needed.

Convolution in the frequency domain from Fourier transforms

Fourier transform and convolution in the frequency domain.

Whenever you’re working with numerical data, you may need to calculate convolutions between different functions in the time or frequency domains. Whenever you take a product of functions in the time domain and you need to calculate the Fourier transform of the product, you can use the convolution theorem to rewrite the product in terms of the convolution operation. This is an essential step in signal processing and analysis, but this can be difficult in cases where numerical data is used to define the signal.

These tasks are made easier when you have access to a powerful SPICE simulator, which can be used to generate numerical data in the time and frequency domain. Once you have these data, you can easily use Fourier transforms of products in the time (frequency) domain to calculate convolution in the frequency (time) domain. Here’s how convolution in the frequency domain works and the numerical data you need to access from SPICE simulations to perform these calculations.

How to Calculate Convolution in the Frequency Domain

A convolution operation is used to simplify the process of calculating the Fourier transform (or inverse transform) of a product of two functions. When you need to calculate a product of Fourier transforms, you can use the convolution operation in the frequency domain. The relationship between transforms and convolutions of different functions is defined in terms of a convolution theorem, which is normally defined in terms of Fourier transforms.

The standard convolution theorem for Fourier transforms also holds for one-sided and two-sided Laplace transforms. In general, you can derive an analogous convolution identity for other transform pairs of reciprocal variables, such as the Mellin and Hartley transform pairs.

A convolution theorem states simply that the transform of a product of functions is equal to the convolution of the transforms of the functions. For a convolution in the frequency domain, it is defined as follows:

Convolution in the frequency domain from Fourier transforms

Fourier transform of a product of time-domain functions and the convolution in the frequency domain.

In terms of circuit design, this would apply to components like an analog multiplier, where the output in the time domain is the product of the two input time-domain waveforms. To calculate the frequency spectrum of the output, you only need to know the frequency spectra of each of the inputs. You could calculate the convolution of the inputs in the frequency domain to determine the frequency spectrum of the output. The other option is to calculate the product of the two inputs in the time domain, then calculate the Fourier transform of this product.

There is an advantage to calculating the convolution of the inputs in the frequency domain (RHS above) versus calculating the Fourier transform of the product of inputs directly. If you know i1 and x2, and their individual Fourier transforms X1 and X2 exist, then their convolution can be easily calculated analytically or numerically. In contrast, the product x1(t)x2(t) may be complex enough that it does not have a simple antiderivative and the Fourier transform would need to be numerically calculated regardless. Thankfully, the algorithm for this calculation is rather simple and can be accessed in SDKs for most digital signal processors.

Just like the convolution gives you the Fourier transform of the product x1(t)x2(t), the inverse Fourier transform gives you back x1(t)x2(t):

Inverse Fourier transform of a convolution in the frequency domain

The inverse transform of a convolution in the frequency domain returns a product of time-domain functions.

If these equations seem to match the standard identities and convolution theorem used for time-domain convolution, this is not a coincidence. It reveals the deep correspondence between pairs of reciprocal variables.

When the two signals in the above equations are the same or only differ by a phase factor, we have an autocorrelation, which is also defined in the frequency domain. One important case where convolution and autocorrelation measurements are important is in estimation and inference of the dominant component of a harmonic signal from a small number of measurements of a noisy signal. Another important use of an autocorrelation measurement in the time domain is for ultra-fast pulse measurements in mode-locked lasers, which is simple enough to be implemented in an automated DSP algorithm as part of a control loop.

Difficulties with Nonlinear Circuits

So far, everything we’ve discussed applies to linear circuits. If you’re working with nonlinear circuits, the analytical techniques involved become more complicated as you now need to work with products including functions of time and frequency. The convolution theorem would need to be used repeatedly to regenerate the identities shown above when working with analytical functions.

You can simplify things somewhat if you redefine your function in the frequency domain as a Taylor series around some limiting frequency. This breaks the frequency-domain function into a polynomial, giving you the ability to apply the convolution operation to a sum of terms in the frequency domain:

Virtual prototyping in power-aware signal integrity simulation

Taylor series for an arbitrary signal in the frequency domain.

When you go above a 2nd degree polynomial, you still have the problem where you need to apply nested Fourier transform operations to define the convolution in the frequency domain. Although this is difficult analytically, you can still use numerical data from a nonlinear circuit to calculate convolution in the frequency domain.

Small-signal equivalents at a single driving voltage/current can be used to determine the frequency response spectrum (i.e., transfer function) of a circuit block in your design. Once you know the frequency response of two circuit blocks, you can then calculate their convolution as needed using standard techniques. This would apply to any situation where you need to calculate the Fourier transform of a product of time-domain data for a nonlinear circuit.

When you need to calculate a convolution in the frequency domain as part of your signal processing algorithm, you need PCB design and analysis software that includes a SPICE simulation alongside your schematic design tools. The front-end design features from Cadence integrate with the powerful PSpice Simulator to create the ideal system for circuit design, simulation, and processing. Once you’ve created a PCB layout, Cadence has a suite of SI/PI Analysis Point Tools for post-layout verification and simulation.

If you’re looking to learn more about how Cadence has the solution for you, talk to us and our team of experts. You can also visit our YouTube channel for videos about Simulation and System Analysis as well as check out what’s new with our suite of design and analysis tools.