FFT results in noisy power spectrum
7 views (last 30 days)
Show older comments
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 Comments
dpb
on 30 Apr 2018
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.
Answers (0)
See Also
Categories
Find more on Spectral Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!