FFT on low sample count signal
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jona Gladines
am 8 Jan. 2019
Kommentiert: Star Strider
am 14 Jan. 2019
I have sampled data of a slowly variating signal, about 1.85e-4 Hz . However since the variation is so slow I only have about 1.5 periods of data sampled at a rate about 28 times higher, so every 188 seconds I take a sample of the signal for a total of 9600 seconds. I want to do a fft analysis on this data to find the most important spectral component.
This gives a good approximation of the data I have:
Fs = 0.0053; % Sampling frequency
T = 1/Fs; % Sampling period
L = 9800; % Length of signal
t=0:T:L; % Time Vector
freq=1/5400;
X = (0.06*sin(2*pi*freq*t)+15.3)+(0.08*(rand(size(t))-0.5));
figure;
plot(t,X)
title('Signal')
xlabel('t (seconds)')
ylabel('X(t)')
I tried an FFT on this, but could nog get any good results. The highest spectral component is in the same order of magnitute as the original signal, but not exactly what I hoped for. I'm only interested in the frequency of the component.
Y = fft(X);
f=linspace(0, fs/2, N/2);
figure;
plot(f,abs(Y(1:N/2)))
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
xlim([0 0.001]);
ylim([0 5]);
is there any way to improve without increasing the number of effective signal samples??
0 Kommentare
Akzeptierte Antwort
Star Strider
am 8 Jan. 2019
Without seeing your signal, it is not possible to suggest a specif approach. One option may be doiing a nonlinear regression on your signal, using the approach in Curve fitting to a sinusoidal function (link).
4 Kommentare
Star Strider
am 14 Jan. 2019
As always, my pleasure.
Resampling to uniform sampling intervals is necessary in order to get reliable results from the fft.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing 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!