matlab 时频分析(短时傅里叶变换、STFT)「建议收藏」

matlab 时频分析(短时傅里叶变换、STFT)「建议收藏」短时傅里叶变换,short-timefouriertransformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

短时傅里叶变换,short-time fourier transformation,有时也叫加窗傅里叶变换,时间窗口使得信号只在某一小区间内有效,这就避免了传统的傅里叶变换在时频局部表达能力上的不足,使得傅里叶变换有了局部定位的能力。

1. spectrogram:matlab 下的 stft

How can I compute a short-time Fourier transform (STFT) in MATLAB?

stft 不同于 ft 之处在于,多了时间的概念,对信号

y=sin(128πt)+sin(256πt)


2πftf
是频率 )进行短时傅里叶变换,该模拟信号中有 64 和 128 两种。

fs = 1000;
t = 0:1/fs:2;
y = sin(128*pi*t) + sin(256*pi*t);      

figure;
win_sz = 128;
han_win = hanning(win_sz);      % 选择海明窗

nfft = win_sz;
nooverlap = win_sz - 1;
[S, F, T] = spectrogram(y, window, nooverlap, nfft, fs);

imagesc(T, F, log10(abs(S)))
set(gca, 'YDir', 'normal')
xlabel('Time (secs)')
ylabel('Freq (Hz)')
title('short time fourier transform spectrum')

2. cwt:连续小波变换

Time-Frequency Analysis of Modulated Signals

小波变换进一步拓展了时频局部分析的能力。

[cfs,f] = cwt(quadchirp,'bump',fs);
helperCWTTimeFreqPlot(cfs,tquad,f,'surf','CWT of Quadratic Chirp','Seconds','Hz')

这里选择的是 bump 型小波,选择该类型的原因在于,当信号震荡剧烈,且更关注信号局部瞬变的时频分析。

load quadchirp;
fs = 1000;
[S,F,T] = spectrogram(quadchirp,100,98,128,fs);
helperCWTTimeFreqPlot(S,T,F,'surf','STFT of Quadratic Chirp','Seconds','Hz')

这里可以进一步对比 STFT(短时傅里叶变换)和 CWT(连续小波变换)在时频分析上的精细化刻画能力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167557.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stm32中的u8定义在哪里_c语言中u8和u16是啥

    stm32中的u8定义在哪里_c语言中u8和u16是啥初学STM32编程时,经常见到数据类型定义的符号:u8、u16等,51都是自己定义数据类型的简写符号,STM32是哪里定义的呢?今天没事就看了看系统头文件,数据类型的定义在其中的3个头文件里:(1)stdint.h(摘取定义部分)/* *’signed’isredundantbelow,exceptfor’signedchar’andif *thetypedefis…

    2022年10月7日
    1
  • python的enumerate函数怎么加判断条件_java中比int大的整数类型

    python的enumerate函数怎么加判断条件_java中比int大的整数类型Python的enumerate()函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法。enumerate()函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中级学者都没有意识到。这个函数的基本应用就是用来遍历一个集合对象,它在遍历的同时还可以得到当前元素的索引位置。我们看一个例子:names=[“Alice”,”Bob”,”Carl”]forindex,valueinenumerate(names):print(f'{index}:{va

    2022年10月24日
    0
  • Pycharm设置解释器「建议收藏」

    Pycharm设置解释器「建议收藏」背景:最近需要改文章,增加实验,要把之前的实验跑起来。其间,遇到一个很诡异的问题,在一个工程里跑得很正常的程序,到了另外一个工程里,相似的文件,只是修改了一点参数而已,就会报错,如ModuleNotFoundError:Nomodulenamed’tensorflow.contrib.slim’,当时就怀疑是不是解释器设置问题。由于当时夜黑风高,困意来袭,解释器位置设置竟然也找不到,作罢。第二天直接复制粘贴找问题原因无果。问题:果然是解释器设置问题。默认的解释器是base的python环境,由.

    2022年8月25日
    3
  • DOM笔记(三):Element接口和HTMLElement接口

    DOM笔记(三):Element接口和HTMLElement接口

    2021年9月2日
    57
  • 何不给你单调的鼠标指针换一个好看的样式?(Windows系统下)

    鼠标指针是我们日常操控电脑最基本的工具,用久了难免会有些单调。换一个更好看或更炫酷的皮肤,或许会给你带来不一样的心情!这是我新换的鼠标指针样式,是不是很有意思。访问这个网站:点击跳转里面有几百种鼠标指针美化包。选好你喜欢的美化包后,点击下载。将下载好的安装包解压。里面有一个.inf文件。右键点击安装遇到下面这个,确定即可。安装完成后,右击鼠标选择个性化,主…

    2022年4月12日
    53
  • 苹果电脑出现 .DS_Store文件,删除不掉怎么处理?

    苹果电脑出现 .DS_Store文件,删除不掉怎么处理?

    2022年2月3日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号