首页 > 其他分享 >数据截断、频谱泄漏与窗函数的选择

数据截断、频谱泄漏与窗函数的选择

时间:2023-08-07 11:31:37浏览次数:32  
标签:频谱 泄漏 旁瓣 函数 信号 主瓣 截断 频率


目录

数据截断、频谱泄漏与窗函数的选择

什么是频谱泄漏?

解决频谱泄漏问题的方法

主瓣和旁瓣

窗函数介绍

窗函数解决频谱泄漏问题的原理

窗函数的种类、特点和如何使用

1、矩形窗

2、三角窗

3、汉宁窗

4、海明窗

5、布莱克曼窗

6、巴特窗:

7、凯塞窗:

8、平顶窗

9、高斯窗

10、余弦坡度窗

窗的选择

加窗函数的原则

因而,窗函数的选择一般原则如下:

窗函数的典型频谱特征


数据截断、频谱泄漏与窗函数的选择

什么是频谱泄漏?

        所谓频谱泄漏,就是信号频谱中各谱线之间相互影响,使测量结果偏离实际值,同时在谱线两侧其他频率点上出现一些幅值较小的假谱。简单说来,造成频谱泄漏的原因是采样频率与信号频率不同步,造成周期采样信号的相位在始端和终端不连续。

解决频谱泄漏问题的方法

  • 1、增加数据采样点数,可减少泄漏,其实质是减小矩形窗主瓣的宽度。
  • 2、提高信号的采样频率也可减少泄漏。

        上述两种方法,与增加的数据处理量相比,对泄漏的改善是极其有限的。文献提出了窗函数内插技术选择窗函数的基本原则是要求其主瓣窄,边瓣小,可能使这两个要求得到兼顾,通常选择汉宁窗。从时域看,加汉宁窗实际上就是使周期采样信号的起始点和终止点的相位为 0,克服由于频率波动造成的采样信号相位在始端和终端不连续的现象,但任何窗函数都不能解决主瓣处偏离零值点而导致的误差,所以其对泄漏的减小也是有限的。

主瓣和旁瓣

所谓主瓣,是指最大辐射的波束,主瓣旁边的小波束叫做旁瓣。

窗本身为一个连续的频谱,有一个主瓣,若干旁瓣。旁瓣的高度显示了加窗函数对于主瓣周围频率的影响。而主瓣越窄越好,即能量尽可能集中在主瓣内,以提高谱估计时的频域分辨率和减小泄漏。

窗函数介绍

窗函数解决频谱泄漏问题的原理

       截取有限时间序列的过程叫作信号截断。信号截断分为周期截断和非周期截断。在非周期截断后进行周期延拓,信号不再是一个周期信号,引入了不可预测的其他频率成分,频谱在整个频带内产生了拖尾现象,频谱发生了畸变,之前集中在一个频率的能量被分散到两个较宽的频带中去了,也就是我们所说的频率泄漏。

为了减少频谱能量泄漏,信号截取处理过程中应用不同的截取函数对信号进行截断处理,将此过程中使用的截断函数称为窗函数,简称为窗,例如:矩形窗、平顶窗、汉宁窗、指数窗等。加窗的实质是窗函数与原始的时域信号相乘的过程,使相乘得到的信号更好地满足傅里叶变换的周期性要求。

窗函数的种类、特点和如何使用

1、矩形窗

1、矩形窗:主瓣比较集中(窄)是矩形窗的优点,缺点则是旁瓣较大且有负旁瓣,因此矩形窗变换中易产生高频干扰和泄漏,严重情况下会出现负谱现象。由于其频率识别精度最高,而幅值识别精度最低,所以矩形窗不是一个理想的窗。但是,如果仅要求精确读出主瓣频率,而不考虑幅值识别精度,例如测量物体的自振频率等,则可选用矩形窗。

2、三角窗

2、三角窗:三角窗主瓣宽约等于矩形窗的2倍,旁瓣较小,且无负值,衰减较快,但主瓣宽度教大,且使信号产生畸变。

3、汉宁窗

3、汉宁窗(升余弦窗):频率曲线主瓣加宽并降低,旁瓣则显著减小,从减小泄漏上看,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,意味着频率分辨力下降,然而汉宁窗泄漏、波动都减小了,并且选择性也提高。汉宁窗是很有用的窗函数,如果测试信号有多个频率分量,频谱表现十分复杂,且测试的目的更多关注频率点时,需要选择汉宁窗。如果被测信号是随机或者未知的,选择汉宁窗。

4、海明窗

4、海明窗(改进的升余弦窗):海明窗与汉宁窗类似,频率曲线主瓣加宽并降低,旁瓣则显著减小,但最大旁瓣较小,旁瓣的能量分布更加平均,海明窗的第一旁瓣衰减速度大于汉宁窗,当频率成分较为相近时,海明窗能够比更好的将其区分。

5、布莱克曼窗

5、布莱克曼窗:二阶升余弦窗,主瓣宽,旁瓣比较低,但等效噪声带宽比汉宁窗要大一点,波动却小一点。频率识别精度最低,但幅值识别精度最高,适合检测强信号中的弱分量,有更好的选择性。

应用:常用来检测两个频率相近幅度不同的信号。

6、巴特窗:

7、凯塞窗:

8、平顶窗

8、平顶窗:平顶窗在频域时有非常小的通带波动,主瓣的宽度和幅度更大,最大旁瓣衰减速度非常快,旁瓣的能量更低,更平均。使得主要能量集中在主瓣上,由于在幅度上有较小的误差,所以这个窗可以用在校准上。

9、高斯窗

9、高斯窗:是一种指数窗。主瓣较宽,故而频率分辨力低;无负的旁瓣,第一旁瓣衰减达-55dB。常被用来截短一些非周期信号,如指数衰减信号等。

应用:对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

10、余弦坡度窗

10、余弦坡度窗:余弦坡度窗是振动信号处理中常用的一种窗函数,是由矩形窗加汉宁窗组合而成。它的窗函数曲线大部分持续时间里很平,如同矩形窗那样,之后加一段汉宁窗,平滑衰减到阶段处。余弦坡度窗的有点介于矩形窗和汉宁窗之间。因为矩形窗的频率主瓣窄,谱值衰减小,而汉宁窗的旁瓣小,主瓣宽。因此,把两者结合起来取长补短,达到既有较窄频率主瓣,又有较好抑制谱泄漏效果。

窗的选择

要选择加窗函数,必须先估计信号的频率成分。

  1. 如果信号中干扰频率分量较强,与感兴趣频率分量相距较远,那么就应选择具有高旁瓣下降率的平滑窗。
  2. 如果强干扰频率分量与感兴趣分量相距较近,那么就应选择具有低最大旁瓣的窗。(布莱克曼窗
  3. 如果感兴趣频率包含两种或多种很距离很近的信号,这时我们最好选用具有窄主瓣的平滑窗。(汉宁窗)
  4. 如果一个频率成分的幅值精度比信号成分在某个频率区间内的位置更重要,选择主瓣能量集中的窗,如平顶窗。(平顶窗)
  5. 如果信号频谱较平或频率成分较宽可以不使用窗。(矩形窗)

加窗函数的原则

  加窗函数时,应使窗函数频谱的主瓣宽度应尽量窄,以获得高的频率分辨能力;旁瓣衰减应尽量大,以减少频谱拖尾,但通常都不能同时满足这两个要求。各种窗的差别主要在于集中于主瓣的能量和分散在所有旁瓣的能量之比。窗的选择取决于分析的目标和被分析信号的类型。一般说,有效噪声频带越宽,频率分辨能力越差,越难于分清有相同幅值的邻近频率。选择性(即分辨出强分量频率邻近的弱分量的能力)的提高与旁瓣的衰减率有关。通常,有效噪声带宽窄的窗,其旁瓣的衰减率较低,因此窗的选择是在二者中取折衷。

因而,窗函数的选择一般原则如下:

  1. 如果截断的信号仍为周期信号,则不存在泄漏,无须加窗,相当于加矩形窗。
  2. 如果信号是随机信号或者未知信号,或者有多个频率分量,测试关注的是频率点而非能量大小,建议选择汉宁窗,像LMS Test.Lab中默认加的就是汉宁窗。
  3. 对于校准目的,则要求幅值精确,平顶窗是个不错的选择。
  4. 如果同时要求幅值精度和频率精度,可选择凯塞窗。
  5. 如果检测两个频率相近、幅值不同的信号,建议用布莱克曼窗。
  6. 锤击法试验力信号加力窗,响应可加指数窗。

       为了减少泄漏,可采用不同的窗函数来进行信号截取,因而,泄漏与窗函数的频谱特征相关的。窗函数的典型频谱特征如下图所示:

 

数据截断、频谱泄漏与窗函数的选择_时域

窗函数的典型频谱特征

  各种窗函数频谱特征的主要差别在于:主瓣宽度(也称为有效噪声带宽,ENBW)、幅值失真度、最高旁瓣高度和旁瓣衰减速率等参数。加窗的主要想法是用比较光滑的窗函数代替截取信号样本的矩形窗函数,也就是对截断后的时域信号进行特定的不等计权,使被截断后的时域波形两端突变变得平滑些,以此压低谱窗的旁瓣。因为旁瓣泄露量最大,旁瓣小了泄露也相应减少了。不同的窗函数具有不同的频谱特征,下表列出了一些常用窗函数的特征。

数据截断、频谱泄漏与窗函数的选择_时域_02

       主瓣宽度主要影响信号能量分布和频率分辨能力。频率的实际分辨能力为有效噪声带宽乘以频率分辨率,因此,主瓣越宽,有效噪声带宽越宽,在频率分辨率相同的情况下,频率的分辨能力越差。如下图所示,红色为平顶窗(3.77∆f),黑色为汉宁窗(1.5∆f),蓝色为信号频率,可以明显地看出,主瓣越窄,频率分辨越准确。对于窗函数宽的主瓣而言,如果有邻近的小峰值频率,则越难辨别出来。

数据截断、频谱泄漏与窗函数的选择_信号处理_03

       旁瓣高低及其衰减率影响能量泄漏程度(频谱拖尾效应)。旁瓣越高,说明能量泄漏越严重,衰减越慢,频谱拖尾越严重。对50.5Hz(频率分辨率为1Hz)的信号分别施加矩形窗(红色)、汉宁窗(绿色)和平顶窗(蓝色),用对数显示幅值,加窗后的结果如下图所示。从图中可以看出,矩形窗的频谱拖尾更严重。

数据截断、频谱泄漏与窗函数的选择_信号处理_04

       相对而言,如果旁瓣能量较小,高度趋于零,使得信号能量相对集中于主瓣,则较为接近真实的频谱。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

标签:频谱,泄漏,旁瓣,函数,信号,主瓣,截断,频率
From: https://blog.51cto.com/oliverHuang/6991991

相关文章

  • Java的内存泄漏
    Java的内存泄漏java的一个重要优点就是通过垃圾收集器(GarbageCollection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也......
  • 为什么直流分量导致归一化频谱变小?
    直接举一个例子。假设有一个包含N个样本的信号,表示\(x[n]\),其中\(n=0,1,2,...,N-1\)。信号的DFT表示\(X[k]\),其中\(k=0,1,2,...,N-1\),对应信号在不同频率上的分量,DFT的计算公式如下:\[X[k]=\sum\nolimits_{n=0}^Nx[n]\cdote^{-j(2\pi/N)\cdotk\cdotn}......
  • 常见的js内存泄漏
    1、 意外的全局变量。未被声明的变量,会被挂在window对象下,不能及时的销毁。2、计时器和回调函数timers。定时器setInterval或者setTimeout在不需要使用的时候,没有被clear,导致定时器的回调函数及其内部依赖的变量都不能被回收,这就会造成内存泄漏。3、DOM泄漏。(1)给DOM对象添加的属......
  • golang channel 未关闭导致的内存泄漏
    现象某一个周末我们的服务oom了,一个比较重要的job没有跑完,需要重跑,以为是偶然,重跑成功,因为是周末没有去定位原因又一个工作日,它又oom了,重跑成功,持续观察,job在oom之前竟然占用了30g左右(这里我们的任务一个数据量都在内存中计算,所以这里数据量大一点)应用使用30g肯定是不正常......
  • 频谱仪基础(二)--- 超外差频谱分析仪实现
    在上一篇文章中,已经对频谱仪的基本原理进行了阐述。在下面的一节中,给出基于超外差原理的频谱分析仪的组件,并且已9kHz~3GHz/7GHz频谱仪设计构架作为现代频谱分析仪的实际实现分析。频谱仪是一个由各个重要的组件构成复杂的系统,包括RF、IF、低频、数据采集和处理显示部分,同时包括必......
  • 频谱仪基础(一)--- 频谱仪的架构
    前言无线电通信中最常见的测量任务之一是测试信号的频域特性。因此频谱分析仪作为更广泛和更宽的RF测量工具,其覆盖频率范围高达40GHz及以上,频谱分析测量,几乎可以用于所有无线应用开发、生产、安装和有线通信维护工作。随着移动通信的发展,一些主要关键指标,例如显示的平均噪声电......
  • 频谱仪基础(三)--- RF前端处理
     在频谱仪基础(二)讲述了高低中频的选择,对于9kHz到7GHz信号前端处理,我们需要分段进行处理,9kHz到3GHz信号采用高中频的方式,3GHz到7GHz采用低中频的方式直接将信号频谱搬移到低中频。1.9kHz到3GHz信号前端处理在图1所示中,第一个IF设置为3476.4MHz。将输入频率范围从9kHz到3GHz的输......
  • .NET 内存泄漏分析
    目的相信很多小伙伴,除了编码以外,还经常需要和服务器打交道,处理服务器警报,这些警报中最常见的问题之一就是内存泄漏,大部分时候这个问题很难通过传统的日志手段来定位,所以很多的小伙伴遇见了内存泄漏问题常常急的抓耳挠腮,一边百度(现在有了ChatGPT),一边连蒙带猜的尝试,运气好,完美定位,......
  • C++内存泄漏检测
    #pragmaonce#include<map>//TracerNew.hvoid*operatornew(size_tsize,constchar*file,longline);void*operatornew(size_tsize);voidoperatordelete(void*p);classTracerNew{ classTracerNewInfo { public: TracerNewInfo(constchar*......
  • VS2015 C++代码内存泄漏
    在可能泄漏的文件头部加入下面几行(保证malloc和new的泄漏都可以检测到)#define_CRTDBG_MAP_ALLOC#include<crtdbg.h>#ifdef_DEBUG//重载new运算符#definenewnew(_NORMAL_BLOCK,__FILE__,__LINE__)#endif程序运行起始位置:_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_C......