I am interested in performing some Fourier analysis simulations on my circuit. In looking through the manual, I have noticed that there appear to be three operators that seem to perform similar operations: FFT, FFTS, and HARM. What are the differences between each of these operators, and in which situations should I use each operator?
Each of these operators do produce similar data. The main difference between them lie in the scale factors used along with whether the operator treats its specified waveform as a magnitude or a complex number.
FFT operator: The FFT operator calculates the classical Fourier transform of the specified waveform and returns a complex quantity whose real part contains the scaled Fourier series An coefficients and imaginary part contains the scaled Fourier series Bn coefficients. The Fourier coefficients are scaled by N/2 (DC scaled by N) where N is the number of points calculated during the FFT operation. Since most engineering applications need the unscaled Fourier coefficients, the FFT operator is most useful when calculating the phase values of the Fourier transform such as with the expression PH(FFT(V(Out))).
HARM operator: The HARM operator calculates the amplitude of the harmonics for the specified waveform where the amplitude is the multiplier of the sine or cosine function. It returns a magnitude rather than a complex quantity. The HARM operator is only useful for plotting the harmonics of a waveform such as with the expression HARM(V(Out)) or dB(Harm(V(Out))).
FFTS operator: The FFTS operator is similar in operation to the HARM operator. It can also be used to plot the harmonics of a waveform such as with the expression FFTS(V(Out)). The difference between the two is that the FFTS operator returns a complex quantity so that it can be used to plot the Fourier series sine and cosine coefficients. The Fourier series cosine coefficients can be calculated through an expression such as Re(FFTS(V(Out))), and the Fourier series sine coefficients can be calculated through an expression such as Im(FFTS(V(Out))).