【发布时间】:2014-02-25 23:49:44
【问题描述】:
尝试对随机但离散的时域信号进行傅里叶变换,以便查看主要频率等,但我正在努力正确绘制它。
数据是使用我手机上的振动传感器应用程序收集的,它也可以在其中进行 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)')
【问题讨论】:
-
请添加您获得的图像(或图像链接)和所需的输出。
-
查看 fftshift() 命令,该命令将正确地重新排序傅立叶变换。然后,您可以缩放频率轴,使其从 -Fs/2 运行到 Fs/2。
-
为什么不按照
fft文档中提供的示例进行操作?