声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6192|回复: 10

[FFT] stft和fft两者有什么区别和联系

[复制链接]
发表于 2015-10-8 23:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
stft和fft两者有什么区别和联系,什么情况下才会用stft
回复
分享到:

使用道具 举报

发表于 2015-10-9 09:31 | 显示全部楼层
本帖最后由 hcharlie 于 2015-10-9 11:19 编辑

傅里叶变换FT,包括快速傅里叶变换FFT,是基础,但只适用于稳态信号的分析;
而STFT短时傅里叶变换是将信号通过时间窗划分为很多小时段,而将小时段里的信号看作是稳态的,进行傅里叶分析,看其频谱分布随时间变化的规律,是FT的一种扩展补充。随着时段大小取得不同分析结果也有差异,可以看作是定性的分析,看看随着时间的不同变化的趋势。它最适用于分段平稳或近似平稳信号的分析。
说是这样说,本人用FFT无数次,解决稳态随机振动问题,可STFT没有具体用过,所以没有具体经验可介绍,望有用过STFT解决过他(们)自己什么具体问题,望能不吝赐教。
发表于 2015-10-9 23:08 | 显示全部楼层
SFFT包括多个时间上相连或部分重叠的FFT,所用的FFT也就是普通FFT。虽然名字叫短时FFT,但每个FFT所分析的时间长度好像没有明确定义吧。声音识别大概用的是每段20~40ms,通常还有重叠。由这些按时间顺序组成的FFT结果,可排成一个序列,用于对频谱不稳定的信号做时频分析,模式识别,比如识别一些故障原因,声音的相似度什么的。声谱图和瀑布图只是把这一串FFT结果用3D画出来显示,识别其中的pattern还需要其他分析方法。以前做过变电站打火放电信号的故障识别,音乐盒出厂合格性检查什么的。振动方面,谁有这种非平稳信号的识别需要吗?
 楼主| 发表于 2015-10-16 12:05 | 显示全部楼层
TestGuru 发表于 2015-10-9 23:08
SFFT包括多个时间上相连或部分重叠的FFT,所用的FFT也就是普通FFT。虽然名字叫短时FFT,但每个FFT所分析的 ...

风机在升降速过程中的振动信号为非平稳信号

点评

这个用瀑布图或声谱图看一下就行了吧,无需识别  详情 回复 发表于 2015-10-17 09:46
发表于 2015-10-17 09:46 | 显示全部楼层
ttksd 发表于 2015-10-16 12:05
风机在升降速过程中的振动信号为非平稳信号

这个用瀑布图或声谱图看一下就行了吧,无需识别
 楼主| 发表于 2015-10-19 22:25 | 显示全部楼层
TestGuru 发表于 2015-10-17 09:46
这个用瀑布图或声谱图看一下就行了吧,无需识别

瀑布图知道,声谱图是什么?

点评

其实是一样的,一个将频率、时间(或转速)、各频点(带)的幅度画成3D形式;另一个将频率、时间(或转速)画成2D形式,但用颜色的灰度深浅或伪彩色表示各频点(带)的幅度。  详情 回复 发表于 2015-10-20 09:24
发表于 2015-10-20 09:24 | 显示全部楼层
ttksd 发表于 2015-10-19 22:25
瀑布图知道,声谱图是什么?

其实是一样的,一个将频率、时间(或转速)、各频点(带)的幅度画成3D形式;另一个将频率、时间(或转速)画成2D形式,但用颜色的灰度深浅或伪彩色表示各频点(带)的幅度。
 楼主| 发表于 2015-10-20 10:10 | 显示全部楼层
TestGuru 发表于 2015-10-20 09:24
其实是一样的,一个将频率、时间(或转速)、各频点(带)的幅度画成3D形式;另一个将频率、时间(或转速 ...

明白了,非常感谢
发表于 2017-9-15 13:52 | 显示全部楼层
TestGuru 发表于 2015-10-9 23:08
SFFT包括多个时间上相连或部分重叠的FFT,所用的FFT也就是普通FFT。虽然名字叫短时FFT,但每个FFT所分析的 ...

请问MATLAB中的spectrogram这个函数是对时域数据分段求FFT还是功率谱密度?

点评

spectrogram是一个MATLAB函数,使用短时傅里叶变换得到信号的频谱图。当使用时无输出参数,会自动绘制频谱图;有输出参数,则会返回输入信号的短时傅里叶变换。当然也可以从函数的返回值S,F,T,P绘制频谱图,具体参见  详情 回复 发表于 2017-9-15 16:31
发表于 2017-9-15 16:31 | 显示全部楼层
z527883588 发表于 2017-9-15 13:52
请问MATLAB中的spectrogram这个函数是对时域数据分段求FFT还是功率谱密度?

spectrogram是一个MATLAB函数,使用短时傅里叶变换得到信号的频谱图。当使用时无输出参数,会自动绘制频谱图;有输出参数,则会返回输入信号的短时傅里叶变换。当然也可以从函数的返回值S,F,T,P绘制频谱图,具体参见例子。

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

S---输入信号x的短时傅里叶变换。
F---在输入变量中使用F频率向量,函数会使用Goertzel方法计算在F指定的频率处计算频谱图。
T---频谱图计算的时刻点,其长度等于上面定义的k,值为所分各段的中点。
P---能量谱密度PSD(Power Spectral Density),对于实信号,P是各段PSD的单边周期估计;对于复信号,当指定F频率向量时,P为双边PSD。
发表于 2017-9-16 10:40 | 显示全部楼层
desolate 发表于 2017-9-15 16:31
spectrogram是一个MATLAB函数,使用短时傅里叶变换得到信号的频谱图。当使用时无输出参数,会自动绘制频 ...

S应该是分段信号的FFT?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-24 22:32 , Processed in 0.065511 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表