Filter löschen
Filter löschen

FFT results in noisy power spectrum

7 Ansichten (letzte 30 Tage)
Eric Jenkins
Eric Jenkins am 29 Apr. 2018
Kommentiert: dpb am 30 Apr. 2018
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 Kommentare
Eric Jenkins
Eric Jenkins am 30 Apr. 2018
Would you recommend using the smooth function to do this?
dpb
dpb am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by