例如,如果我在以100 Hz采样的系统中在FFT中有10个样本。那么结果如何在FFT bin输出中表示? 频率分辨率将是每个DFT bin表示的Hz数。正如您所注意到的,这是由fs / N给出的。在这种情况下: -
resolution = 100/10 = 10 hz
FFT状态的定义,频率范围[0,fs]由N点表示。
但结果来了: -
所以我的问题是: - X [6]是60hz信号&它的值将是40赫兹信号的复共轭。是不是? 或者X [6]不包含60hz的光谱,但它只是X [4]的复共轭?
请建议。
答案 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采样的实际信号的采样频谱:
同样的信号也可以在0到20 Hz的范围内表示:
表示在-10 Hz至+ 10Hz范围内以20 Hz采样的复杂信号的采样频谱:
同样的信号也可以在0到20 Hz的范围内表示:
由于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]])=
答案 1 :(得分:1)
假设您的输入信号纯粹是真实的,那么X[6]
只是X[4]
的复共轭。对于真实信号,频谱的上半部分基本上是冗余的。有关详细信息,请参阅:this question and answer。
请注意,输入信号的带宽应限制为fs / 2
,否则会出现aliasing,因此对于基带信号,不应有任何组件>= fs / 2
。