【20211206】【信号处理】时频分析 —— 短时傅里叶变换(STFT)
一、时频分析(JTFA)
分析时域可以得到信号随时间变化的信息,分析频域可以得到信号随频率变化的信息,这两者都只能分析时域或频域,而不能同时观察时域和频域。
时频分析是时频联合域分析的简称,是分析时变非平稳信号的有力工具,是一个同时观察时域、频域信息的工具。时频分析法提供了时间域和频率域的联合分布信息,清楚地描述了信号频率随时间变化的关系。
时频分析的基本思想是:设计时间和频率的联合函数,用它同时描述信号在不同时间和频率的能量密度或强度。
时间和频率的这种联合函数简称为时频分布。利用时频分布来分析信号,能给出各个时刻的瞬时频率和幅值。
常见的时频分布有:短时傅里叶变换、小波变换、希尔伯特黄变换等。
可以这么理解时频分析:图(a)是时域的一个时序信号,可以看出在 0~1s 信号频率低,1s 之后的信号频率增大;图(b)是该时序信号的频谱,能够看出该信号有两个主要频率,分别是 10Hz 和 20Hz;图(c)是该信号的时频图,横坐标是时间、纵坐标是频率,在 0~1s 的频率为 10Hz,1s 之后信号频率是 20Hz。
(参考:时频分析)
(参考:短时傅里叶变换)
二、短时傅里叶变换(STFT)
短时傅里叶变换是线性时频分析中的一种。
实现方式是:在时域用窗函数截断,对窗信号做傅里叶变换,即得到该时刻的傅里叶变换,不断地移动窗口的中心位置,即可得到不同时刻的傅里叶变换,这些傅里叶变换的集合就是短时傅里叶变换,得到的图形叫时频图,横坐标是时间,纵坐标是频率,z 轴是信号能量/功率。
短时傅里叶变换选用短窗口,会有较高的时间分辨率,但频率分辨率较差;选用长窗口,会有较高的频率分辨率,但时间分辨率就差。所以,在应用中要注意时窗和频窗宽度的折衷。
处理步骤:
(1)选择一个窗函数;
(2)截取窗长度的信号,并和窗函数相乘;
(3)进行 FFT;
(4)滑窗得到每个时刻的 STFT。
简单来说,短时傅里叶变换就是通过窗内的一段信号来表示某一时刻的信号特征,傅里叶变换就是先把一个函数和窗函数进行相乘,然后再进行一维的傅里叶变换,并通过窗函数的滑动得到一系列的频谱函数,所以最终得到一个二维的时频图。
(时频联合分析参考:时频联合分析)
(参考:信号处理 | 傅里叶变换、短时傅里叶变换、小波变换、希尔伯特变换、希尔伯特黄变换)
(参考:时频分析:短时傅里叶变换(1))
三、举个栗子
%% 参数设置
fs = 50; % 采样频率
L = 10; % 时间长度
t = 0 : 1/fs : L; % 时间坐标%% 生成信号
fsignal = 10; % 信号频率
A = 10; % 信号幅值
datalength = length(t);
s = A * sin(2 * pi * fsignal * t) + randn(1, datalength);numfft = 256; % fft 点数
f = (0 : numfft/2-1) / numfft * fs; % 频率(STFT 纵轴坐标) %% 滑窗进行 stft
winLen = 20;
stepLen = 2;
winFun = chebwin(winLen);
win_ind_packet = 1 : winLen;
s_STFT_dB = zeros(numfft/2, datalength);
cnt = 1;
while win_ind_packet(end) < datalengthsubData = s(win_ind_packet)';subDataWin = subData .* winFun;subDataWinFFT = fft(subDataWin, numfft, 1);subDataWinFFTPow = abs(subDataWinFFT(1:numfft/2)) .^ 2;subDataWinFFTPowdB = pow2db(subDataWinFFTPow); s_STFT_dB(:, cnt) = subDataWinFFTPowdB;win_ind_packet = win_ind_packet + stepLen;cnt = cnt + 1;
ends_STFT_dB(:, cnt+1:datalength) = nan(numfft/2, datalength-cnt); % 没有进行傅里叶变换的窗数据补nan%% 作图
packet_ind = 1 : datalength;
figure(2);
surf(packet_ind, f, s_STFT_dB, 'edgecolor', 'none'); colormap('jet'); axis('tight');
xlabel('时间'); ylabel('频率(Hz)'); title('信号s的时频图');
【20211206】【信号处理】时频分析 —— 短时傅里叶变换(STFT)相关推荐
- 数字信号处理——时频分析(短时傅里叶变换)
短时傅里叶变换的概念 背景: 傅里叶变换的局限性:在做傅里叶变换的时候,使用的是(-∞,∞)的时间信息来计算单个频率的频谱,所以傅里叶变换是一种全局性的描述,不能反映信号局部区域的信息,故如果信号在某 ...
- 现代信号处理——时频分析与时频分布(时频分布的基本理论)
短时Fourier变换.小波变换和Gabor变换三种线性的时频表示,它们使用时间和频率的联合函数(取线性变换形式)描述信号的频谱随时间的变化情况.同样地,也可以使用时间和频率的联合函数来描述信号的能量 ...
- matlab简单分析短时傅里叶变换STFT
华中科技大学<数字信号分析理论实践> 学习总结记录 短时傅里叶变换进行时频分析 Fs = 5120.0; dt = 1/Fs; N = 32768; df = 500.0/N; T = d ...
- 现代信号处理——时频分析与时频分布(Wigner-Ville分布)
一.Winger-Ville分布(WVD)定义 信号x(t)的自Wigner分布定义为其瞬时相关函数关于滞后的Fourier变换: Winger于1932年提出并用量子力学.1948年Ville应用于 ...
- matlab 小波变换_matlab小波工具箱实例(二):时频分析和连续小波变换
本文讲解matlab小波工具箱实例(二):时频分析和连续小波变换.目录如下: 链接:https://www.mathworks.com/help/wavelet/ug/time-frequency-a ...
- matlab 时频分析(短时傅里叶变换、STFT)
短时傅里叶变换,short-time fourier transformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足, ...
- matlab时频分析之短时傅里叶变换 spectrogram
matlab时频分析之短时傅里叶变换 spectrogram 短时傅里叶变换常用于缓慢时变信号的频谱分析,可以观察沿时间变化的频谱信号. 其优点如下图所示,弥补了频谱分析中不能观察时间的缺点,也弥补了 ...
- 时频分析方法总结:傅里叶级数及傅里叶变换、STFT 、小波变换、Wigner-Ville 分布
前言: 一.傅里叶变换的机理 一个能量无限的正弦信号和源信号乘积并求和得到某个频率下的系数,随着频率的增加,正弦信号改变,再次求得系数,依次构成了频谱图 傅里叶级数及傅里叶变换 https://blo ...
- 2021-05-10 Matlab短时傅里叶变换和小波变换的时频分析
Matlab短时傅里叶变换和小波变换的时频分析 简介 本文主要给定一小段音频,通过短时傅里叶变换和小波变换制作时频图.音频的采样率为44100, 短时傅里叶变换 在matlab中,短时傅里叶变换的分析 ...
- 时频分析:短时傅里叶变换应用
目录: 前言 实验环境 Matlab spectrogram函数 1语法 2举栗子: 2.1跟踪声音信号里的鸟声轨迹 2.2谱图3d可视化 参考: 前言 之前讲了时频分析的原理,和matlab里面的相 ...
最新文章
- 【C#】登陆次数限制
- mysql中外键的作用是什么_mysql外键基本功能与用法详解
- 常用的 Http ContentType 对照表
- Visual Studio内存泄漏检测
- AT2339-[AGC011C]Squared Graph【黑白染色】
- EditThisCookie使用
- CentOS7挂载nfs盘快速指南
- 遇到这 4 个迹象,赶紧下来、让人工智能上!
- 在windows中用 netsh 命令修改ip地址网关和DNS等
- excel教程自学网_收藏!这37个自学网站,一年让你省下十几万
- python123作业题
- 四位电脑故障诊断卡使用说明
- android仿支付宝弹窗,实现支付宝支付从底部弹窗效果
- Windows MVSC编译器实现Xtended Flow Guard(XFG)保护机制的原理分析
- 「网络安全」Web防火墙和下一代防火墙的区别
- 2017年山东省第八届ACM程序设计竞赛总结
- 路径正确下,Eclipse读取txt文件仍失败
- 点击化学试剂DBCO-PEG-MMPs 二苯并环辛炔-聚乙二醇-基质金属蛋白酶
- 专题:手把手学习硬件基础------12、滤波电路
- 【ES6】阮一峰ES6学习之Class(一)
热门文章
- asp.net 与donet(.net)的区别
- donet学习笔记10(c#基础)
- python股票收益率协方差_Python如何评估投资组合的收益率和风险
- MATLAB中取整函数一览表
- 找不到本地计算机策略组,Win10家庭版找不到本地组策略gpedit.msc解决办法
- 【剑桥摄影协会】伽马校正(Gamma)
- python 实现 责任链模式
- 平面阵列天线的3D方向图的Python综合
- 抖音海外版tiktok404 amp; 简洁国际版apk
- 空间光调制器在激光加工中的应用