从时域到频域
From time domaine to frequency domain
我的 MATLAB 程序有问题。我试图找到一个截止频率来为罗盘数据创建一个低通滤波器。我试图从时域转到频域并找到一个 Fc
,所以我使用了 FFT,但它似乎不起作用。
这是我所做的:
dataset=xlsread('data.xlsx','Feuil1','A1:A751');
t=1:length(dataset);
z=abs(fft(dataset));
subplot(2,2,3)
plot(dataset)
title('dataNonFiltrer')
subplot(2,2,4)
plot(z)
title('frequenciel')
我得到的这个愿望似乎不正确:
你只是没有正确绘制数据。
要绘制信号 X
的 fft
,执行 (from the docs):
Fs = 1000; % Sampling frequency of your data. YOU NEED TO KNOW THIS, change
L = length(X); % Length of signal
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('frequenciel X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
我的 MATLAB 程序有问题。我试图找到一个截止频率来为罗盘数据创建一个低通滤波器。我试图从时域转到频域并找到一个 Fc
,所以我使用了 FFT,但它似乎不起作用。
这是我所做的:
dataset=xlsread('data.xlsx','Feuil1','A1:A751');
t=1:length(dataset);
z=abs(fft(dataset));
subplot(2,2,3)
plot(dataset)
title('dataNonFiltrer')
subplot(2,2,4)
plot(z)
title('frequenciel')
我得到的这个愿望似乎不正确:
你只是没有正确绘制数据。
要绘制信号 X
的 fft
,执行 (from the docs):
Fs = 1000; % Sampling frequency of your data. YOU NEED TO KNOW THIS, change
L = length(X); % Length of signal
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('frequenciel X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')