How to remove large peaks around 0Hz in FRF?

1 view (last 30 days)
EB
EB on 9 Mar 2017
Edited: EB on 16 Mar 2017
Hi all, I have calculated FRF function as ratio of cpsd (acceleration,force) and cpsd(force,force). Before the FRF calculation I did detrend my data. When I plot the computed FRF I have very big spikes at 0Hz. How can these be removed? Also is there a way to get the FRF line more smooth because for some accelerations it is very noisy?
>>
I have attached the figures of obtained frf's.
I also tried to filter the accelerations because I am interested in the lower frequency range under 500Hz, but again the fRF curve is noisy and the spikes haven't disappeared. I used Lowpas IIR Butterworth filter with zero phase shift. Should I try with another filter?
Many thanks!

Answers (1)

Star Strider
Star Strider on 9 Mar 2017
The detrend function operates as a relatively unsophisticated highpass filter. I do not recommend it if you want to do further signal processing on your signal.
The 0 Hz is a constant (or direct current, d-c) offset that is the mean of your data. You can remove it from your spectrum plot without losing the information by taking the mean of your data, then subtracting the mean of your data from your data before you take the Fourier transform of it.
Consider using a highpass or bandpass filter if you want to remove specific low-frequency components of your signal. A correctly-designed highpass or bandpass filter will remove low-frequency baseline variations and the d-c offset. A bandpass filter that also incorporates a high-frequency cutoff can remove high-frequency noise as well as low-frequency baseline drift and d-c offset. See the documentation for the Signal Processing Toolbox designfilt (link) function to design your filter.
  3 Comments
Star Strider
Star Strider on 9 Mar 2017
The 0 Hz value will be 0 if you subtracted it from your signal before doing the transform. With your filter, you do not need to subtract the mean, since the filter you designed will essentially eliminate it for you (within the limits of the attenuation of the filter stopbands).
Note that the y-axis in in ‘dB/Hz’, so the plot algorithm may eliminate the 0 value at 0 Hz, because log10(0) (and the log of 0 in every base) is -Inf. That is inconvenient to plot, so the software likely uses the next finite value instead.
EB
EB on 16 Mar 2017
Edited: EB on 16 Mar 2017
Thanks for all the tips. I have calculated the FRFs again but this time without detrend or mean subtraction.
This is the FRF plot only for raw data.
Do you suggest now to try filtering the time data?
Thanks!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!