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

news2024/12/26 10:54:16

目录

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

什么是频谱泄漏?

解决频谱泄漏问题的方法

主瓣和旁瓣

窗函数介绍

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

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

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.coloradmin.cn/o/827443.html

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

相关文章

docker 保存和载入镜像

查看本机docker镜像 docker images保存镜像 docker save -o /home/space/work1/docker_qnx7.1.tar.gz a01ee6d74c36复制镜像到其他服务器 scp /home/space/work1/docker_qnx7.1.tar.gz XXXIP:/home/dell/work1/登录新 服务器操作 docker load -i docker_qnx7.1.tar.gz载入后…

滇医通微信小程序分析笔记

注意 本文章仅供学习交流使用,如果你是铁粉你就会知道博主之前发布过一篇相关的文章,但是由于代码涉及到法律相关所以就隐藏了,两年的时间过去了,因为女朋友已经早早安排上了,所以就搁置了,本次不做代码分…

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘:实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘:实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证(第一次连接需要认证)2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…

Vue3和typeScript路由传参

1 params传的参数,页面刷新就消失,而query传的参数,页面刷新还会存在,所以通常用query。 query传参 跳转页面:拿到router对象,调用push方法做跳转. import { useRoute,useRouter} from "vue-router"; export default…

SAP自建表日志

文章目录 1.在表里加上日志记录字段1.1 加入日志结构1.2 在代码中调用记录日志通用函数1.3 在SM30里面记录日志1.4 缺点1.5 优点 2.表技术设置-日志数据更改2.1 RZ10或者RZ11修改系统参数2.2 设置表的属性2.3 查询日志2.4 缺点2.5 优点 3 SCDO文档对象3.1 勾选相应字段-数据元素…

Redis的订阅者和发布者模式、主从双备和密码认证

四、Redis的订阅者和发布者模式、主从双备和密码认证 1、Redis的订阅者和发布者模式 两个数据库,一个是10,一个是15。订阅频道: 向频道推数据: 接收到数据: 2、redis的高可用(HA)主从双备 模拟…

C++——类与对象(中)

目录 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数取地址及const取地址操作符重载 1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时…

使用树莓派picow和drv8833驱动直流电机

raspberry pico w引脚图 1. 准备工作 板子编辑器raspberry pico wmicropython(thonny编辑器) 最新的raspberry pi pico w系统包下载地址。 点亮板载led灯 需要注意的是pico的板载led灯是GPIO25引脚,picow的板子led灯则直接用Pin包的&qu…

【1++的C++初阶】之继承

👍作者主页:进击的1 🤩 专栏链接:【1的C进阶】 文章目录 一,什么是继承?二,基类和派生类对象赋值转换三,派生类的默认成员函数四,继承与友元,静态成员五&…

Prometheus服务器、Prometheus被监控端、Grafana、Prometheus服务器、Prometheus被监控端、Grafana

day03 day03Prometheus概述部署Prometheus服务器环境说明:配置时间安装Prometheus服务器添加被监控端部署通用的监控exporterGrafana概述部署Grafana展示node1的监控信息监控MySQL数据库配置MySQL配置mysql exporter配置mysql exporter配置prometheus监控mysql自动…

uni-app引用外部图标库(阿里矢量图)

uni-app引用外部图标库(阿里矢量图) 作为前端程序员,nui-app是必备的,但是有时候内置的图标,组件又不完全满足,这里就可以引进外部图标,这里引用的是阿里矢量图标 第一步,在项目目…

(树) 剑指 Offer 32 - III. 从上到下打印二叉树 III ——【Leetcode每日一题】

❓剑指 Offer 32 - III. 从上到下打印二叉树 III 难度:中等 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推…

JVM深入 —— JVM的体系架构

前言 能否真正理解JVM的底层实现原理是进阶Java技术的必由之路,Java通过JVM虚拟机的设计使得Java的延拓性更好,平台无关性是其同时兼顾移动端和服务器端开发的重要特性。在本篇文章中,荔枝将会仔细梳理JVM的体系架构和理论知识,希…

547. 省份数量

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一…

026 - sum()函数

SUM() 函数: SUM 函数返回数值列的总数(总额)。 SQL SUM() 语法: SELECT SUM(column_name) FROM table_name -- 实际操作(计算salary总额) : SELECT SUM(salary) FROM employee; -- 查询ti…

代码随想录—力扣算法题:704二分查找.Java版(示例代码与导图详解)

版本说明 当前版本号[20230802]。 版本修改说明20230802初版 目录 文章目录 版本说明目录数组数组理论基础二分查找思路左闭右闭[left, right]左闭右开[left, right)两种方法的区别总结 数组 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便…

Python集成开发环境IDE:Spyder自动换行、函数列表outline、代码折叠

Spyder是一个用PythonQt编写的集成开发环境,包含许多有用的函数和工具。以下是一些常用功能: 变量浏览器:可以动态交互并修改变量,可以进行绘制直方图、时间序列,编辑日期框架或Numpy数组,对集合进行排序&…

100 个鲜为人知的 Python 高级技巧 0-20

100 鲜为人知的 Python 功能 这篇文章是为那些每天使用 Python,但从未真正坐下来通读所有文档的人准备的。 如果您已经使用 Python 多年,并且知道足够多的知识来完成工作,那么为了发现一些新技巧而通读几千页的文档可能不是明智之举。 因此&a…

IPC进程间通信探索——管道的原理与特点

🤣 爆笑教程 👉 《看表情包学Linux》 🔥 CSDN 累计订阅量破千的火爆 C/C 教程的 2023 重制版,C 语言入门到实践的精品级趣味教程。了解更多: 👉 "不太正经" 的专栏介绍 ← 试读第一章订阅链接&am…

Babel编译与Webpack

目录 Babel初识BabelBabel 使用方式使用 Babel 前的准备工作 WebpackWebpack介绍Webpack初体验Webpack核心概念入口(entry)出口(output)加载 (loader)插件(plugins) Babel Babel官网: https://babeljs.io/…