FFT results in noisy power spectrum
7 次查看(过去 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 个评论
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 Center 和 File Exchange 中查找有关 Spectral Estimation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!