【问题标题】:Fourier Analysis - MATLAB傅里叶分析 - MATLAB
【发布时间】:2015-05-10 20:40:20
【问题描述】:

大家晚上好,

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

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

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

我已经阅读了有关“fft”功能的信息,但我不太了解它是如何使用的……有人可以帮助我吗?

提前感谢您的关注!

【问题讨论】:

  • macduf 的链接说明了一切。我很想写一个答案,但可能要花很长时间才能写出有意义的东西。相反,请查看上面的链接。

标签: matlab function plot fft frequency-analysis


【解决方案1】:

fft 以复数形式返回频谱。为了分析它,您必须使用它的绝对值或相位。一般来说,它应该是这样的(假设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 会很好。为此,您需要采样周期/频率。我们称这个频率为 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 来获得其他类型的图表。

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

希望对你有帮助

【讨论】:

  • 感谢您的帮助。如果我理解的话,对于样本(在这种情况下),我们指的是向量中包含的元素数量。例如,如果 t(向量时间)和 y 包含 7700 个值,那么 N = 7700,对吗?
  • 样本是向量 y 的单个值。 N是样本数,所以答案是肯定的,就是向量y的大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
相关资源
最近更新 更多