1. 简介

1.1 百度百科和wiki简介

按照百度百科的说法,短时傅里叶变换(STFT,short-time Fourier transform,或 short-term Fourier transform)是和傅里叶变换相关的一种数学变换,用以确定时变信号其局部区域正弦波的频率与相位。

其特点是在极短时间区间内选择一个时频局部化的窗函数,假定分析窗函数g(t)在一个短时间间隔内是平稳(伪平稳)的,移动窗函数,使f(t)g(t)在不同的有限时间宽度内是平稳信号,从而计算出各个不同时刻的功率谱。短时傅里叶变换使用一个固定的窗函数,窗函数一旦确定了以后,其形状就不再发生改变,短时傅里叶变换的分辨率也就确定了。如果要改变分辨率,则需要重新选择窗函数。

主要局限性: 短时傅里叶变换不能兼顾频率与时间分辨率的需求。短时傅里叶变换窗函数受到W.Heisenberg不确定准则的限制,时频窗的面积不小于2。这也就从另一个侧面说明了短时傅里叶变换窗函数的时间与频率分辨率不能同时达到最优。

1.2 matlab spectrogram函数说明

[S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs)

输入参数
-其中N x NxNx是信号长度。
-其中,window 指窗的长度
-noverlap 指窗的上一个位置和下一个位置之间重叠的长度(实际上n o v e r l a p > w i n d o w / 2 noverlap>window/2noverlap>window/2
-nfft :Number of DFT points 频率点数或者 对频率点数的扩充
-window 指窗的长度,noverlap 指窗的上一个位置和下一个位置之间重叠的长度(实际上n o v e r l a p > w i n d o w / 2 noverlap>window/2noverlap>window/2,此处图例仅为解释说明)

输出参数
-s — Short-time Fourier transform
w — Normalized frequencies
t- t 中的时间值对应于每个段的中点。
f — Cyclical frequencies, f 的长度等于 s 的行数。

说明:当使用时无输出参数,会自动绘制频谱图;有输出参数,则会返回输入信号的短时傅里叶变换。当然也可以从函数的返回值S,F,T,P绘制频谱图

2. 信号分析

给出了matlab自带数据和一个轴承数据集的测试分析代码与结果。

2.1 仿真信号分析1

fs = 1000; % 1000hz
t = 0:1/fs:2;
y = sin(128*pi*t) + sin(256*pi*t); % 频率一个是64hz一个是128hz
figure;
win_sz = 128;
han_win = hanning(win_sz);
% 选择海明窗
nfft = win_sz;
nooverlap = win_sz - 1;
[S, F, T] = spectrogram(y, window, nooverlap, nfft, fs);
imagesc(T, F, log10(abs(S)))
set(gca, 'YDir', 'normal')
xlabel('Time (secs)')
ylabel('Freq (Hz)')
title('short time fourier transform spectrum')

可视化结果

2.2 仿真监测信号分析2

这个是matlab自带的信号

load helidata
y = vib
figure;
win_sz = 1024*0.125;
han_win = hanning(win_sz);
% 选择海明窗
nfft = win_sz;
nooverlap = win_sz - 1;
[S, F, T] = spectrogram(y, window, nooverlap, nfft, fs);
imagesc(T, F, log10(abs(S)))
set(gca, 'YDir', 'normal')
xlabel('Time (secs)')
ylabel('Freq (Hz)')
title('short time fourier transform spectrum')

2.3 实际监测信号分析

% fs y t
load("H-A-1.mat")
y = Channel_1(1:fs*0.05);
fs=200*1000;
t = 0:1/fs:0.05;
figure;
win_sz = 1024;
han_win = hanning(win_sz);
% 选择海明窗
nfft = win_sz;
nooverlap = win_sz - 1;
[S, F, T] = spectrogram(y, window, nooverlap, nfft, fs);
imagesc(T, F, log10(abs(S)))
set(gca, 'YDir', 'normal')
xlabel('Time (secs)')
ylabel('Freq (Hz)')
title('short time fourier transform spectrum')

可视化结果

文献资料

[1] https://baike.baidu.com/item/%E7%9F%AD%E6%97%B6%E5%82%85%E9%87%8C%E5%8F%B6%E5%8F%98%E6%8D%A2/7118607
[2] https://ww2.mathworks.cn/help/signal/ug/order-analysis-of-a-vibration-signal.html

振动信号的短时傅里叶变换分析相关推荐

  1. 时频分析:短时傅里叶实现(3)

    目录: 前言 实验环境 Matlab spectrogram函数 1语法 2使用说明 3代码如下 3.1谱图和瞬时频率 3.2鸟声信号功率谱密度追踪 参考: 前言 之前讲了时频分析的原理,现在来讲讲它 ...

  2. 浅谈傅里叶——5. 短时傅里叶的缺点与卷积的基本概念

    在<浅谈傅里叶 4>里,我引入了卷积的概念来简要的解释了傅里叶的改进方法--短时傅里叶.它类似一种滑动的滤波器,只不过与我们熟知的与对空间滤波.频域滤波不同,这是一个类似时域滤波的滤波器, ...

  3. 连续语音信号的短时倒谱分析及其参数用途

    文章目录 前言 基本概念 倒谱和倒谱参数 1.倒谱 2.复倒谱 3.倒谱计算 (1).由声门激励信号提取基音周期 (2).由声道冲激响应估算共振峰 4.倒谱的频谱 5.倒谱距离 6.Mel频率倒谱系数 ...

  4. 语音信号的短时傅里叶分析

    语音信号的短时傅里叶分析 文章目录 语音信号的短时傅里叶分析 概述 短时傅里叶变换 短时傅里叶的取样率 时域取样率 频域取样率 总取样率 语音信号的短时综合 滤波器组求和法 快速傅里叶变换求和法 语谱 ...

  5. matlab振动频谱分析是不是要,VB和Matlab混编实现振动信号的频谱分析

    VB和Matlab混编实现振动信号的频谱分析 3 0 物理测试 2 O O 4年第 2期 V B和 Ma t l a b混编实现振动信号的频谱分析 谭轶平, 王振清 ( 北京航空航天大学材料学院,北京 ...

  6. 语音信号的短时语音能量

    由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著,因此对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变换情况.定义n时刻某语音信号的短时平均能量E为: 式中,N为窗长,可见短 ...

  7. 数字语音信号处理学习笔记——语音信号的短时时域分析(3)

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/u013538664/article/details/26138063 3.6 短时自相关分析 ...

  8. 数字语音信号处理学习笔记——语音信号的短时时域分析(2)

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/u013538664/article/details/26068797 3.3 短时平均能量 由 ...

  9. 数字语音信号处理学习笔记——语音信号的短时时域分析(1)

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/u013538664/article/details/25392889 3.1 概述 语音信号是 ...

  10. 合振动的初相位推导_基于振动信号的机械设备故障诊断(一)

    1.概述 振动在旋转机械设备故障中占了很大比重,是影响设备安全,稳定运行的重要因素.振动直接反应了设备的健康状况,是设备安全评估的重要指标.通过对振动分析方法的调查,熟悉一般的振动分析流程及方法,从而 ...

最新文章

  1. Redis 难题突破,最经典 46 题含详细解析
  2. 萌新的九宫棋(C语言)
  3. getDeclaredField和getField的区别
  4. 和初学者谈谈如何学好单片机编程技术
  5. 织梦dedecms的框架的Webshell
  6. SQL实现当前行等于前面两行数据之和
  7. SAP中的默认帐户与密码
  8. dsPIC33EP 高速PWM模块初始化设置及应用
  9. linux中apache服务器的搭建与配置
  10. php mysql显示不出图片_图片显示不出来,但是数据库里有显示
  11. 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?
  12. 程序员是否要考PMP认证?看这篇就够了
  13. 矩阵的转置、加和乘法写入C++
  14. java 用redis如何处理电商平台,秒杀、抢购超卖
  15. 计算机是人类的好伴侣 作文,电脑真好作文
  16. Libevent教程001: 简介与配置
  17. HTML5特效(shadow、gradient、transition、transform、filter)
  18. 怎么把PPT压缩到最小?
  19. 从键盘上输入一个字符,判断并输出是控制符、数字字符、大写字母、小写字母或是其他字符
  20. liferay6.2 mysql_liferay6.2 集成CKEditor和ckfinder

热门文章

  1. idea 和tomcat 中文乱码问题
  2. Kubernetes之YAML语法
  3. IT项目管理流程总结·二十三
  4. Python简单的音频处理
  5. 【并联机构工作空间分析系列1】 多个圆/圆环求交 得到重叠部分边界 Matlab程序
  6. Learn OpenGL 笔记6.2 Gamma Correction(伽马校正)
  7. IEEE Latex下载
  8. 一文了解caffe框架
  9. OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
  10. 笔记 c语言99乘法表