Предположим, мы читаем сигнал из файла:
G = xlsread('Book.xls');
t = G(:,1);
x = G(:,2);
N = length(x);
Сначала мы оценим частоту дискретизации по оси времени и построим вектор частоты:
Fs = 1 ./ abs( t(2)-t(1) );
F = (-N/2:N/2-1)*Fs/N;
Затем вычислите БПФ и построите график:
X = abs( fft(x-mean(x),N) );
X = fftshift(X);
stem(F,X)
наконец найдите пик и соответствующую частоту:
>> [~,ind] = max(X);
>> F(ind)
ans =
-400
Возможно, вы захотите приблизиться к исходной точке, чтобы лучше видеть вещи:
xlim([-1000 1000])