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

时间:2017-06-08 07:43:00

标签: fft dft

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

resolution = 100/10 = 10 hz

FFT状态的定义,频率范围[0,fs]由N点表示。

但结果来了: -

  • X [0]是常数项(也称为DC偏差)
  • X [1]是10 hz
  • X [2]是20 hz
  • X [3]是30 hz
  • X [4]是40赫兹
  • X [5]是50赫兹
  • X [6]至X [9]分别是X [4]与X [1]的复共轭。

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

请建议。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

Sampling real 1

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

Sampling real 2

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

Sampling complex 1

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

Sampling complex 2

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

所以特别在你的例子中:

X [0] = DC

X 1 = 10

X 2 = 20

X 3 = 30

X 4 = 40

X [5] = 50

X [6] = 60

X [7] = 70

X [8] = 80

X [9] = 90

也可以表示为

X [0] = DC

X 1 = 10

X 2 = 20

X 3 = 30

X 4 = 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],X 1,X 2,X 3,X 4,X [5],X [6],X [7],X [8],X [9]])=

[X [5],X [6],X [7],X [8],X [9],X [0],X 1,X 2,X { {3}},X 3]

答案 1 :(得分:1)

假设您的输入信号纯粹是真实的,那么X[6]只是X[4]的复共轭。对于真实信号,频谱的上半部分基本上是冗余的。有关详细信息,请参阅:this question and answer

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