首页 文章

来自fft数据集的频率matlab [重复]

提问于
浏览
0

这个问题在这里已有答案:

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

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

我从matlab的fft绘制了这个矩阵的绝对值(我也规范了振幅,只绘制了前半部分)并得到了附图(两个图,第二个是我感兴趣的低频的特写) . 如何将x轴转换为频率?

  • 另一点,如果我采用每个数据点(因此我创建了整个25,000个点的fft),那么x轴完全相同;换句话说,我的矩阵的大小似乎与matlab返回的x轴无关 . 我've attached two links to the frequency spectrum, one of which is a close-up of the low frequencies I am interested in. It'的轴从0到50,所以我需要将这些值转换为Hz .

先感谢您!

Close up of frequency spectrum

frequency spectrum

1 回答

  • 0

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

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

    它继续展示如何使用 fftshift 函数将 fft 函数的输出中心置于0,但很明显你已经这样做并切断了负面部分 .

    因此,一旦你将 fs/n 的正确分离,采样频率除以所使用的数据点的数量,在将x轴提供给 plot 函数的向量中,则x轴的单位将为Hz .

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

相关问题