不同索引的 fft bin 内的结果是什么?

what is the result inside fft bin at different index?

例如,如果我在以 100 Hz 采样的系统中的 FFT 中有 10 个样本。那么 FFT bin 输出中的结果如何表示? 频率分辨率将是每个 DFT bin 代表多少赫兹。正如您所指出的,这是由 fs/N 给出的。在这种情况下:--

resolution = 100/10 = 10 hz

FFT的定义是用N点表示频率范围[0,fs]。

但是当结果来的时候:--

所以我的问题是:--
X[6] 是 60hz 信号,它的值是 40hz 信号的复共轭。对吗?
或者 X[6] 不包含 60hz 的光谱,但它只是 X[4] 的复共轭 ?

请推荐。

假设您的输入信号是纯实数,那么 X[6] 就是 X[4] 的复共轭。频谱的上半部分对于实际信号来说基本上是多余的。请参阅:this question and answer 了解更多详情。

请注意,输入信号的带宽应限制为fs / 2,否则会出现aliasing,因此对于基带信号,不应有任何分量>= fs / 2

DFT 中每个 bin 的频率从 $n = 0 到 N-1$,其中每个频率给出为 $n F_s/N$。

由于采样过程,对于任何信号(实信号和复信号),此频谱的上半部分从 $F_s/2$ 延伸到小于 $F_s$ 的 1 个样本相当于负半谱(从$-[=​​100=]%延伸到小于0的1个样本的谱)。这适用于 DFT 和所有数字信号。

这在下图中进行了演示,显示了模拟频谱(顶线)如何与以 20 Hz 采样的系统的采样频谱(第二行)卷积以产生采样信号的数字频谱。由于频谱在 20 Hz 范围内是唯一的(并且在其他任何地方重复),我们只需要显示任何 20 Hz 范围内的频率来表示信号。这可以从 -10 Hz 到 +10 Hz 或 0 到 20 Hz 以相同方式显示。

表示在 -10Hz 到 +10Hz 范围内以 20Hz 采样的真实信号的采样频谱:

同样的信号也可以在 0 到 20 Hz 的范围内表示:

表示在 -10Hz 到 +10Hz 范围内以 20Hz 采样的复杂信号的采样频谱:

同样的信号也可以在 0 到 20 Hz 的范围内表示:

由于 DFT 的频谱是离散的,因此样本从 $n = 0 到 N-1$,其中每个频率指定为 $F_s/n$,如上所述。当然,DFT 中也只有 N 个样本,但是当您在 DFT 中旋转样本时,您可以有效地移动通过上面的扩展频谱。查看圆周从 0 到 $F_s$ 的圆柱体表面的光谱很有帮助,您会看到 $F_s$ 等于 0,从 0 倒退是相当于进入负半谱。

所以在你的例子中具体来说:

X[0] = DC

X1 = 10

X2 = 20

X3 = 30

X4 = 40

X[5] = 50

X[6] = 60

X[7] = 70

X[8] = 80

X[9] = 90

也可以表示为

X[0] = DC

X1 = 10

X2 = 20

X3 = 30

X4 = 40

X[5] = -50

X[6] = -40

X[7] = -30

X[8] = -20

X[9] = -10

请注意,MATLAB 中的命令 "FFTSHIFT" 会相应地移动 DFT 向量以生成以下表示范围从 -F_s/2 到 +F_s/2 的顺序:

fftshift([X[0], X1, X2, X3, X4, X[5], X[6] , X[7], X[8], X[9]]) =

[X[5], X[6], X[7], X[8], X[9], X[0], X1, X2, X3, X4]