FFT分析的注意事项

对信号进行傅立叶分析,可以将信号描述成一系列余弦(实部)和正弦(虚部)信号之和或者描述成带相位的余弦信号(幅值和相位形式)。作为演示实例,我们对两个正弦波组成的信号进行傅立叶分析,两个正弦波分别如图1,2所示。这两个信号组成的复合波形如图3所示。

如果我们对这个复合信号进行快速傅立叶分析(FFT),这个复合波形的FFT结果如图4所示。

图4 64Hz和192Hz信号的FFT结果

从图4中可以直观地看到,在幅频曲线中有两个明显的峰值,相位曲线中相位有两处改变明显,这两个位置对应的频率分别为64Hz和192Hz。

FFT分析得到的信号幅值刚好为原始正弦波幅值的一半。64Hz的正弦波的幅值为1,但FFT显示为0.5,192Hz的正弦波的幅值为0.5,而FFT显示为0.125,这是什么?这是因为当我们对信号进行频谱分析时,一些能量用正频率表示,一半能量用负频率表示。对于一个实数的时域信号而言,与之相对的是复数的时域信号,那么能量会被划分为等量的两份,我们刚好得到了其中的一半。为了克服这一点,一些软件会将信号的幅值加倍。这也就是所谓的半谱分布,其兼顾全范围的幅值。

现在让我们来考虑相位部分。原始的64Hz正弦信号的相位为0,192Hz正弦波的相位为30度。从64Hz的相频曲线中可以看出相位从0突变到-90度,这是为什么?这是因为傅立叶变换分析使用余弦和正弦函数。实际是用余弦,不是正弦。因此,正弦波形相位移动-90度为余弦,这也就是我们在相频曲线中所看到的。在192Hz处,相位不是30度,而是-60度。这是完全正确的,因为我们有(-90+30)=-60度。

上述的例子中的信号采样率为1024,用512个数据点表示,因而,我们有0.5s的数据。因此,当我们用FFT进行傅立叶分析时,频谱图中的频率间隔为2Hz。这是一个基本关系:如果FFT分析的数据长度为T秒,那么频率间隔为1/THz。

选择FFT的数据块大小为N,这将决定用于分析的信号有效长度。如果选择FFT分析的数据点为256,采样率为1024,那么,我们用于分析的信号有效长度将为1/4秒,频率间隔将是4Hz。

因为我们处理的工程分析信号是测量物理事件的信号,显然,设置频率间隔更明智,而不是任意选择FFT分析数据点数,而这个参数与我们测量的物理问题关系不大。因此,通常设置的是频率间隔。 “不精确的”频率成分

在上面这个例子中,正弦波的频率刚好是频率间隔的整数倍。这是特定选择的结果。因为我们知道0.5s的数据给定的频率间隔为2Hz。现在,假设我们有一个正弦信号像最初的64Hz,但频率是63Hz。此时,信号的频率成分不再是频率间隔的整数倍,会发生什么情况?从时域上看,很难看出有任何的差异,但实际上这个明显的差异来自于傅立叶分析的结果。63Hz,0相位,单位幅值的正弦波的FFT结果如下图所示。

图5 63Hz的FFT结果

注意到这个结果不再像图4那样的尖钉,而是一个顶部被削掉的“尖钉”。在62Hz和64Hz处,幅值几乎相同,但不是0.5,而是约为0.32。进一步,相位在62Hz是0,在64Hz是180度。傅立叶分析告诉我们我们有一个复合的信号,两个主要的正弦波是62和64Hz,其幅值为0.32,相位分别为0和180度。而实际上,我们知道信号是一个63Hz的单频正弦波。

如果我们将64Hz和63Hz的正弦波的FFT结果进行叠加,如下图所示,可以看出二者有明显的不同。

图6 叠加63Hz和64Hz信号的FFT结果重叠

这一点表明,当你解释说明正弦波的FFT结果时,你必须小心,因为显示的结果将依赖于信号的实际频率与“测量的”频率之间的关系。在这两个例子中,虽然幅值变化显著,但是如果你比较整个频率范围内频谱的RMS值,那么64Hz给出的RMS为0.707107,63Hz给出的RMS值为0.704936.

以上的结果是用FFT算法获得的。对于FFT而言,频率间隔是信号长度的函数。考虑到现代PC机的计算速度,我们也可以使用原始的直接傅立叶变换方法(Direct Fourier Transform, DFT)。DFT允许我们去选择起始频率、结束频率和频率间隔。当然,DFT比FFT要慢得多。现在选择从40Hz到80Hz的区间,步长为0.1Hz的结果如下图所示的连续曲线。带*的标识为相应的FFT分析结果。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4