时频分析:短时傅里叶变换实现(2)

目录:

文章目录


#前言
之前讲了时频分析的原理,现在来讲讲它在matlab里面的实现。
想要复习原理的同学,可以参照一一下这篇: 短时傅里叶分析
本次讲解中阶的函数,基础的可以参见前面的: 短时傅里叶实现(1)
后续的请参见下篇。
#实验环境
本文的所有实验都是在matlab2016a下通过的。
#Matlab spectrogram函数
谱图函数:使用短时傅里叶变换化成短时傅里叶变换的谱图。
##1语法

  s = spectrogram(x,window,noverlap,nfft,Fs) 

##2使用说明
s = spectrogram(x,window,noverlap,nfft,Fs)
返回输入信号的短时傅里叶变换,该函数和之前的返回结果有所不同,它的时间轴和频率轴发生了变化
详细说明:
返回输入信号x的谱图,结果存储在矩阵s中,其他参数的设置和之前一样,Fs是采样频率,单位为Hz,如果Fs是[]的话,它默认是1Hz,如果Fs没有定义的话,将使用归一化的频率。
s的每一列都是x短时局部锁定的频率成分,时间轴从左至右,频率轴从下至上。
如果x是长度为NX的复信号,s是一个有NFFT行的复矩阵,以及fix((nx-noverlap)/(length(window)-noverlap))列。对于实信号,如果NFFT是偶数则s的行数是(NFFT/2+1),如果NFFT是奇数,则行数为(NFFT+1)/2.

##3代码如下:
###3.1坐标轴变换

%产生一个平方鸟声(chirp)信号,采样频率是1khz,采样时间是2秒,前一秒的信号是100hz,后一秒的信号是200hz。                                                                                                                 
t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');
%计算并展示x的谱图
% 将信号分割成每段128个点的信号,使用汉宁窗加窗。
% 选择120个点作为连续的重叠部分
%计算谱值 【128/2+1】=65个频率点,[(length(x)-120)/(128-120)]=235个时间块。
spectrogram(x,128,120,128,1e3)

example2
使用Blackman窗代替汉宁窗,将重叠点下降到60个,画出时间轴,它的轴是逆转的。

spectrogram(x,blackman(128),60,128,1e3)
ax = gca;
ax.YDir = 'reverse';

这里写图片描述
如图所示

###3.2鸟声信号的功率谱密度
####3.2.1平方鸟声信号
计算并展示一个分段鸟声信号的功率谱密度,开始时是100hz,并在1秒时变成了200hz。采样率为1000hz,分段的每一段长度为128点,每一段有120个点重合,使用128点的离散傅里叶变换和默认的海明窗

t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');
spectrogram(x,128,120,128,1e3,'yaxis')
title('Quadratic Chirp')

如图所示
这里写图片描述

####3.2.线性鸟声信号
计算并展示一个线性鸟声信号每一段的功率谱密度,开始时是直流,并在t=1s时达到150hz。
信号设置,采样率1khz,每一段的长度为256个点,每一段的重叠是250个点,使用默认的海明窗和256点离散傅里叶变换。

t = 0:0.001:2;
x = chirp(t,0,1,150);
spectrogram(x,256,250,256,1e3,'yaxis')
title('Linear Chirp')

如图所示
这里写图片描述

####3.3对数鸟声信号
计算并展示一个对数鸟声信号每一段的功率谱密度,开始时是20hz,并在t=1s时达到60hz。
信号设置,采样率1khz,每一段的长度为256个点,每一段的重叠是250个点,使用默认的海明窗和256点离散傅里叶变换。

t = 0:0.001:2;
x = chirp(t,20,1,60,'logarithmic');
spectrogram(x,256,250,[],1e3,'yaxis')
title('Logarithmic Chirp')

如图所示:
这里写图片描述
在这张图里,当你使用对数频率轴时,图像会变成一条直线
代码如下:

ax = gca;
ax.YScale = 'log';

这里写图片描述
这也展示对坐标轴的设置会影响展示效果。

补充

如果还是有不会的,可以扫码关注这个公众号:博主会在24小时内回复
在这里插入图片描述


#参考:
mathworks

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值