• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab 时频分析(短时傅里叶变换、STFT)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

短时傅里叶变换,short-time fourier transformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足,使得傅里叶变换有了局部定位的能力。

1. spectrogram:matlab 下的 stft

How can I compute a short-time Fourier transform (STFT) in MATLAB?

stft 不同于 ft 之处在于,多了时间的概念,对信号 y=sin(128πt)+sin(256πt)2πftf 是频率 )进行短时傅里叶变换,该模拟信号中有 64 和 128 两种。

fs = 1000;
t = 0:1/fs:2;
y = sin(128*pi*t) + sin(256*pi*t);      

figure;
win_sz = 128;
han_win = hanning(win_sz);      % 选择海明窗

nfft = win_sz;
nooverlap = win_sz - 1;
[S, F, T] = spectrogram(y, window, nooverlap, nfft, fs);

imagesc(T, F, log10(abs(S)))
set(gca, \'YDir\', \'normal\')
xlabel(\'Time (secs)\')
ylabel(\'Freq (Hz)\')
title(\'short time fourier transform spectrum\')

2. cwt:连续小波变换

Time-Frequency Analysis of Modulated Signals

小波变换进一步拓展了时频局部分析的能力。

[cfs,f] = cwt(quadchirp,\'bump\',fs);
helperCWTTimeFreqPlot(cfs,tquad,f,\'surf\',\'CWT of Quadratic Chirp\',\'Seconds\',\'Hz\')

这里选择的是 bump 型小波,选择该类型的原因在于,当信号震荡剧烈,且更关注信号局部瞬变的时频分析。

load quadchirp;
fs = 1000;
[S,F,T] = spectrogram(quadchirp,100,98,128,fs);
helperCWTTimeFreqPlot(S,T,F,\'surf\',\'STFT of Quadratic Chirp\',\'Seconds\',\'Hz\')

这里可以进一步对比 STFT(短时傅里叶变换)和 CWT(连续小波变换)在时频分析上的精细化刻画能力。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap