news 2026/5/1 2:56:58

信号老司机的日常离不开时频图这玩意儿,毕竟光看时域波形就像看天书,频域谱线又丢失了时间信息。今天手把手整几个MATLAB时频分析代码,从入门到入土(误)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
信号老司机的日常离不开时频图这玩意儿,毕竟光看时域波形就像看天书,频域谱线又丢失了时间信息。今天手把手整几个MATLAB时频分析代码,从入门到入土(误)

时频图程序(小波时频,短时傅里叶变换,s变换) MATLAB程序

先搞个模拟信号热热身:

fs = 1000; % 采样率别太小气 t = 0:1/fs:1; f1 = 20; f2 = 100; signal = sin(2*pi*f1*t).*(t<0.5) + sin(2*pi*f2*t).*(t>=0.5); % 分段信号 noise = 0.5*randn(size(t)); % 加点佐料 x = signal + noise;

这信号前0.5秒20Hz,后0.5秒突变到100Hz,非常适合拿来折腾时频分析。

STFT暴力美学

短时傅里叶变换属于老牌劲旅,代码简单粗暴:

window = hamming(128); % 窗长别瞎搞 noverlap = 120; % 重叠量 nfft = 256; spectrogram(x,window,noverlap,nfft,fs,'yaxis') colorbar off; % 强迫症必改

关键参数就仨:窗长决定时频分辨率平衡(鱼与熊掌问题),noverlap影响滑动流畅度。有个坑要注意——窗太长会导致时间分辨率扑街,特别是像我们这个突变信号,可能捕捉不到精确的跳变时刻。

小波变换的千层套路

连续小波变换(CWT)更擅长捕捉突变:

[cfs,frq] = cwt(x,'amor',fs); % 用墨西哥帽小波 contour(t,frq,abs(cfs)) set(gca,'YScale','log') % 对数坐标更直观 colorbar title('小波时频图')

这里'amor'指的是解析Morlet小波。小波变换的尺度选择是门玄学,MATLAB的cwt函数已经帮我们自动计算了最佳尺度。注意颜色映射的绝对值代表能量强度,那些突然出现的亮斑就是信号突变的证据。

S变换的均衡术

ST算是STFT和小波的私生子:

[st_matrix, st_t, st_f] = st(x,fs); % 自建函数见下文 imagesc(st_t, st_f, abs(st_matrix)) axis xy; colormap(jet) % 反转Y轴 function [st_matrix, t, f] = st(x,fs) N = length(x); t = (0:N-1)/fs; f = (0:N/2-1)*(fs/N); st_matrix = zeros(length(f),N); for k = 1:length(f) sigma = 1/(2*pi*f(k)+eps); % 防止除零 window = exp(-(t - t(end)/2).^2 / (2*sigma^2)); st = fft(x .* window); st_matrix(k,:) = abs(st(1:N/2)); end end

这个自编S变换实现用了高斯窗,并且窗宽随频率自适应变化。注意sigma的计算加了eps防止频率为零时报错。相比STFT固定窗长,S变换在低频区用宽窗(频率分辨率高),高频区用窄窗(时间分辨率高),算是个端水大师。

实战对比

把三张时频图放一起看:

  • STFT在20Hz处拖尾严重(窗太长导致)
  • 小波在100Hz跳变时刻有更尖锐的过渡
  • S变换在低频区频率定位更准确

个人经验:处理振动信号首选STFT,检测信号突变用小波,搞地震信号分析试试S变换。但别死磕理论,多调参才是王道——有时候把窗长改个10个点,效果立竿见影。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 2:16:38

sklearn函数总结十一 —— 随机森林

纯手打&#xff0c;代码整理中&#xff0c;持续更新中^-^序号延用总结十18.1 随机森林算法核心思想随机森林属于集成学习中的 Bagging 类型。“森林”&#xff1a;由多棵决策树构成的“森林”&#xff0c;最终的预测结果由所有决策树共同决定&#xff08;例如&#xff0c;通过投…

作者头像 李华
网站建设 2026/4/19 0:08:56

直播回放 | IDMP 无问智推技术详解

在生产车间、设备集控室、运维指挥中心&#xff0c;每天都有成千上万条数据实时上传&#xff1a;温度、压力、转速、电流……这些数据&#xff0c;被系统精准地记录了下来&#xff0c;也被整整齐齐地存进了数据库。但真正的问题是&#xff1a; &#x1f50d; 谁在关注这些数据…

作者头像 李华
网站建设 2026/4/26 13:28:55

VDD_EXT低功耗设计指南:原理剖析与优化策略!

VDD_EXT的性能表现直接影响系统的电源完整性与能效比。在低功耗设计中&#xff0c;必须深入理解其供电机制、电压容限及动态响应特性&#xff0c;才能避免不必要的能量损耗。本文将从基础原理入手&#xff0c;系统梳理VDD_EXT的设计优化策略&#xff0c;为工程师提供实用参考。…

作者头像 李华
网站建设 2026/4/28 4:44:13

AI大模型学习全攻略:产品经理必看,程序员必备的实用指南

本文探讨AI大模型发展现状及对产品经理的影响&#xff0c;提供把握机遇的方法&#xff0c;包括技术理解、需求洞察、产品规划和跨团队协作。详细介绍学习路径&#xff1a;基础学习、编程技能、理论与实践、专业课程、社区参与和持续跟踪。同时提供学习路线、报告合集、经典书籍…

作者头像 李华
网站建设 2026/4/28 17:21:59

团队协作必备!SimpleMindMap + cpolar,思维导图随时共享

文章目录前言1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问前言 SimpleMindMap 是一款支持私有化部署的思维导图工具&#xff0c;能通过拖拽操作快速创建组织结构图、项目规划图等&…

作者头像 李华
网站建设 2026/4/28 9:53:56

【优化选址】基于遗传算法GA求解物流网络选址优化问题附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿真…

作者头像 李华