FFT results in noisy power spectrum

7 次查看(过去 30 天)
Eric Jenkins
Eric Jenkins 2018-4-29
评论: dpb 2018-4-30
I have a tremor signal captured at 1500 Hz over a 30 second window which gives a total sample of 45,000 data points. Before downsampling or decimating, I would like to know where the power is within the signal. I should be getting peaks at 5 Hz, 8-12 Hz and possibly something at 20-22 Hz. When I do the FFt, I can see peaks around those points, but there is a lot of noise in the response (see photo). What should I do to fix this? Do I need to create a smaller window, or should I reduce the sampling rate?
Fs = 1500;
T = 1/Fs;
L = length(filtRy(A)); %A is the low pass filtered 45,000 point range for analysis
t = (0:L-1)*T;
f = Fs*(0:(L/2))/L;
ZRy = fft(filtRy);
P2 = abs(ZRy/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
plot(f,P1)
  3 个评论
Eric Jenkins
Eric Jenkins 2018-4-30
Would you recommend using the smooth function to do this?
dpb
dpb 2018-4-30
No, not what saying -- pwelch in Signal Processing TB is set up to do estimation or you can do it manually in looping and doing FFT on overlapping sections and averaging the PSD estimates.
Noise will average out; real components in the signal will standout.
The problem with tremor data is that it likely isn't stationary with time but if the averaging doesn't help, that's part of the reason and uncovers the problem.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Estimation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by