xinquan 发表于 2007-4-12 21:54

关于短时傅立叶变换的问题

在MATLAB的时频工具箱有直接求信号的短时傅立叶变换的程序tfrstft,但是现在不明白的是为什么用这个命令得到的STFT的值是一个方阵,而不是一个时间对应一个STFT变换后的值呢?请高手们指点啊?!如果要用这个命令得到的结果来绘制时间频率图,或者频率振幅图应该怎么恙得到呢?谢谢

songzy41 发表于 2007-4-13 07:55

用tfrstft函数,可以得到时间和频率信息:
=tfrstft(x);

xinquan 发表于 2007-4-13 08:48

用TFRSTFT得到的频率是归一化的,从-0.5到0.5,如何得到信号实际的频率呢?
还有TFRSTFT得到的值是怎么一回事?为什么是一个方阵而不是一列值呢?
请指点,谢谢

yangzj 发表于 2007-4-13 09:50

=tfrstft(x,1:N,M);

返回的tfr是M*N的,t是1:N,f是M*1的,是以采样频率fs归一化的,从-0.5到0.5

因此画图
mesh(t/fs,f*fs,abs(tfr));
即得时频幅值谱阵图

zhlong 发表于 2007-4-13 11:20

直接运行tfrstft(x,1:N,M);,不要带输出参数的话,该函数能自动绘出stft时频图

xinquan 发表于 2007-4-13 11:34

请问楼上的,不带输出参数的话,得到的频率值似乎也是归一化后的啊,怎么转换成实际的频率呢?

zhlong 发表于 2007-4-13 11:46

运行上述语句后,会出来一个菜单,其中有一个菜单命令“change the sampling frequency",点击后在matlab命令窗口输入你的采样频率即可
页: [1]
查看完整版本: 关于短时傅立叶变换的问题