Does FFT output vary if I split a signal into windowed time segments instead of using a Hanning Window?

7 views (last 30 days)
Hello,
I have a pressure signal vs time. The pressure signal has been recorded for 15 minutes. I would like to find the frequency distribution of this signal over time. To do this, I split the pressure signal into 3 segments of 5-minutes (300-seconds) and applied FFT to each of them separately for which I have obtained respective outputs. I have 2 questions:
Q1: If I use a Hanning window to this same signal and apply the FFT for those 3 segments, will I see a difference in the outputs?
Q2: Is my method of manually splitting the signal, wrong? If so, could you please elaborate?
I understand that I should implement this, but I would like to discuss the potential implications of this technique.
Please help. Thank you.

Accepted Answer

Sindar
Sindar on 19 May 2020
A few things to consider:
  • more time-domain elements --> finer frequency domain spacing.
  • treating the three cuts the same will introduce an artificial phase from the time delay
  • keeping track of factors and frequencies from fft is not trivial. For this reason, I recommend keeping the number of elements the same whenever possible (so, window vs cut)
  • There are more complex methods that do a better job of giving time-resolved frequency information. The continuous wavelet transform (CWT) may or may not require significant deviaton from the default parameters, but it's worth a quick test at least
  2 Comments
Sindar
Sindar on 20 May 2020
Edited: Sindar on 20 May 2020
1) you should be fine if phase doesn't matter
2a) There is a factor related to num_elements that shows up when you do FFT or iFFT. Depending on how you include the factor, your norm will either change when you increase the sampling rate or when you increase the duration. Different implementations treat this differently; it looks like Matlab includes it (so that ifft(fft(x)) = x), adding it to the iFFT step. I believe this means the total power (sum of squares) is different in the time and frequency domain.
2b) Similarly, the frequency sampling of your output depends on the number of elements.
Keeping track of these effects is not hard, per se, but I find it is easy for most people (myself included) to get them wrong the first few times.
3) Assume you have 1HZ sampling. A 300s segment has 300 elements; a 900s segment has 900 elements, FFT doesn't care that you've made 600 of them zero.
Aside from this, if you take a signal and apply the hanning window, the results will be different since you are suppressing the contribution of data near the window edge. Depending on your problem, the spectrum of the windowed data may be more or less physical than the unwindowed data. Generally, windowed data looks cleaner, and some fields have an - at times unspoken - convention of windowing.
Here are two references I found useful back in the day when I needed to write up an FFT wrapper and windowing code:

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!