声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2240|回复: 7

[FFT] 对暂态信号分析用stft在matlab里怎么实现

[复制链接]
发表于 2008-12-4 13:08 | 显示全部楼层 |阅读模式

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

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

x
最近看了一些关于stft对信号分析的matlab程序,不过对于怎么提取相应频率的分量一直不是很清楚,应该用什么函数,请指点。另外窗函数的选取有什么原则么?

[ 本帖最后由 lsq001 于 2008-12-4 13:10 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-12-4 14:48 | 显示全部楼层
我有一个信号如下v,采样率为6400,对其进行分析,程序如下:
N=length(v)
w=hanning(N);v=v.*w';
y=fft(v,N);
mag=abs(y)*2/N;
f=(0:length(y)-1)'*6400/length(y);
figure;
plot(f(1:N/2),mag(1:N/2));
axis([0,1000,0,1]);
xlabel('频率(Hz)');ylabel('幅值');
grid;


出错信息为Error using ==> times
Matrix dimensions must agree.

请问怎么回事?

v.txt

6.76 KB, 下载次数: 19

发表于 2008-12-4 16:46 | 显示全部楼层
若按上程序按FFT分析,把v=v.*w';改为v=v.*w;就不出错了。
若要STFT的方法分析,可用tfrstft函数。
 楼主| 发表于 2008-12-5 09:10 | 显示全部楼层
谢谢。
那请问怎么使用tfrstft,得出的结果应怎么提取各次谐波幅值等信息呢?
发表于 2008-12-5 11:33 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-17 14:38 编辑
原帖由 lsq001 于 2008-12-5 09:10 发表
那请问怎么使用tfrstft,得出的结果应怎么提取各次谐波幅值等信息呢?

从tfrstft分析得的结果是一个时间与频率的函数,对于暂态信号来说,各个频率的分量都是随时间变化的。若要分析各次谐波幅值,只能取来一帧一帧,分别进行分析。
 楼主| 发表于 2008-12-6 10:18 | 显示全部楼层
谢谢
上面说的一帧一帧的指的是多少数据量?
分别进行分析是说按时间分段分析么?
具体是怎么做的呢?
发表于 2008-12-6 15:56 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-17 14:38 编辑
原帖由 lsq001 于 2008-12-6 10:18 发表
谢谢
上面说的一帧一帧的指的是多少数据量?
分别进行分析是说按时间分段分析么?
具体是怎么做的呢?

在tfrstft调用时:
[S,T,F]=tfrstft(x,t,N,h)
其中h是窗函数,它实际上就是每次取一段多长,N是每次作FFT的长度。
发表于 2011-11-17 09:09 | 显示全部楼层
tfrstft这个函数的原理是和stft原理一样吗?其中做了哪些处理,请教授指教。谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 09:37 , Processed in 0.072453 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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