窗函数是频谱分析中一个重要的部分,CoCo包含了所有通用的窗函数以及冲击测试中的受迫/指数(force/exponential)窗。 窗函数修正了由于信号的非周期性并减小了频谱中由于泄露而带来的测量不准确性。 快速傅里叶变换假定了时间信号是周期无限的。但在分析时,我们往往只截取其中的一部分,因此需要加窗以减小泄露。窗函数可以加在时域,也可以加在频域上,但在时域上加窗更为普遍。截断效应带来了泄漏,窗函数是为了减小这个截断效应,其设计成一组加权系数。例如,一个窗函数可以定义为: g(t)是窗函数,T是窗函数的时间 待分析的数据x(t)则表示为: x(t)=w(t)*x(t)' x(t)'表示原始信号x(t)表示待分析信号。 加窗在时域上表现的是点乘,因此在频域上则表现为卷积。卷积可以被看成是一个平滑的过程。这个平滑过程可以被看出是由一组具有特定函数形状的滤波器,因此,原始信号中在某一频率点上的能量会结合滤波器的形状表现出来,从而减小泄漏。基于这个原理,人们通常在时域上直接加窗。 大多数的信号分析仪一般使用矩形窗(rectangular),汉宁(hann),flattop和其他的一些窗函数。 矩形窗函数: 汉宁窗: 由于加窗计算中衰减了原始信号的部分能量,因此对于{zh1}的结果还需要加上修正系数。在线性谱分析中,一般使用幅度系数(amplitude correction),在功率谱中,一般使用能量系数(energy correction)。具体请看下以章节。 泄露效应 对于简单的信号,比如一个单频率的正弦波,泄露就表现为不在其频率点上仍然会有能量的出现。离其本身的频率越近的频率,泄露的情况越严重,而离的越远,则情况则会好一些。 泄露的情况在时域上对原始信号做截断的时候非常容易发生。如同图片上展示的,时域上明显的没有按其整周期截断,因此造成了频域上的能量泄露。 上图阐述了非整周期信号采样时造成泄露的理论原因。 如果一个信号由两个不同频率的正弦波叠加而成,则泄露可能使用户无法区分其各自的频率分量。如果它们的频率相差很多,而其中的一个分量的能量远大于另外一个,则能量小的那个频率可能xx会被从能量大的频率分量泄露过来的能量所覆盖。若它们的频率相近,则它们双方泄露的能量可能会使它们之间的频率点和它们原有频率点的能量保持一致,就是说,可能会使用户只看到一个频率峰值。 有两种方法可以避免泄露的发生。{dy}个方法是采集信号足够长,基本上可以覆盖到整个有效信号的时间跨度。这种方法经常在瞬态捕捉中被使用到,比如说冲击试验,如果捕捉的时间够长,捕捉到的信号可以一直包括了振动衰减为零的时刻。在这种情况下,可以不加窗函数。 第2种方法是对于信号的采样时间正好能和信号整周期倍数吻合,即一帧数据的长度正好是原始信号中频率的整数倍。比如一个正弦波的频率在1000Hz,因此采样频率就需要设到8000Hz..每个正弦周期有8个采样点。1024点的数据正好涵盖了8个整周期。在这种情况下,没有窗函数也可以避免泄露的情况。 以下的图片显示了一个1000Hz频率的正弦波的频谱,其中没有泄露。
下图显示了一个1010Hz的正弦波,但是其频率谱中有一个较宽的泄露情况。该频率谱在1010Hz以外的地方也有着明显的能量值。可以看到,泄露的能量总是围绕着其原始的峰值。
很多种的窗函数被设计出来以减小这种泄露情况,以下的图就展示了对1010Hz正弦波加floattop窗之后得到的功率谱。
加上floattop窗之后,泄露明显的减小。正弦频率和噪音可以被很好的区别开。但是,这个窗函数仍然使得频率点的估计不是那么的xx。在以下的章节中将讨论怎样选择不同的窗函数。 窗函数选择指南 如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数(在软件中可选择uniform)。但是如同刚刚讨论的那样,这种情况只是发生在时间足够长的瞬态捕捉和一帧数据中正好包含信号整周期的情况。 如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小。在这种情况下,需要选择一个主畔够窄的窗函数,汉宁窗是一个很好的选择。 如果测试的目的更多的关注某周期信号频率点的能量值,比如,更关心其EUpeak,EUpeak-peak,EUrms或者EUrms2,那么其幅度的准确性则更加的重要,可以选择一个主畔稍宽的窗,flattop窗在这样的情况下经常被使用。 对冲击实验的数据进行分析时,因为在数据帧开始段的一些重要信息会被一般的窗函数所衰减,因此可以使用force/exponential窗。Force窗一移去了数据帧末端的噪声,对激励信号有用。而exponential窗则确保响应信号在末端的振动衰减为零值。 如果被测信号是随机或者未知的,选择汉宁窗。 |