这就是离散傅里叶变换(即应用于采样信号的傅里叶变换理论)的工作原理。N
如果你的输入有 length ,你会得到一个 length 的输出N
,并且在移除对称部分之后,你得到的是跨越频率 0(DC 分量)到 Nyquist 频率($\frac{ F_s}{2}$)。
出于同样的原因,您的信号具有的点越多(假设对于固定采样率 $F_s$),您的 FFT 输出的分辨率就越高,因为输出中每个频率区间之间的间距为:$$ \frac{F_s/2 }{N/2} = \frac{F_s}{N} $$
更新:
无论采样频率如何,FFT 都会为具有 $N$ 个样本的输入返回 $N$ 个数据点。我们所说的是输出的所有点都散布在圆上:$[0;2\pi]$ 以弧度/样本表示,或者有时表示为 $[0;1]$ 以周期/样本(称为归一化频率)。所有这些 bin 对应于每个样本之间可能有多少个周期或振荡。您最多可以在每个样本之间测量半个周期(对于真实信号)。通常只需知道采样率,就可以将其转换回频率。
所以确实,如果你的信号更长,你就会有更长的输出。现在我要指出的是,如果您的信号更长但使用相同的 $F_s$ 记录,即它实际上持续时间更长,那么您将解决更小的频率(因为您总共有更多时间,这会在频域)。也就是说,这些 bin 在频域中彼此更接近($\Delta f = F_s/N = 1/T$ 变小)。因此,基本上,无论采样率如何,您记录的时间越长,您在频域中获得的分辨率就越高。
总而言之,如果您不知道 $F_s$ 垃圾箱的位置(移除对称部分后):
- 跨度$[0,0.5]$,间隔$1/N$,单位为cycle/sample,或
- span $[0,\pi]$,间隔$2\pi/N$,单位为弧度/样本
然后,如果您知道 $F_s$,只需转换回Hertz,知道它必须跨越 $[0, F_s/2]$。