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

目录

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

什么是频谱泄漏?

解决频谱泄漏问题的方法

主瓣和旁瓣

窗函数介绍

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

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

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

https://img-blog.csdnimg.cn/8b652f01a04e4f86a7544a7580f89449.png

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内…

MySQL安装 找不到 MSVCP100.dll

安装mysql5.6.51时,出现由于找不到 MSVCP100.dll,无法继续执行代码。重新安装程序可能会解决此问题。 这应该是缺少VS运行库文件导致的,运行库就是支持大部分程序运行的基础,由于很多常用软件都是采用 Microsoft Visual Studio 编…

刷题笔记 day2

力扣 1089 复写零 思路:双指针 第一步:利用指针 cur 去记录最后一位要复写的数 , 利用指针 dest 指向最后一位数所要复写的位置; 实现过程:最开始 cur 指向0,dest 指向 -1 , 当arr[cur] ! …

【UEC++学习】UE网络 - Replication、RPC

1. UE网络架构 (1)UE的网络架构是SC(Server - Client)的模式,这种模式的优势:这种模式让所有客户端都在服务器端进行安全验证,这样可以有效的防止客户端上的作弊问题。 (2&#xff…

Python(五十六)列表元素的排序操作

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

数据结构初阶--栈和队列

目录 一.栈 1.栈的定义 2.顺序栈的功能实现 2.1.顺序栈的定义 2.2.顺序栈的初始化 2.3.顺序栈的判空 2.4.顺序栈的入栈 2.5.顺序栈的出栈 2.6.顺序栈的取栈顶元素 2.7.顺序栈的求栈的大小 2.8.顺序栈的销毁 2.9.完整程序 Stack.h Stack.c test.c 二.队列 1.队…

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存

Redis Cluster(Redis 集群)是 Redis 分布式解决方案的一部分,它旨在提供高可用性、高性能和横向扩展的功能。Redis Cluster 能够将多个 Redis 节点组合成一个分布式集群,实现数据分片和负载均衡,从而确保在大规模应用场…

session反序列化+SoapClientSSRF+CRLF

文章目录 session反序列化SoapClientSSRFCRLF前言bestphps revengecall_user_func()方法的特性SSRFCRLF组合拳session反序列化 解题步骤总结 session反序列化SoapClientSSRFCRLF 前言 从一道题分析通过session反序列化出发SoapClientSSRF利用CRLF解题 bestphp’s revenge 首…

基于方向编码的模板匹配算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ........................................................................... %选择移动个…

自适应巡航控制系统研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 据统计, 我国交通事故造成的伤亡人数每年超过10万人, 其中驾驶员人为原因 (疲劳、酒驾、误操作等) 所致事故逐渐升高.汽车交通…

pycharm——制作k线图

K 线图 Candlestick Candlestick - Kline_itemstyle from pyecharts import options as opts from pyecharts.charts import Klinedata [[2320.26, 2320.26, 2287.3, 2362.94],[2300, 2291.3, 2288.26, 2308.38],[2295.35, 2346.5, 2295.35, 2345.92],[2347.22, 2358.98, 23…

安装skywalking并集成到微服务项目

文章目录 一、前言二、介绍1. 架构 三、安装skywalking服务端四、启动skywalking服务端五、微服务项目开发注册中心网关服务商品服务订单服务支付服务测试 六、下载java客户端七、微服务集成skywalking客户端1. idea启动2. 命令行启动3. 集成效果 八、skywalking客户端配置1. 配…

Python高阶技巧 正则表达式

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。 简单来说,正则表达式就是使…

小程序学习(六):全局配置

1.全局配置文件及常用的配置项 全局配置-window 2.小程序窗口的组成部分 3.了解window节点常用的配置项 4.设置导航栏的标题 设置步骤:app.json->window->navigationBarTitleText 5.设置导航栏的背景色 背景颜色不支持red这种文字 6.设置导航栏的标题颜色 注意:navigat…

SpringBoot笔记:SpringBoot集成Dataway

文章目录 1、什么是 Dataway?2、主打场景3、技术架构4、整合SpringBoot4.1、maven 依赖4.2、初始化脚本4.3、整合 SpringBoot 5、Dataway 接口管理6、Mybatis 语法支持7、小结 1、什么是 Dataway? 官网地址:https://www.hasor.net/docs/guides/quickstart Da…

k8s kubeadm命令升级集群 从1.17升级到1.18

k8s kubeadm命令升级集群 从1.17升级到1.18 大纲 注意事项master节点执行升级命令master节点和node节点执行命令 注意事项 目标当前线上k8s集群版本是k8s1.17 想把k8s升级到1.18。注意k8s不能跨版本升级例如k8s1.17不能直接升级到k8s1.19,需要先升级到1.18才后向…

faac内存开销较大,为方便嵌入式设备使用进行优化(valgrind使用)

faac内存开销较大,为方便嵌入式设备使用进行优化,在github上提了issues但是没人理我,所以就搞一份代码自己玩吧。 基于faac_1_30版本,原工程https://github.com/knik0/faac faac内存优化: faac内存开销较大,为方便嵌入…

意外:WPS编程新工具,不用编程,excel用户:可以不用VBA啦

来来来,拓宽一下视野! 别总以为excel和WPS只能用VBA编程,也别总是想着ACCESS这些老生常谈的工具。其实对于电子表格高级用户来讲,不会VBA,不用ACCESS,也一样可以解决复杂问题或者高级应用。 尤其是WPS用户…

【腾讯云 Cloud Studio 实战训练营】CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!

CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手! 文章目录 CloudStudio体验真正的现代化开发方式,双手插兜不知道什么叫对手!前言出现的背景一、CloudStudio 是什么?二、CloudStudio 的特点三、CloudS…

PostgreSql 锁

一、概述 在 PostgreSQL 事务中提到,多个用户访问相同数据时可能出现脏读,不可重复度,幻读,更新丢失的问题,为解决这些问题,定义了不同的隔离级别,而隔离级别的具体实现,依靠的就是数…