Interpreting FFT graph of a time serie

2 views (last 30 days)
yusra Ch
yusra Ch on 9 Mar 2020
Edited: Jakob B. Nielsen on 9 Mar 2020
I've been trying to understand Fourier transform for some time now and I think I've perhaps finally got the idea now. I would like to check if the FFT can help me to determine the optimum lenght of the smoothing filter. For this reason , I have represented an example of a time series signal (measured at 5.9GHz) and I am struggling to interpret the results.
I know that the measured signal is a supperposition of large scale fading + small scale fading + noise. These component are equivalent in frequency domain to low frequency zone, middle frequency zone, and high frequency zone, repectively. The figure on the right is the FFT of the measured signal (bleu), FFT of the filtered signal with a filter of 135 ms (red) and FFT of the filtered signal with a filter of 294 ms (green). Can anybody help me to interpret the figure on the right? thank you in advance.
  3 Comments
yusra Ch
yusra Ch on 9 Mar 2020
First thanks for the clarrification I really apreciate it
The filter is a moving average filter. I have a signal of 5000 ms and I have applied a filter of 135 ms. this means that the first 134 filtered data are iniciating the filter and the real filtered data start form 135 ms to 5000 ms (check this to get what I mean). So for example in case of filter F=135, I did plot(filteredsignal(135:end)). I have represented the graph you asked for.
Apart from this, I would like to tell you that the filtered signal correspond to large scale component. So how could its FFT have few values in low frequency zone?
Do you lnow any references which can help me to interpret these results correctly?
Jakob B. Nielsen
Jakob B. Nielsen on 9 Mar 2020
Yep, I get the moving average. That is also why you see the "shift" in the green curve on your original graph. I think a 100 ms filter gives a more accurate filtering of the high frequency noise while retaining the middle frequency data.
Another approach to this type of filtering that is a little more "crude" is, lets say if you have Y=fft(X) then go into your transformed data, find the indexes corresponding to the frequency axis and simply set everything above 10 Hz to 0. Then use ifft(Y) to get a "smoothed" version of your time domain signal. (I misread the x axis in my first response. Where I said 10 to 100 Hz I meant 1 to 10 Hz :) It makes plenty of sense that, if your component is large, then its frequencies are low. (Bigger things tend to move slower, and all).
In regards to further reading, I dont know... I mostly 'just' read a book and then did some trial and error.

Sign in to comment.

Answers (0)

Categories

Find more on Signal Generation and Preprocessing in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!