# How to interpret FFT output signal?

17 Ansichten (letzte 30 Tage)
Melvin Corvers am 6 Aug. 2020
Kommentiert: Rena Berman am 9 Okt. 2020
Hi,
I am analyzing a signal using FFT to obtain its frequency spectrum. Raw data is shown below. The machine should measure at a frequency 0.316 Hz.
Code spectral analysis:
x = t2(:,3);
%x = x-mean(x);
n = length(x);
dt = 3;
fs = 1/dt;
t = (0:n-1)*dt;
y = fft(x);
f = (0:n-1)*(fs/n);
power = abs(y).^2/n;
figure()
plot(f,power)
xlabel('Frequency [Hz]')
ylabel('Power')
grid on
After spectral analysis I end up with two peaks: one at 0 Hz and one at 0.3316 Hz. If you uncomment the second line you end up with this: a peak at 0.0017 and 0.3316 Hz. My question is how to interpret the first peak? Has it a physical meaning? I've read somewhere that a large peak at zero frequency means that you have a massive DC offset. What does that mean? And could it be that through discretization the actual value (0.316 Hz) and found value (0.3316 Hz) are slightly different?
##### 3 Kommentare2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
Rena Berman am 9 Okt. 2020

Melden Sie sich an, um zu kommentieren.

### Antworten (1)

Peng Li am 6 Aug. 2020
Based on your code, your sampling frequency is 1/3 Hz. There is no way you can detect a component of 0.316 Hz using 1/3 Hz sampling frequency.
The spectrum is symmetrical to 0 Hz. By default MATLAB gives a shifted spectrum that is symmetrical Fs/2. You can fftshift it or you can simply plot the first half. The second peak on the righthand side is not what you want to detect; it is simply a mirror of the peak on the left hand side.
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Spectral Measurements finden Sie in Help Center und File Exchange

### Community Treasure Hunt

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

Start Hunting!