【问题标题】:Frequency from fft data set matlab [duplicate]来自fft数据集matlab的频率[重复]
【发布时间】:2016-07-02 22:50:09
【问题描述】:

我在 matlab 的矩阵中有一个数据集。它包含每 0.5 ns 采集的 25,000 个值;所以数据集的总时间是1.25E-5秒。

数据集包含我不感兴趣的非常高频的噪声,所以我创建另一个矩阵是第一个矩阵的每 50 个数据点所以矩阵的大小是 1000*。

我绘制了 matlab 的 fft 这个矩阵的绝对值(我还对幅度进行了归一化,只绘制了前半部分)并得到了附件(两个图,第二个是我感兴趣的低频的特写)。如何将 x 轴转换为频率?

  • 另外一点,如果我获取每个数据点(因此我创建了整个 25,000 个点中的一个 fft),那么 x 轴是完全相同的;换句话说,我的矩阵的大小似乎与 matlab 返回的 x 轴无关。我在频谱上附加了两个链接,其中一个是我感兴趣的低频的特写。它的轴从 0 到 50,所以我需要将这些值转换为 Hz。李>

提前谢谢你!

Close up of frequency spectrum

frequency spectrum

【问题讨论】:

    标签: matlab fft frequency axis-labels


    【解决方案1】:

    根据我在http://www.mathworks.com/help/matlab/math/fast-fourier-transform-fft.html#bresqop-1 上读到的内容,如果您放入plot(f,power) 的第一个向量f 被定义为序列,则绘制的FFT 的x 轴上的单位似乎是Hz n 个元素(n 是放入 FFT 的数据点的数量)从零增加到采样频率。

    因此,对于第一个图,它使用在 2 GHz 频率下采集的每 50 个点,采样频率为 40 MHz。因此,f = (0:n-1)*4*10^7/(25000/50)

    它继续展示如何使用fftshift 函数将fft 函数的输出中心设置为0,但很明显你已经这样做了,并且去掉了负面部分。

    所以,一旦你正确分离了fs/n,采样频率除以使用的数据点的数量,在将 x 轴提供给plot 函数的向量中,然后是 x 轴的单位将是赫兹。

    (我希望你还有要绘制的数字?如果没有,这个问题可能会有所帮助:Confusion in figuring out the relation between actual frequency values and FFT plot indexes in MATLAB

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 2020-01-13
      相关资源
      最近更新 更多