I was wondering if it is possible to take a signal and run it through an FFT multiple times with a range of different windows, and then combine/average the results to get a more accurate Signal analysis than just one window. For example, could i run my signal through a Hamming window to predict the component frequencies and then run a copy of the signal through a Flat Top window to get better amplitude predictions. combine the two data sets with some math and achieve a more accurate overall picture.

Are there any major flaws in this method? Are there better methods?


That makes little sense; the FFT (which is just an implementation of the DFT) is a linear operation; summing/weightedly averaging the same signal windowed with different windows is mathematically identical to just windowing with the summed/weightedly averaged window to begin with. It's literally the same.

So, what you really want is to design / choose a window that's appropriate for your use case instead!

  • $\begingroup$ ahh okay. I have a low-frequency signal in the 0-1.5hz range where I want to predict the approximate freq, amplitude, and phase. Currently, i am using the Hanning window which gives really good frequency accuracy, especially when corrected using a calculation, but still lacks with amplitude and phase. $\endgroup$ – Jacob wood Apr 9 at 13:06
  • $\begingroup$ Sounds like an FFT might not be the right tool at all! An appropiately built PLL or a parametrric frequnecy estimator might be much more useful here. $\endgroup$ – Marcus Müller Apr 9 at 13:32
  • $\begingroup$ I haven't heard of either of these tools. Do you have any useful links on them?? $\endgroup$ – Jacob wood Apr 9 at 13:39
  • 1
    $\begingroup$ PLLs are really the bread and butter of frequency recovery (Radios used to feature large printed "PLL" labels on their front!), so not quite sure where to start there; hm. Overall, you've got an estimation problem, so Fundamentals of Statistical Signal Processing: Estimation Theory by Steven M. Kay might be "your" book on estimation basics, and then maybe the Fast Nearly ML-Performance estimation paper by Macleod, but these are both pretty involved. Problem is that I had years to learn the math basics in courses that were designed to sequentially teach me this stuff, and you probably"just" $\endgroup$ – Marcus Müller Apr 9 at 13:48
  • $\begingroup$ want something that ... works for you. So, I'd waltz over to my university institute's library and pick a book, not really something I'd have a link to for :( $\endgroup$ – Marcus Müller Apr 9 at 13:49

I've done that. Used a flat-top window to estimate the amplitude. Then used a (fftshift'ed) Blackman-Nutall window to estimate the phase. That particular combination gave me a better pair of estimates than using a single, say, von Hann windowed FFT. Even with interpolation of the FFT results.

Other combinations might work better for other purposes.

The reason this works is that window functions are lossy (they almost eliminate or distort information near the edges of the window, especially with any quantization of the window's result vector). Different windows lose different bits of information about the signal.

Different window lengths are also a possibility. Shorter zero-padded windows can better locate an event in time. Longer windows can produce better frequency estimates, given a non-zero S/N, especially to reduce percentage estimation errors for lower absolute frequencies. Fast rhythms containing musical chords spanning several octaves may be easier to transcribe using multiple lengths of window.

  • $\begingroup$ I have a low-frequency signal in the 0-1.5hz range where I want to predict the approximate freqs, amplitude, and phase's of the component signals. Currently, I am using the Hanning window which gives really good frequency accuracy, especially when corrected using a calculation but still lacks with amplitude and phase. I will try out looking at blackman and flat top. $\endgroup$ – Jacob wood Apr 9 at 16:28
  • 1
    $\begingroup$ For a single low frequency in low or zero noise, parametric estimation often works better than using an FFT peak estimator. $\endgroup$ – hotpaw2 Apr 9 at 16:30

Computing several versions in a family of transformations from the same data can be seen as an instance of "diversity enhancement". One may expect from it that interesting features may pop-up better and align, while uninformative ones will appear less coherent, so that a clever (often nonlinear) combination of the different "transformed versions" would have a nicer look. In the plot below, the dotted spectra (magnitude) came from 13 different classical windows, and the black solid line is their median (rescaled by the maximum). Spectra of a noisy sine with different windows and their median

Here, the result would probably have been better with one suitably-chosen window than by combining (non cleverly) randomly picked windows, because the identification of a noisy sine is a clear and well-documented problem (cf. @hotpaw2 comment on parametric spectral analysis).

However, I have found this approach to offer some robustness in cases where the signal is not too stationary, or you are not sure of the necessary window properties, or for instance in real-time sliding Fourier, when you are not sure about the memory/forgetting factor suitable for different types of transients. Using windows with different shape factors is a way to address different scales of data features (see references below in a time-frequency setting). Such approaches are at the core of several hierarchical multiscale techniques (scale-space, wavelets).

Aside analysis, multiwindow synthesis requires a careful choice of combinations. This is IMO the major flaw on the idea. They can be performed point-wise (coefficient by coefficient ) like min, max, products. Those can be seen as a form of masking. Their combination can be more complex instances of ensemble averaging, matrix factorization, etc. For instance, convolutive neural networks with different filter kernel sizes combined by pooling as an elaborate form of multiwindow processing. The last reference below is on a very recently published approach.

You can also use them at a more basic level, to have different realizations to estimate a noise level, a peak location, and this may give you a kind of heuristic confidence interval around some expected value.

A multiwindow method for generating a time-varying spectrum of nonstationary signals is presented The time-varying spectrum is computed from an optimally weighted average of multiple orthogonal windowed spectrograms. The weights are determined using linear least squares estimation with respect to a reference time-frequency distribution. Examples are provided, with performance criteria measures, to demonstrate and quantify the effectiveness of the method.

We extend the spectrum estimation method of Thomson (1982, 1990) to non-stationary signals by formulating a multiple window spectrogram. The traditional spectrogram can be represented as a member of Cohen's class of time-frequency distributions (TFDs) where the smoothing kernel is the Wigner distribution of the signal temporal window. We show the unusual shape of the Cohen's class smoothing kernels corresponding to the Thomson method multiple windows. These are a class of smoothing kernels not hitherto used in time-frequency (t-f) analysis. Examples of the multiple window spectrogram applied to a noisy dual linear FM test signal and to actual underwater acoustic data demonstrate the merit of the method.

The importance of hierarchical image organization has been witnessed by a wide spectrum of applications in computer vision and graphics. Different from image segmentation with the spatial whole-part consideration, this work designs a modern framework for disassembling an image into a family of derived signals from a scale-space perspective. Specifically, we first offer a formal definition of image disassembly. Then, by concerning desired properties, such as peeling hierarchy and structure preservation, we convert the original complex problem into a series of two-component separation sub-problems, significantly reducing the complexity. The proposed framework is flexible to both supervised and unsupervised settings. A compact recurrent network, namely hierarchical image peeling net, is customized to efficiently and effectively fulfill the task, which is about 3.5Mb in size, and can handle 1080p images in more than 60 fps per recurrence on a GTX 2080Ti GPU, making it attractive for practical use. Both theoretical findings and experimental results are provided to demonstrate the efficacy of the proposed framework, reveal its superiority over other state-of-the-art alternatives, and show its potential to various applicable scenarios.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.