news 2026/6/11 3:10:29

信号老司机的日常离不开时频图这玩意儿,毕竟光看时域波形就像看天书,频域谱线又丢失了时间信息。今天手把手整几个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/6/10 5:33:18

Informed RRT*实现椭圆启发式采样

我来为您添加Informed RRT*功能&#xff0c;在找到第一条路径后使用椭圆采样来加速收敛。以下是需要新增的函数和修改&#xff1a; 以下代码只含新增的部分 class RRTStar { private:// 在私有成员变量中添加bool pathFound;double bestPathCost;std::shared_ptr<Node> g…

作者头像 李华
网站建设 2026/6/9 19:32:04

27.MPSOC FPGA 驱动PCF8574

上一篇记录了AHT20,本篇记录下PCF8574&#xff0c;原理类似&#xff1a;#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/i2c-dev.h> #include <errno.h> …

作者头像 李华
网站建设 2026/6/11 6:18:07

通信系统仿真:数字调制与解调技术_(28).Simulink通信系统仿真

Simulink通信系统仿真 1. Simulink概述 1.1 Simulink简介 Simulink是MATLAB的一个附加产品&#xff0c;主要用于动态系统建模、仿真和分析。Simulink提供了一个图形用户界面&#xff08;GUI&#xff09;&#xff0c;使用户可以通过拖放操作来构建复杂的系统模型。在通信系统仿真…

作者头像 李华
网站建设 2026/6/9 15:27:54

论文AIGC率太高?5个超实用降AI工具分享,AI率降低80%以上

最近身边好多同学都在为论文的AI率头疼。明明自己认真改过好几遍了&#xff0c;查重系统还是显示AIGC率爆表&#xff0c;导师那关根本过不去。现在用AI工具辅助确实提升了效率&#xff0c;但怎么让内容更“人性化”&#xff0c;避免被系统标红&#xff0c;这才是关键。 我自己试…

作者头像 李华
网站建设 2026/6/11 9:14:49

团队合并与拆分的判断标准

团队合并与拆分的判断标准&#xff0c;核心是服务于组织的战略目标、效率和敏捷性。合并的判断标准主要基于“协同增效”和“规模效益”&#xff0c;当多个团队目标高度一致、资源重叠或需要集中力量办大事&#xff08;如攻坚核心项目&#xff09;时&#xff0c;应考虑合并。 而…

作者头像 李华