【问题标题】:How to display a simple FFT?如何显示一个简单的 FFT?
【发布时间】: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 文档中提供的示例进行操作?

标签: matlab time fft frequency


【解决方案1】:

你可能想看看: Understanding Matlab FFT example

为了一个简单的fft理解和一些情节,以及 MATLAB 'spectrogram' params

用于 matlab 中的频谱图。我猜这就是你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多