非平稳信号的时频表示-基于本征模态函数(MATLAB)

时频分析思想萌芽于匈牙利物理学家 Gabor 在 1946 年所提出的 Gabor 展开理论,随后以此为基础发展出著名的线性时频变换方法—短时傅里叶变换。短时傅里叶变换假设分析信号在有限时长内具有平稳特性,它首先将时间与频率均为有限支撑的窗函数与分析信号进行内积,然后在固定窗长内计算傅里叶变换,并通过窗函数在时间方向上的不断平移,最终得到短时傅里叶变换的时频表示结果。值得注意的是,短时傅里叶变换的窗函数长度是固定不变的,窗函数的初始长度一旦确定,整个计算过程中的时频分辨率也就固定下来,因此合理选择窗函数的初始长度就显得尤为重要。此外,对于瞬时频率变化剧烈的强时变信号来说,由于窗函数长度与信号瞬时频率的变化情况无关,在窗函数移动过程中,被窗函数所截断的信号并不一定满足平稳信号的假设条件,因此短时傅里叶变换难以用于强时变信号的处理分析之中。为了解决窗函数长度固定不变所带来的弊端,

Morlet于1984 年引入小波概念,由此开启了信号的多分辨率分析时代。此外,Mallet在 1989 年搭建起小波的多分辨率理论框架,并实现了小波变换的快速算法。相对于短时傅里叶变换来说,小波变换较为明显的改进是其采用了可变尺度的窗函数。具体而言,由于信号低频分量变化缓慢、单个频率成分波动周期较长,因此小波变换利用较宽的窗函数分析信号的低频成分;与之相反,由于信号高频分量变化剧烈、单个频率成分波动周期较短,小波变换则采用较窄的窗函数对信号的高频成分进行处理。总之,小波变换将窗函数的长度与信号本身的频带分布直接关联起来,所以它能较好的处理分析信号各个频带下的时频特征。

图片

基函数在时频分析中的作用好比一把“刻度尺”,其中心频率数值类似于尺子上的刻度,信号与基函数的内积操作可看作信号在基函数上的投影度量过程,因此不论是短时傅里叶变换还是连续小波变换,时频表示结果均是由分布于整个时频平面上的基函数对分析信号进行度量得到的。考虑到基函数尺度的重要性,两种线性时频分析方法的基函数将在时间-频率-尺度三维空间中进行比较,其中尺度大小与基函数在时频平面上的表现密切相关。根据海森堡-加博尔不定原理的描述,对于选定函数形式的基函数来说,其时间宽度与频带宽度的乘积为一个常数,具体表现为基函数在时频平面上所占据的面积一定,所以较小尺度的基函数具有较小的时间宽度和较大的频带宽度,这意味着在度量分析信号时具有较高的时间分辨率和较差的频率分辨率,对于大尺度基函数而言,情况正好相反。

短时傅里叶变换的策略是根据经验选定一个较为合适的初始尺度,所有的基函数均分布于三维空间中的同一个尺度截面下,通过改变基函数的中心频率实现对分析信号的频率定位;小波变换的策略则是首先选择一个母小波基函数,然后通过拉伸或压缩操作实现母小波基函数尺度上的改变,因此小波变换的基函数分布于三维空间中不同的尺度截面,而基函数尺度的变化实现了对分析信号的频率定位。

由于没有考虑信号本身瞬时频率变化率的影响,小波变换事先在时频平面上为不同频段划定不同尺度基函数的做法不一定是合理的。

图片

上图展示了一种构造信号的时频表示结果,其瞬时频率不断地增大而瞬时频率变化率却不断地减小,因此该构造信号低频成分需要较小尺度的基函数来分析,其高频成分则需要较大尺度的基函数来分析。对于小波变换来说,不论母小波基函数的尺度如何选择,均不能满足上述要求。为此,有学者提出一种衡量时频能量集中程度的指标,通过调整基函数尺度和 Chirprate 两个参数使得该指标在每个时频点处均达到最优,进而发展出最初的自适应线性时频变换方法,但其计算成本较大,不适合用于工程实践之中。

鉴于此,采用基于本征模态函数的方法对非平稳信号进行时频表示,运行环境为MATLAB 2018。

clear
close all
clc

[y,fs] = audioread('Little_star_by_Alice.mp4');

figure
plot(y(fs*21:fs*23))

sound(y(fs*21:fs*23),fs)
y=y(fs*21:fs*23);

%% Spectrogram
figure
tic
pspectrum(y,fs,'spectrogram','FrequencyLimits',[0,2000])
time_Spectrogram=toc;
title('')
hold on
plot3(0.7959,0.523,1,'xr','markersize',40,'linewidth',5)
plot3(0.22,0.523,1,'xr','markersize',40,'linewidth',5)
plot3(1.265,0.784,1,'xk','markersize',40,'linewidth',5)
plot3(1.82,0.784,1,'xk','markersize',40,'linewidth',5)
legend('Do = 523 Hz','Do = 523 Hz','Sol = 784 Hz','Sol = 784 Hz')
axis tight
set(gcf,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gca,'fontsize', 30);

%% Spectrogram in 3D
figure
pspectrum(y,fs,'spectrogram','FrequencyLimits',[0,2000])
title('')
axis tight
view(330,67)
set(gcf,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gca,'fontsize', 30);


知乎学术咨询:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

图片

图片

图片

图片

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

973. 最接近原点的 K 个点-k数组维护+二分查找

973. 最接近原点的 K 个点-k数组维护二分查找 给定一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点,并且是一个整数 k ,返回离原点 (0,0) 最近的 k 个点。 这里,平面上两点之间的距离是 欧几里德距离&#…

Linux修炼之路之进程概念,fork函数,进程状态

目录 一:进程概念 二:Linux中的进程概念 三:用getpid(),getppid()获取该进程的PID,PPID 四:用fork()来创建子进程 五:操作系统学科的进程状态 六:Linux中的进程状态 接下来的日子会顺顺利利&#xf…

【MySQL备份】Percona XtraBackup加密备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 2.4.生成加密密钥 2.5.配置加密密钥文件 3.加密备份 4.优化加密过程 5.解密加密备份 6.准备加密备份 7.恢复加密备份 7.1.使用rsync进行恢复 7.2.使用xtrabackup命令恢…

crewAI实践过程中,memory规避openai的使用方法以及(windows下xinferece框架使用踩过的坑)

问题: 在使用crewAI开发项目的过程中,memory开启后报错:openai key is fake 经代码核查,其默认使用了openai的embedding模型。 解决方法 经查阅资料,可以参考其本地部署llm的方法。 本地部署模型可以使用xinference…

人工智能导论速成笔记

文章目录 前言考试题型第一章、人工智能导引 (10分 )课后习题第二章、Python基础 (10分 )*文件读写NumPy的使用Python绘图基础第三章、机器学习初步(15分 )逻辑回归分类(Logistic Regression)*,3.5线性回归预测(Linear Regression)*,3.6 、3.7、 3.8聚类 3.9第四章、自然语言…

【信息系统项目管理师】常见图表

作文里面的画图题用语言描述画图过程 合同 采购综合评分标准 责任分配矩阵 成本预算表 成本估算 成本管理计划 活动清单 活动属性 变更日志 问题日志 项目章程 自己再添加更多内容 甘特图 甘特图包含以下三个含义: 1、以图形或表格的形式显示活动; 2、…

uniapp封装虚拟列表滚动组件

uniapp封装虚拟列表滚动组件 这里用到一个列表&#xff0c;然后数据可能有很多很多…&#xff0c;一次性全部渲染到dom上会卡顿&#xff0c;很废性能&#xff0c;于是用了这个虚拟列表就变丝滑很多很多。 组件mosoweInventedList 代码&#xff1a; <!-- 虚拟滚动列表组件&a…

常见VPS主机术语有哪些?VPS术语解析

常见VPS主机术语有哪些&#xff1f;本期为大家解析一下我们常见到的听到的VPS专业术语&#xff0c;帮助大家更轻松的了解VPS主机相关知识。 常见VPS主机术语 Apache – 世界上最流行的 Web 服务器软件。 CentOS – 旨在提供基于 Red Hat Enterprise Linux 的企业级操作系统的…

常微分方程算法之编程示例七-两点混合边值问题(打靶法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用打靶法求解两点混合边值问题,打靶法的原理及推导思路请参考: 常微分方程算法之“两点边值问题”求解-CSDN博客https://blog.csdn.net/L_peanut/article/details/137449287 研究问题为

学习笔记(linux高级编程)9

void pthread_cleanup_push(void (*routine)(void *)&#xff0c; void *arg); 功能&#xff1a;注册一个线程清理函数 参数&#xff0c;routine&#xff0c;线程清理函数的入口 arg&#xff0c;清理函数的参数。 返回值&#xff0c;无 void pthread_cleanup_pop(int execute)…

Node.js学习(一)

Node.js安装与入门案例&#xff1a; 需求&#xff1a;点击按钮&#xff0c;请求本地目录指定文件的内容&#xff0c;并显示在页面上 刚入门肯定想着直接写相对路径请求指定路径数据就行了&#xff0c;可是会发现不行。 网页运行在浏览器端&#xff0c;通常后续要发布&#xf…

大模型应用开发实战基础

大模型应用开发实战基础 1. 背景 大模型如日中天&#xff0c;各行各业都受它影响&#xff0c;但是作为程序员&#xff0c;除了让它翻译代码不知道用它干什么&#xff0c;就像是拿着锤子的木匠&#xff0c;找不到钉子在哪。一边听着别人说2024是AI元年&#xff0c;一边又不知所…

数组-二分查找

二分查找 leetcode704 /*** param {number[]} nums* param {number} target* return {number}*/ var search function(nums, target) {let left 0, right nums.length - 1;while (left < right) {const mid Math.floor((right - left) / 2) left;const num nums[mid]…

【antd + vue】表格行合并,同时使用插槽

一、需求说明 表格中&#xff0c;如果一个学校有多个考试科目&#xff0c;则分行展示&#xff0c;其余列&#xff0c;则合并为一行展示&#xff0c;如图所示 二、需求分析 1、表格行合并 相当于有4行&#xff0c;其中1、2行是同一个学校包含不同考试科目及对应人次的数据&am…

生成式AI赋能金融信贷:减少信用评分偏差

信用评分在确定谁获得信贷以及以何种条件获得信贷方面发挥着关键作用。然而&#xff0c;尽管这一点很重要&#xff0c;但传统的信用评分系统长期以来一直受到一系列关键问题的困扰——从偏见和歧视&#xff0c;到有限的数据考虑和可扩展性挑战。例如&#xff0c;一项针对美国贷…

1:25万基础电子地图(西藏版)

我们为你分享过四川版、云南版、江西版、贵州版、重庆版和青海版的1比25万基础电子地图&#xff0c;现在再为你分享西藏版的电子地图。 如果你需要西藏版的1比25万基础电子地图&#xff0c;你可以在文末查看该数据的领取方法。 基础电子地图西藏版 西藏版1:25万基础电子地图…

Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

一、项目要求 实现自定义私有协议&#xff0c;如&#xff1a;pc端产生数据&#xff1a;02 56 38 &#xff0c;“02”代表要发送数据的个数&#xff0c;“56”“38”需要写进RAM中。当按键信号到来时&#xff0c;将“56”“38”读出返回给PC端。 二、信号流向图 三、状态…

FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟

原文链接&#xff1a;FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607618&idx2&sn5132fb8bfcbd02c2be308f6c6304c6d2&chksmfa8264a5cdf5edb3226d1b0597bb6c39f867601b961b…

[开源软件] 支持链接汇总

“Common rules: 1- If the repo is on github, the support/bug link is also on the github with issues”" label; 2- Could ask questions by email list;" 3rd party software support link Note gcc https://gcc.gnu.org openssh https://bugzilla.mindrot.o…

Web3 ETF 的软件开发框架

Web3 ETF 的软件开发框架主要包含以下几个方面&#xff0c;需要说明的是&#xff0c;Web3 ETF 仍处于早期发展阶段&#xff0c;相关技术和标准尚未成熟。在开发 Web3 ETF 时&#xff0c;需要谨慎评估风险&#xff0c;并做好安全防范措施。北京木奇移动技术有限公司&#xff0c;…