How to remove large peaks around 0Hz in FRF?
1 次查看(过去 30 天)
显示 更早的评论
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!
0 个评论
回答(1 个)
Star Strider
2017-3-9
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 个评论
Star Strider
2017-3-9
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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!