Interpreting FFT graph of a time serie

3 次查看(过去 30 天)
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 个评论
yusra Ch
yusra Ch 2020-3-9
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 2020-3-9
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.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by