Removing DC component at 0 HZ from acceleration data after fft

29 次查看(过去 30 天)
Hello,
After i compute the FFT of my acceleration data (Fs = 50 Hz) i am getting a large spike at 0 Hz (the leftover DC component). I have tried subtarcting the mean and detrending my data (detrend(X,2)).
Here is my code:
n = length(acc(:,1));
accX_fft = fft(acc(:,1),n);
PSD = accX_fft.*conj(accX_fft)/n;
freq = linspace(0,50,length(accX_fft));
L = 1:floor(n/2);
plot(freq(L),PSD(L));
The amplitudes of the frequecieis i want to visualize are already very very small, so the spike at 0 Hz is really distorting the view.
Id appreciate any reccomendation on how to get rid of this spike.
  2 个评论
Ameer Hamza
Ameer Hamza 2020-5-29
If subtracting mean does not work, then it might be some other frequency?
Nidhi Singh
Nidhi Singh 2022-2-11
I am having the same doubt. If subtracting the mean doesn't work, than can we use high pass filter here with fft graph?

请先登录,再进行评论。

采纳的回答

Ameer Hamza
Ameer Hamza 2020-5-29
As described here: http://blog.originlab.com/how-to-remove-dc-offset-before-performing-fft try using a high-pass filter to remove very low frequencies from your signal. See highpass(): https://www.mathworks.com/help/releases/R2020a/signal/ref/highpass.html

更多回答(0 个)

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by