FFT Windowing - where is it?

How do you apply window functions for the FFT? When you choose FFT option in the plot window, there are no options for windowing. In LTSpice it was included in the FFT setup window. Where has it been moved to?

Also, there are no listings for windowing in the Help file.

Hi Chaz,

Thanks for posting.

QSPICE doesn’t support FFT windowing. I only implemented it in LTspice because I was in a bad mood one day. No one wanted it.

And I didn’t find windowing simulated data useful. Windowing helps make less distracting transforms from measured data that isn’t really describable as the sum of so many repeating cycles. I never found it helpful when I compute the content to be transformed.

But I suppose windowing simulated data has some application in signal processing path design. Eventually I might implement it.

–Mike

AFAIK … if FFT length and .tran time step selected properly windowing is not needed.
This will be something like coherent sampling.

That is absolutely true, but for me it turns out that windowing was never really helpful no matter how the .tran is set up and I got to the point where I thought it was silly to do so.

Well, one window function, rectangular, is useful. That’s were you select the region of the .tran data to use for the FFT.

But I think it’s easier to just implement all those non-rectangular window functions and let people decide for themselves. Windowing should be there in a day or two.

–Mike

Could you also increase available FFT length, please?

OK, the FFT windowing functions are there: Rectangular(none), Triangular, Parzen, Welch, Sine, Hann, Hamming, Blackman, Nuttall, Blackman-Nuttall, Blackman-Harris, Flat Top, Bartlett-Hann, Lanczos, Gaussian, Generalized Normal, Tukey, Kaiser, Dolph-Chebyshev, and Poisson.

They’re based on Window function - Wikipedia

As always, the low frequency FFT extent(DFT bin width) is set by the length of time included in the FFT. The high frequency extent is set by number of DFFT data points you use divided by that length of time.

1 Like

BTW, this is what the new FFT window configuration looks like:

Hello Mike, everyone

Sorry for the necromancy but I couldn’t create a new topic. Is the FFT function available for a C block, or do we have to get creative?

Vlad

Beyond the normal C-lib and usual C++ ancillaries, there’s no library of goodies that ships with QSPICE. I just never thought of it.

But it should be possible to dynamically link a prebuild distribution of FFTW from a .DLL module. Or just use one of the example FFTs source codes around.

–Mike

Hi all, I make intensively use of the "flat-top"window,
because it has the most accurate amplitude results.
Happy with it!

I often need to do FFTs on waveforms with a substantial long-term drift and so windowing is very helpful. On the same waveforms I also need to do multiplication and division in FFT on distorted waveforms and some windows work better than others for this. Sometimes I find myself needing to use the FFT to determine AC responses of circuits.

FYI, even if there was no windowing in Qspice you could still do it by using a B-source to apply the window envelope to the waveform being inspected.