必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-06-24 23:43:12来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

短时傅里叶变换

目录:

  • 前言
  • 实验环境
  • Matlab spectrogram函数
    • 1语法
    • 2使用说明
    • 3代码如下:
      • 3.1坐标轴变换
      • 3.2鸟声信号的功率谱密度
        • 3.2.1平方鸟声信号
        • 3.2.线性鸟声信号
        • 3.3对数鸟声信号
  • 参考:

前言

之前讲了时频分析的原理,现在来讲讲它在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

相关阅读

巧用百度指数进行市场和竞品分析

百度指数,我们并不陌生,但是在大部分产品经理的日常工作中,使用频次并不多。原因可能是觉得它离我们实际工作太遥远,太宏观,没什么用,也

App竞品分析报告:美丽说VS蘑菇街

导语:当你为一件衣服、一条裤子,一件衬衫、一双鞋,在购物网站上漫无目的逛着的时候,当你正为好不容易淘到的一件宝贝,却在因为质量或价

案例复盘|京东图书如何通过定价策略实现大逆转

一个爆款的长期低价,不利于对于消费者的持续刺激效应,这样不仅无法长时间获得较高销售额,还会影响利润。所以必须对于特价的产品进行

职场社交之争—脉脉、赤兔竞品分析报告

移动社交行业自2003年,手机qq等移动社交应用面世以来已经逐渐从萌芽时期进入了深入发展的成熟时期,2015年第一季度,国内本土的移动社

小红书产品分析:种草神器为何如此神奇?

小红书App已成为笔者手机里仅次于微信的使用最频繁的App。它为什么这么具有吸引力呢?下面就来看下这个种草神器有哪些神奇的地方。

分享到:

栏目导航

推荐阅读

热门阅读