Frequency Response Function Estimate via FFT Question

I want to estimate the FRF of a dynamic LTI system given experimental input and output data. I know generally the approach is to use a chirp as an input to make sure enough frequency content is available. Then you take the fft of the output and divide it by the fft of the input. This intuitively makes sense to based on what I know about FRF and transfer functions. However, I am getting a little confused between the nuanced differences between a Laplace transform and Fourier transform.

The resulting output signal of this system will have some transient solution. My understanding is that FRF is really only about the steady state solution of a sinusoidal input (i.e., the FRF is the transfer function when s = j*omega, which I believe implies there is no transient solution and only steady state). So my question is: does the transient response that is built into the output data corrupt the FRF approximation via FFT? Or is there something in the FFT approach that would mitigate the impact of the transient solution? Or am I completely wrong and the transient part of the output is needed to give an accurate FRF approximation?

I believe there will be some transient solution at the natural frequency(ies) of the system that I would imagine give a different fft of the output than if the output only had the steady state solution.

Any help would be most appreciated!

• An aside: If you can be sure of the linearity of the device you are measuring, an alternate to the chirp signal is a multi-sine. This type of signal carries all the desired frequency components at a single time and is periodic, and therefore you can wait for the transients to decay and take a period to use in your analysis. Its also easy to average to improve the SNR of your results. – loudnoises Jan 25 at 9:00

In general, the discrete Fourier transform is supposed to be applied to periodic signals.

The FRF of a perfectly periodic signal only has energy content in discrete frequencies (at multiples of the signal's frequency and DC). If the signal is not periodic, then the Fourier transform will have spectral content for all continuous frequencies.

So when executing an experiment where you wish to measure the FRF of an LTI system, you can think of the output as a sum of the periodic signal (that remains indefinitely) and a second part that is not periodic (you could call them "transients"). The periodic signal will give you contributions at discrete frequencies, while the transient term will add stuff that you may not have wanted to include in your transfer function. This insight does not depend on the type of excitation signal. If you apply a chirp, impulse, multisine or any other (periodic) excitation signal, you should make sure that the output signal is periodic as well before measuring. To do so you can:

• measure using an excitation signal with a period that is long enough such that the signal has completely died out before the end of the period.
• measure a few periods before actually storing data to allow the system to first converge to a steady-state solution.

If you are not in a position to wait for long times, then there are ways to estimate and/or partly cancel transient effects on the FRF. The idea is to deliberately not excite some frequency bins. If the output signal has spectral content in those "empty" frequency bins, then you know that they have to be due to transient effects (assuming the system is LTI) allowing you to estimate the effect of them. You can then go on and cancel these effects by using the property that the FRF of a transient is a continuous complex function by approximating the "extra" contributions caused by transients in the excited bins by interpolation of the values in the non-excited bins.

Using a chirp signal is not a preferred way, unless you are not able to use an arbitrary waveform generator (AWG) or in general a programmable signal generator. Chirp is good solution if the signal generation and measurement is done with analogue components. But based on your question you are dealing with digital signals, so there are better options.

A simplest way is to take advantage of the transient by inserting an impulse. This produces an impulse response, which you can capture and take FFT of it. The result is directly the frequency response of the system. This of course requires that you can generate nearly an ideal impulse. If the impulse is not ideal, the frequency response of the system can still be calculated by dividing the FFT of the output impulse by the FFT of the input impulse (dividing each FFT bin separately, and of course FFTs must have the same length). In practice it is required that the FFT of the input impulse does not have too much variation for frequencies within the significant bandwidth. This is because the accuracy for frequencies at low power is reduced by noise (even in pure digital system there would be quantization noise).

In a practical system, the accuracy of a single impulse might suffer from random effects; therefore, it is safer to use a random input signal sequence. This can be thought like a sequence of single impulses but each with different amplitude and also phase, if you are dealing with complex signals. If the signal is white enough (equally distributed within the measured frequency range), then the power spectrum, i.e. the power part of the frequency response can be get simply by long term averaging multiple FFTs (powers of individual bins from separate FFTs are avaraged). However, each FFT must use windowing so that discontinuities at the edges of each FFT are reduced (FFT assumes that signals are periodic, and if they are not, they can be forced to be periodic by windowing. For example Hann window is popular.) Windowing has a spreading effect to individual bins, so if the frequency response of the system has some very steep slopes then the accuracy suffers from the windowing. However, if the resolution bandwidth is small enough, the spreading is insignificant. Of course it is possible to use also input signals that are periodic to avoid the problem of discontinuity. In that case the output signal sequence must be captured exactly at the right time and the length must match to the input signal sequence.

If power spectrum is not enough, and you need also phase response, then mere FFT of the output is not enough. You need to divide the FFT of output by the FFT of original input (each FFT bin separately). Notice that this must be done for each FFT sequence. Then, after division, you can for example separate amplitude and phase, and do long term averaging for them.

Basically, using the method described above whatever signal can be used as input to determine the frequency response, as long as the input signal power is distributed within the desired frequency range. Impulse and random (white noise) are best choices because they have basically instantaneously all frequencies equally covered. Chirp signal has instantaneously only a narrow bandwidth. Therefore, to get the whole frequency response the whole chirp sequence has to be taken to FFT at once, which might require a huge memory for FFT calculation. Also, if there is any time-dependent variation in the system or occasional interferences they might ruin some instantaneous frequency points.