【问题标题】:Extracted spectrum depends on number of points sampled提取的光谱取决于采样点的数量
【发布时间】:2016-10-17 03:17:34
【问题描述】:

我有一个信号a(t),这是我绘制它时的样子:

我正在尝试在 MATLAB 中使用 FFT 提取此信号的特征频率。我是这样做的

Y=fft( a );
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
plot(P1)

现在,事实证明,如果我使用 Y=fft( a ),当我绘制频谱时,我只会得到接近 0 的频率。如果我使用Y=fft( a(1:3:end) ),那么我会得到 0 个非零频率的频率。

  1. 为什么当我对完整数据集执行 FFT 时,这些非零频率不会出现,而只会在我每 4 个点采样时出现?
  2. 非零频率实际上包含在我的数据集中还是人工制品?

【问题讨论】:

  • L 是什么?您能否提供光谱图或a 的数据,或生成a 的方法?
  • 通过每 4 个点(实际上,看起来您每 3 个点),您正在对数据进行二次采样。频率高于 newSampleRate/2 的任何信号能量都会混叠。您确实说原始光谱仅显示接近零的能量,但看起来您仅绘制了光谱的前 L/2 点。我假设L应该是a的整个长度?但是如果 L 更小,那可能会解释你的问题。要真正回答这个问题,我们需要您提供更多信息(例如 a 和 L)。

标签: matlab signal-processing fft


【解决方案1】:

如果您更改数据集的 FFT 输入宽度,则将数据与矩形窗口相乘,该矩形窗口将频谱与 Sinc 函数进行卷积。此频谱卷积的结果将显示在 FFT 新宽度内不是完全整数周期的任何频谱频率。

【讨论】:

  • 是的,但我认为 OP 要求从原始数据中每 4 个(或第 3 个或其他)采样一次。所以问题在于子采样和混叠,而不是窗口化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2022-11-07
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多