第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 时频分析:短时傅里叶变换应用

时频分析:短时傅里叶变换应用

时间:2023-01-31 20:32:57

相关推荐

时频分析:短时傅里叶变换应用

目录:

前言实验环境Matlab spectrogram函数1语法2举栗子:2.1跟踪声音信号里的鸟声轨迹2.2谱图3d可视化 参考:

前言

之前讲了时频分析的原理,和matlab里面的相关实现,现在展示一下它的应用。

想要复习原理的同学,可以参照一下这篇:短时傅里叶分析(1)

想要熟悉函数语句的同学:

基础的可以参见前面的:短时傅里叶实现(1)

中阶的可以参见前面的:短时傅里叶实现(2)

高阶的可以参见前面的:短时傅立叶实现(3)

进阶的可以参见前面的:短时傅里叶实现(4)

终极的可以参见前面的:短时傅里叶实现(5)

实验环境

本文的所有实验都是在matlaba下通过的。

Matlab spectrogram函数

谱图函数:使用短时傅里叶变换化成短时傅里叶变换的谱图。

1语法

前面的几个帖子,已经详细的介绍了这个函数,不清楚的可以参看一下,本篇只演示应用。

2举栗子:

本文会介绍一些常见的应用,重要的是结合原理去理解它,这样才好应用到自己的应用上。

2.1跟踪声音信号里的鸟声轨迹

加载一个包含两个下降鸟声信号和宽带飞溅声的声音信号。计算短时傅里叶变换,将信号分割成400个段落,300个重叠,画出谱图。

load splat% To hear, type soundsc(y,Fs)sg = 400;ov = 300;spectrogram(y,sg,ov,[],Fs,'yaxis')colormap bone

如图所示

%可以使用谱图函数获得信号的功率谱密度信息

[s,f,t,p] = spectrogram(y,sg,ov,[],Fs);%可以使用medfreq来追踪这两个鸟声信号,为了找到最强的,低频鸟声信号,限制这个搜索在频率大于100hz,时间%在宽带信号之前f1 = f > 100;t1 = t < 0.75;m1 = medfreq(p(f1,t1),f(f1));%为了找到虚弱的高频鸟声信号,限制搜索在2500hz以上,时间在0.3秒到0.65秒之间。f2 = f > 2500;t2 = t > 0.3 & t < 0.65;m2 = medfreq(p(f2,t2),f(f2));%将结果叠加在谱图上。将频率值除以1000,以kHz表示。hold onplot(t(t1),m1/1000,'linewidth',4)plot(t(t2),m2/1000,'linewidth',4)hold off

如图所示:

2.2谱图3d可视化

%产生一个两秒的信号,采样频率为10khz,瞬时频率信号是一个时间的三角函数fs = 10e3;t = 0:1/fs:2;x1 = vco(sawtooth(2*pi*t,0.5),[0.1 0.4]*fs,fs);%计算并画出信号的谱图,使用256点shape为5的kaiser窗,特别地重叠点数是220,512点DFT,在y轴画出颜色图spectrogram(x1,kaiser(256,5),220,512,fs,'yaxis')

%改变视角,并展示瀑布样的谱图,颜色设置为bonecolormap boneview(-45,65)

参考:

mathworks

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。