如何显示简单的FFT?

时间:2014-02-25 23:49:44

标签: matlab time fft frequency

尝试对随机但离散的时域信号进行傅里叶变换,以便我可以查看主导频率等,但我正在努力正确地绘制它。

我的手机上的振动传感器应用程序收集了数据,也可以在内部使用FT(我假设相当准确),所以我一直在将应用程序中的FT与来自MATLAB的FT进行比较。这些线的形状相似,但是MATLAB镜像是镜像的,可能是拉伸的,并且缩放完全关闭。

有没有人知道有关如何正确显示FFT的指南或教程?

这是我的代码到目前为止,xls文件只是一个加速列。什么看起来特别错?

任何帮助都会很棒!

clc
clear

T = 5.57;                                           % Sampling time (s)
L = 512;                                            % Length of signal (No. samples taken)
Fs = L/T;                                           % Sampling frequency (Hz)
a = xlsread ('Randomshake19.02.xlsx', 'X-Time');    % X-plane accelerations (m/s^2)
t = linspace (0, T, L);                             % Time vector
NFFT = 2^nextpow2(L);                               % Number of points used to form FFT. Next power of 2 from length of y 
X = linspace (1, Fs, L);

Y = fft(a, NFFT);

subplot (1, 2, 1)                                   % Time domain plot
plot (t, a)                                        
xlabel('Time (s)')
ylabel('Magnitude of Acceleration (m/s^2)')

subplot (1, 2, 2)                                   % Frequency domain plot
plot (X,abs(Y))
xlabel('Frequency (Hz)')
ylabel('Magnitude of Acceleration (m/s^2)')

1 个答案:

答案 0 :(得分:0)

你可能想看看: Understanding Matlab FFT example

对于简单的fft理解和一些情节,以及 MATLAB 'spectrogram' params

用于matlab中的光谱图。我猜那就是你想要的。