短时傅里叶变换原理解
转自: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.根据时频矩阵,输出频谱图。
以上就是我对短时傅里叶变换实现过程的理解,后面如果有新的理解,我会继续修改进行完善!
短时傅里叶变换原理解相关推荐
- 【音频处理】短时傅里叶变换
前言 上一篇博客讲了离散傅里叶变换,里面的实例是对整个信号进行计算,虽然理论上有N点傅里叶变换(本博客就不区分FFT和DFT了,因为它俩就是一个东东,只不过复杂度不同),但是我个人理解是这个N点是信号 ...
- Python音频信号处理 1.短时傅里叶变换及其逆变换
短时傅里叶变换及其逆变换 本篇文章主要记录了使用python进行短时傅里叶变换,分析频谱,以及通过频谱实现在频域内降低底噪的代码及分析,希望可以给同样在学习信号处理的大家一点帮助,也希望大家对我的文章 ...
- 傅里叶变换短时傅里叶变换小波变换
一.傅里叶变换 关于傅里叶变换的基本概念在此我就不再赘述了,默认大家现在正处在理解了傅里叶但还没理解小波的道路上.(在第三节小波变换的地方我会再形象地讲一下傅里叶变换) 下面我们主要将傅里叶变换的不足 ...
- 时频分析:短时傅里叶变换(1)
目录: 文章目录 目录: 前言 1傅里叶变换的缺陷 2短时傅里叶变换(窗式傅里叶变换) 3小波部分 4补充部分 补充 前言 最近需要对处理的数据做时频分析,因此恶补了一下相关的知识,光是学习并没有用处 ...
- 时频分析:短时傅里叶变换应用
目录: 前言 实验环境 Matlab spectrogram函数 1语法 2举栗子: 2.1跟踪声音信号里的鸟声轨迹 2.2谱图3d可视化 参考: 前言 之前讲了时频分析的原理,和matlab里面的相 ...
- MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
在Matlab中,做短时傅里叶变换需要使用函数spectrogram,而在Matlab2019中,引入了一个新的函数stft,下面我们就来看下这两个函数都如何使用. 短时傅里叶变换的基本原理就是将数据 ...
- 傅里叶变换、短时傅里叶变换、小波变换
顺序:傅里叶-->短时傅里叶变换-->小波变换的顺序 转载自形象易懂的傅里叶变换.短时傅里叶变换和小波变换本文作者按照傅里叶-短时傅里叶变换-小波变换的顺序,由浅到深的解释小波变换的缘由以 ...
- 时间序列信号处理(四)——傅里叶变换和短时傅里叶变换python实现
一.傅里叶变换(FFT) 一维时间序列信号为典型的离散信号,需要使用离散傅里叶变换,FFT变换就是将时域信号转到频域阶段分析,分析更深入,了解时域信号的频域特性.注意傅里叶变换只适用于平稳信号. F( ...
- 时频分析:短时傅里叶变换
目录 1 傅里叶变换的缺陷 2 短时傅里叶变换(窗式傅里叶变换) 3 小波部分 4 补充部分 1 傅里叶变换的缺陷 FFT在平稳信号的分析和处理中有着突出贡献的原因在于,人们利用它可以把复杂的时间信号 ...
- 利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声
利用短时傅里叶变换(STFT)对信号进行时频谱分析和去噪声 1.背景 傅里叶变换(TF)对频谱的描绘是"全局性"的,不能反映时间维度局部区域上的特征,人们虽然从傅立叶变换能清楚地 ...
最新文章
- 如何使用 Cockpit 管理你的树莓派
- 【翻译自mos文章】OGG replicat 进程使用的 TCP port
- apidoc学习(接口文档定义取代word)
- 快速排序——Java
- GitLab 简易指引(三):备份与恢复
- python面试题之Python如何实现单例模式?
- mega2560电脑识别不到端口后_Qt音视频开发41-人脸识别嵌入式
- 数组自带的函数(方法)
- keepalived 非抢占模式
- VS2017编译SNMP库
- UEditor 配置
- LiveZilla 详细 配置 设置 (三) 配置 LiveZilla 服务
- USYD悉尼大学INFO1110 详细作业解析Week3 all quizzes
- 【转】我是一个INFP者
- 极路由 刷linux,记一次 极路由1S HC5661 TTL root 刷 U-BOOT 不死固件 及 爱快固件-20200320更新...
- mybatis 使用大于号和小于号
- python函数返回多个变量_Python中接收函数多个返回结果的两种方法
- sketch制作Android动画,Sketch制作GIF动画——基础篇(改良版)
- Java代码混淆案例(附反编译工具)
- 量子计算(9)编程实践1:构造贝尔态
热门文章
- go-sqlite3 “database is locked”问题解决方案
- 苹果微信html音乐播放,iphone 微信网页自动播放音频解决办法
- 别让你的项目,毁在单片机选型上
- 【电子技术】【2019.03】【含源码】低成本转子动力学数据采集系统的设计
- 02-02 逐帧动画、多组动画案例 实现小人跑步效果
- 关键接口性能测试报告
- 教师计算机培训汇报ppt,教师培训工作总结ppt模板
- Android apk下载与安装
- android apk自动安装包下载,Android 实现apk文件下载并自动安装
- python caffe框架_Windows下的caffe框架的配置