matlab spectrogram 函数用法

项目说明

介绍 matlab 中 spectrogram 函数的用法,其功能为实现短时傅里叶变换并得到信号的频谱图。

语法:

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

短时傅里叶变换

短时傅里叶变换的基本原理如下:

使用一个窗函数在时域信号上(有重叠地)不断平移,如下图所示:
在这里插入图片描述
其中,window 指窗的长度,noverlap 指窗的上一个位置和下一个位置之间重叠的长度(实际上 n o v e r l a p > w i n d o w / 2 noverlap>window/2 noverlap>window/2,此处图例仅为解释说明)。

每平移到一个新位置,窗函数内的信号会被计算一次频谱,假设频谱长度为 L L L,则每个时间点上对应的长度为 L L L,时间点的个数为
k = f i x ( ( N x − n o v e r l a p ) / ( w i n d o w − n o v e r l a p ) ) k = fix((Nx-noverlap)/(window-noverlap)) k=fix((Nxnoverlap)/(windownoverlap))
其中 N x Nx Nx是信号长度。

频谱中包含的频率点数 L L L计算如下:

对于实信号x,如果nfft为偶数,则 L L L为(nfft/2+1),如果nfft为奇数,则 L L L为(nfft+1)/2。

关于nfft的含义,举例如下:

若采样频率为10000,则时频图上频率纵坐标显示到5001,共5001个点。设置nfft为30000,则相当于对频率点数的扩充,即linspace(0, 5001, 15001)。此时时频图上频率纵坐标仍然显示到5001,但却有15001个频率点数。

  • 8
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cofisher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值