时频分析:短时傅里叶变换实现(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';

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


参考:

mathworks

猜你喜欢

转载自blog.csdn.net/lvsehaiyang1993/article/details/80579104