傅立叶分析 - MATLAB

Fourier Analysis - MATLAB

大家晚上好,

我想问你一个关于频域(傅里叶)函数分析的问题。我有两个向量:一个包含 7700 个压力值,另一个包含 7700 个时间值(相同数字)。

例如,我称第一个向量为"a",第二个向量为"b"。使用命令 "figure(1),plot(a,b)" 我获得了时间域中的曲线。

如何在频域绘制这条曲线,进行傅立叶变换?

我读过 "fft" 函数,但我不太了解它的使用方法...有人可以帮助我吗?

提前感谢您的关注!

fft returns 频谱为复数。为了分析它,您必须使用它的绝对值或相位。一般来说,它应该是这样的(假设 t 是包含时间的向量,y 是包含实际信号的向量,N 是样本数):

fY = fft(y) / (N/2) % scale it to amplitude, typically by N/2
amp_fY = abs(fY)
phs_fY = angle(fY)

此外,如果 FFT 具有已知的频率分辨率,那就太好了。为此,您需要采样 period/frequency。我们称该频率为 fs:

fs = 1/(t(1) - t(0))

和 FFT (F) 的频率向量 应该是:

F = (0:fs/N:(N-1)*fs/N)

最后绘制:

plot(F, amp_fY)
% or plot(F, phs_fy) according to what you need

我可以使用 stem 而不是 plot 来获得其他类型的图表。

请注意,图中的直流分量(平均值)将加倍。

希望对您有所帮助