转自:https://blog.csdn.net/zhaoyinhui0802/article/details/53048362

建议阅读原文。

前一段时间项目需要学习了短时傅里叶变换,今天我来总结一下现阶段对短时傅里叶变换的理解。

短时傅里叶变换是最常用的一种时频分析方法,它通过时间窗内的一段信号来表示某一时刻的信号特征。在短时傅里叶变换过程中,窗的长度决定频谱图的时间分辨率和频率分辨率,窗长越长,截取的信号越长,信号越长,傅里叶变换后频率分辨率越高,时间分辨率越差;相反,窗长越短,截取的信号就越短,频率分辨率越差,时间分辨率越好,也就是说短时傅里叶变换中,时间分辨率和频率分辨率之间不能兼得,应该根据具体需求进行取舍。

简单来说,短时傅里叶变换就是先把一个函数和窗函数进行相乘,然后再进行一维的傅里叶变换。并通过窗函数的滑动得到一系列的福利也变化结果,将这些结果排开便得到一个二维的表象。

短时傅里叶变换的公式为

其中Z(t)为源信号,g(t )为窗函数。

为方便计算机处理,一般把信号进行离散化处理,具体公式为

短时傅里叶变换的编程思路如下:

1.第一步,确定相关参数。主要包括原信号,窗函数,窗长,重叠点数,采样频率,傅里叶点数等。

其中傅里叶点数主要用于在傅里叶变换过程中使用,当信号长度小于傅里叶点数时,系统会自动进行补零,然后再进行快速傅里叶变换。

2.第二步,计算把源信号和窗函数转换为列向量。计算信号长度,并根据信号长度nx、窗长WinLen以及重叠点数noverlap计算出窗滑动的次数n,也就是指后面把源信号分成列时信号的列数。

n=fix((nx-noverlap)/(WinLen-noverlap))

3.把每次窗函数滑动所选取的信号表示为列,确定每一列的值,得到一个列数为n,行数为WinLen的矩阵Fig。

colindex = (0:(t-1))*(WinLen-noverlap);
   rowindex = (1:WinLen)';

xin = zeros(frame_length,t);
   xin(:) = x(rowindex(:,ones(1,t))+colindex(ones(WinLen,1),:));

4.把转换为列向量的窗函数扩展为n列的矩阵w,并对矩阵Fig和w进行点乘,并对点乘的结果进行快速傅里叶变换,得到时频矩阵。

xin = win(:,ones(1,t)).*xin;

5.根据时频矩阵,输出频谱图。

以上就是我对短时傅里叶变换实现过程的理解,后面如果有新的理解,我会继续修改进行完善!

短时傅里叶变换原理解相关推荐

  1. 【音频处理】短时傅里叶变换

    前言 上一篇博客讲了离散傅里叶变换,里面的实例是对整个信号进行计算,虽然理论上有N点傅里叶变换(本博客就不区分FFT和DFT了,因为它俩就是一个东东,只不过复杂度不同),但是我个人理解是这个N点是信号 ...

  2. Python音频信号处理 1.短时傅里叶变换及其逆变换

    短时傅里叶变换及其逆变换 本篇文章主要记录了使用python进行短时傅里叶变换,分析频谱,以及通过频谱实现在频域内降低底噪的代码及分析,希望可以给同样在学习信号处理的大家一点帮助,也希望大家对我的文章 ...

  3. 傅里叶变换短时傅里叶变换小波变换

    一.傅里叶变换 关于傅里叶变换的基本概念在此我就不再赘述了,默认大家现在正处在理解了傅里叶但还没理解小波的道路上.(在第三节小波变换的地方我会再形象地讲一下傅里叶变换) 下面我们主要将傅里叶变换的不足 ...

  4. 时频分析:短时傅里叶变换(1)

    目录: 文章目录 目录: 前言 1傅里叶变换的缺陷 2短时傅里叶变换(窗式傅里叶变换) 3小波部分 4补充部分 补充 前言 最近需要对处理的数据做时频分析,因此恶补了一下相关的知识,光是学习并没有用处 ...

  5. 时频分析:短时傅里叶变换应用

    目录: 前言 实验环境 Matlab spectrogram函数 1语法 2举栗子: 2.1跟踪声音信号里的鸟声轨迹 2.2谱图3d可视化 参考: 前言 之前讲了时频分析的原理,和matlab里面的相 ...

  6. MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法

    在Matlab中,做短时傅里叶变换需要使用函数spectrogram,而在Matlab2019中,引入了一个新的函数stft,下面我们就来看下这两个函数都如何使用. 短时傅里叶变换的基本原理就是将数据 ...

  7. 傅里叶变换、短时傅里叶变换、小波变换

    顺序:傅里叶-->短时傅里叶变换-->小波变换的顺序 转载自形象易懂的傅里叶变换.短时傅里叶变换和小波变换本文作者按照傅里叶-短时傅里叶变换-小波变换的顺序,由浅到深的解释小波变换的缘由以 ...

  8. 时间序列信号处理(四)——傅里叶变换和短时傅里叶变换python实现

    一.傅里叶变换(FFT) 一维时间序列信号为典型的离散信号,需要使用离散傅里叶变换,FFT变换就是将时域信号转到频域阶段分析,分析更深入,了解时域信号的频域特性.注意傅里叶变换只适用于平稳信号. F( ...

  9. 时频分析:短时傅里叶变换

    目录 1 傅里叶变换的缺陷 2 短时傅里叶变换(窗式傅里叶变换) 3 小波部分 4 补充部分 1 傅里叶变换的缺陷 FFT在平稳信号的分析和处理中有着突出贡献的原因在于,人们利用它可以把复杂的时间信号 ...

  10. 利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声

    利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声 1.背景  傅里叶变换(TF)对频谱的描绘是"全局性"的,不能反映时间维度局部区域上的特征,人们虽然从傅立叶变换能清楚地 ...

最新文章

  1. 如何使用 Cockpit 管理你的树莓派
  2. 【翻译自mos文章】OGG replicat 进程使用的 TCP port
  3. apidoc学习(接口文档定义取代word)
  4. 快速排序——Java
  5. GitLab 简易指引(三):备份与恢复
  6. python面试题之Python如何实现单例模式?
  7. mega2560电脑识别不到端口后_Qt音视频开发41-人脸识别嵌入式
  8. 数组自带的函数(方法)
  9. keepalived 非抢占模式
  10. VS2017编译SNMP库
  11. UEditor 配置
  12. LiveZilla 详细 配置 设置 (三) 配置 LiveZilla 服务
  13. USYD悉尼大学INFO1110 详细作业解析Week3 all quizzes
  14. 【转】我是一个INFP者
  15. 极路由 刷linux,记一次 极路由1S HC5661 TTL root 刷 U-BOOT 不死固件 及 爱快固件-20200320更新...
  16. mybatis 使用大于号和小于号
  17. python函数返回多个变量_Python中接收函数多个返回结果的两种方法
  18. sketch制作Android动画,Sketch制作GIF动画——基础篇(改良版)
  19. Java代码混淆案例(附反编译工具)
  20. 量子计算(9)编程实践1:构造贝尔态

热门文章

  1. go-sqlite3 “database is locked”问题解决方案
  2. 苹果微信html音乐播放,iphone 微信网页自动播放音频解决办法
  3. 别让你的项目,毁在单片机选型上
  4. 【电子技术】【2019.03】【含源码】低成本转子动力学数据采集系统的设计
  5. 02-02 逐帧动画、多组动画案例 实现小人跑步效果
  6. 关键接口性能测试报告
  7. 教师计算机培训汇报ppt,教师培训工作总结ppt模板
  8. Android apk下载与安装
  9. android apk自动安装包下载,Android 实现apk文件下载并自动安装
  10. python caffe框架_Windows下的caffe框架的配置