前言:为什么需要做时频分析

  • 脑电信号为非平稳信号,不能直接使用傅里叶变换进行操作
  • 时频分析将连续数据划分为一个个小片再做傅里叶变换
  • 谱分析不能反映各个频段能量随时间的变化

1、时频分析的原理——卷积(Convolution)

上次提到的谱分析的原理是将需要处理的信号跟kernel函数进行点积处理,这样就能得到谱分析的结果,但是时频分析的是卷积
其实和点积有相同的原理,只不过时频分析需要得到随时间变化的信息,所以需要这个kernel函数随着时间,不断的往前推进, 都做一个点积,这个流程就是一个卷积,但是因为是随着时间往前推进,在两端的地方难免存在一些信息的泄露,因此我们需要进行一些信息补充,称之为padding,用0补充,不影响原始结果,信息也不会泄露太多。

2、短时傅里叶变换(STFT)

短时傅里叶变换又称为窗口傅里叶变换,是傅里叶变换简单的一个扩展,主要就是解决在谱分析中傅里叶的两个局限性,用于处理非平稳信号和随时间变换的power值的变化

短时傅里叶变换的原理是认为我们框选的一小部分信号(图中黄色虚线部分)是属于平稳信号,我们对这个框内的信号做傅里叶变换,得到不同频率下的power值变化,然后将它转换成在时域上显示

这个有个问题,我们在原始信号处是得到一个时间窗的函数,最后我们得到的结果是一个时间点的数据,因为我们最后得到的一个时间点数据是根据附近的一些数据转换处理得到的,对应于时间窗中点的那个时间点,就是最后得到的结果,我们最后得到的时间点的power值,并不是真正的时间点上的power值,因为真正的单个时间点的值我们是得不到的,我们都是通过这个时间点临近的时间数据得出来的

(STFT)短时傅里叶变换的缺点

这个变换的窗口是没有自适应性的,只适合分析所有特征尺度大致相同的信号,不适合分析多尺度信号和突变信号

时间段的长度在时间和频率分辨率之间提供了权衡:在较段的时间段以牺牲频率分辨率为代价提供更好的时间分辨率,而较长的时间段以牺牲时间分辨率为代价提供更好的频率分辨率

测不准原理(The Uncertainty Principle)

不能同时拥有任意好的时间和频率分辨率,如果想要更清晰的时间分辨率,将牺牲频率分辨率,反之亦然。

一般情况我们选择一个折中,两者都能保持在一个平衡的状态下

这里用一个实例讲诉一下:

我们将原始信号提取出来,得到i一个能量主要集中在60hz的频段,那么我用不同长度的时间窗口进行提取,看一下不同长度时间窗口下的一个频率power值变化情况

最左边的是短的最小的窗口,最右边是一个最长的窗口

我们可以看到在第一个的时候,红色最深的部分是在1s左右的附近,很明显,这个时候时间分辨率比较高,在时间上面体现的比较明显,随着窗口的长度的加大,表示频率的信息被压缩,越来越接近真正的频率范围处,最后得到了在60hz附近的一个信息显示,这个时候时间上就会变得比较模糊

滑动时间窗
  • 时间窗口的长度固定,与频率无关——短时傅里叶变换
  • 时间窗口的长度随着频率的增加而减小(频率越高,时间窗的长度越短)

3、小波变换(wavelet Analysis)

小波变换是近三十年来才发展起来的一种数学工具,是继一百多年前傅里叶分析之后的又一个重大突破

对应各个频段适应的时间分辨率(随频率变化的窗口长度)

  • 低频对应长的窗口
  • 高频对应短的窗口

    小波母函数不单单是指一种函数,而是可以是符合条件的多种函数的一个集合,组成小波族

    我们比较多的应用的是Morlet函数
Morlet小波变换的实现过程

(1)先得到Morlet小波基:给出某个频率段范围的一个sin函数
(2)然后使用高斯窗函数跟上面的函数进行相乘
(3)最后我们得到的就是Morlet小波基
(4)然后们将得到的函数和需要处理的信号进行卷积处理,就可以得到Morlet小波变换

高斯窗函数的n是代表高斯函数的宽度的,而且小波基的函数也和高斯窗函数呈现正比关系,所以我们可以通过修改高斯窗函数的n修改小波基的宽度

小波宽度(周期)决定时频分辨率,“长”小波导致频率分辨率相对较窄,但是时间分辨率较差
“短”小波导致更宽的频率分辨率,但是更精确的时间分辨率

小波变换也可以作为一种带通滤波的手段

三者比较(傅里叶变换、短时傅里叶变换、小波变换)


我们原似乎得到的信号是一个时域的信号,得到的只有一个随时间变化的power信息,分别使用三种变换进行处理

  1. 首先进行傅里叶变换,这个变换不需要用到窗口函数,最后得到的是各个频段上面的信息,没有了随时间变化的信息
  2. 第二个是使用了短时傅里叶变换,设定一个固定的窗口,就可以得到一个具有固定时间分辨率和频率分辨率的一个结果
  3. 通过使用小波变换,根据不同的频率可以使用不同长度的时间窗口函数,最后得到的结果是在高频的时候我能够获得一个好的时间分辨率,在低频的时候我能很好的获得一个频率分辨率

总结

一、傅里叶变换

适用于平稳信号
没有反映出随时间变化的信号频率成分的变化情况

二、短时傅里叶变换

窗口是固定的,无法满足非稳态信号变化的频率的需求

三、小波变换

随频率改变的"时间-频率"窗口
适合于分析非稳态信号和提取信号的局部特征
对信号具有自适应性

参考来源:
https://www.bilibili.com/video/BV1M5411W72B

脑电时频分析II:时频分析相关推荐

  1. 脑电数据的实验范式及EEGLAB分析预处理

    脑电数据的实验范式及EEGLAB分析预处理 一.脑电数据采集处理过程 1.1 脑电数据采集过程 1.2 实验范式标签说明 二.EEGLAB分析预处理 2.1 导入数据 2.2 选择通道数据,删除无用电 ...

  2. 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法

    Epoch概念简介 相信很多人第一次接触epoch时,都会有疑惑,这个词在EEG中到底指的是什么. 下面将详细说明一下. 从连续的脑电图信号中提取一些特定时间窗口的信号,这些时间窗口可以称作为epoc ...

  3. 基于耳部脑电的语音想象脑机接口系统

    本次分享一篇发表于JNE期刊的基于耳部脑电的语音想象脑机接口系统. 摘要 本研究调查了以用户耳朵 (ear-EEG) 为中心的脑电图 (EEG) 对基于语音想象的脑机接口 (BCI) 系统的功效.开发 ...

  4. 运动想象脑电数据分享

    运动想象脑电数据分享 运动想象脑电数据分享 运动想象脑电数据分享 针对之前LZ的第一篇文章脑电数据的实验范式及EEGLAB分析预处理 文章链接:https://blog.csdn.net/weixin ...

  5. mne库脑电时频信号分析函数解读:小波变换及方法比较

    2023/1/8-2023/1/9 脑机接口学习内容一览: 这一篇博客里,主要研究mne库中的函数mne.time_frequency.tfr_morlet如何完成时频信号分析,提供基本的函数功能.参 ...

  6. 现代信号处理——时频分析与时频分布(时频分布的基本理论)

    短时Fourier变换.小波变换和Gabor变换三种线性的时频表示,它们使用时间和频率的联合函数(取线性变换形式)描述信号的频谱随时间的变化情况.同样地,也可以使用时间和频率的联合函数来描述信号的能量 ...

  7. 做实验时脑电和近红外该选择哪个?

    关注"心仪脑"查看更多脑科学知识的分享. 实验室既有脑电设备,又有近红外脑成像设备,我用什么好呢? 脑电技术发展的时间比较久,有大量文献书籍资料可以参考,不然用脑电吧?可是打导电膏 ...

  8. 从局部脑到全脑:时空域分层神经网络脑电情绪识别模型

    作者丨张玮玮 学校丨东北大学硕士生 研究方向丨情绪识别 引言 论文动机 近年来,脑电图 (EEG) 在处理情感识别方面得到了广泛的应用.虽然近年来人们提出了各种各样的脑电信号情感识别方法,但为了进一步 ...

  9. Movement Disorders脑电格兰杰因果分析:运动皮质在帕金森病复发性震颤中的作用

    帕金森患者在手臂伸展时可能会出现不同程度的复发性震颤.来自罗马大学的Alfredo Berardelli等人在MovementDisorders发文,旨在探讨初级运动皮质在复发性震颤中的作用,并与静止 ...

  10. 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)

    由于本人对于脑机接口以及脑电技术的极度爱好(其实目的是:是把U盘插到大脑里,然后就不用学习了哈哈哈哈),近几月看了较多这方面的内容,变打算写下博客总结分析一下. 目录 一.  机器学习分析简介 二.机 ...

最新文章

  1. C#和Unity游戏开发者大师班2021 (2D,3D和FPS)
  2. Linux学习笔记——例说makefile 综合案例
  3. 优秀产品必经的14个拷问
  4. boost::math模块具有输出和输入方面以及字符串流的非有限示例
  5. PCA 主成分分析 用Excel一步步演算过程详解
  6. mac恢复iphone_免费下载:旧Mac和iPhone壁纸的令人震惊的完整档案
  7. HTTP与HTTPS的安全性讨论
  8. 现代软件工程讲义 9 测试 QA 的角色和分工
  9. React之事件处理
  10. java web输出语句到控制台_Java工程师(6).循环结构
  11. 拯救者r7000怎么关闭触控板_联想拯救者R7000(2020版)上手体验,有没有AMD Yes?
  12. oracle 只导出指定的表格,expdp带条件导出单个表的数据
  13. 浅谈CIVIL 3D
  14. 开发环境配置--Ubuntu+Qt4+OpenCV(二)
  15. Linux下如何使CP命令不提示覆盖
  16. spring事务管理几种方式(转)
  17. TeraTerm自动登录(Login)
  18. 《赢在中国》第二赛季108将进京
  19. WCF-006:服务端类的封装问题
  20. java win10 x64下载地址_javawin10 64位

热门文章

  1. FIT2CLOUD飞致云荣膺“2021年度OSCHINA优秀开源技术团队”奖项
  2. 黑产的类型与武器库概览
  3. 【数字图像处理】图像复原
  4. RoboWare的安装与使用
  5. ROLLUP函数问题
  6. 全链路压测原理篇(方案 概念 架构 实现)
  7. 最新Thinkphp免签码支付系统源码+安卓监控端/实测可用
  8. C语言 —— 合并两个有序数组
  9. 数据结构与算法经典问题解析 Java语言描述pdf
  10. 三维空间内点到直线的距离计算公式