功率谱分析笔记-------脑电相关

news2024/10/5 15:27:23

1:功率谱分析的方法介绍

功率谱分析的方法大致可以分为两大类:第一类是经典的功率谱计算方法,第二类是现代功率谱计算方法,如图1所示。其中第一类经典功率谱分析方法,又可以分为直接法、间接法和改进的直接法。直接法又称之为周期图法,简单地说,其直接利用信号的傅里叶变换系数的幅度平方来计算信号的功率谱。间接法又称为自相关函数法,其先估算出信号的自相关函数,然后对自相关函数求傅里叶变换从而得到信号的功率谱。改进的直接法,是针对直接法存在的缺点改进而来的方法,包括Barlett法、Welch法和Nuttall法。第二类现代功率谱计算方法,又可以分为基于参数建模的功率谱计算和基于非参数建模的功率谱计算。基于参数建模的功率谱计算方法又分为基于AR模型、MA模型、ARMA模型等方法;基于非参数建模的功率谱计算方法主要基于矩阵特征分解的功率谱估计,主要包括基于MUSIC算法的功率谱估计和基于特征向量的功率谱估计。

 图1

2:周期图法

定义:

取平稳随机信号 x(n)的有限个观察点 x(0)、x(1)、…x(n-1),则X(n)的傅立叶变换为:

由于序列x(n)的离散傅里叶变换  具有周期性,因而这种功率谱 也具有周期性,称为周期图:

周期图是信号功率谱的一个有偏估值。

x(n)在每个频率(或k)处的功率即傅里叶变换的系数的幅值平方除以数据长度N。根据直接法求解PSD的定义(注:PSD是上述公式再除以信号的采样率fs),可以直接通过调用Matlab中的fft函数(fft函数是计算信号的傅里叶变换)进行计算;此外,Matlab中有专门的函数periodogram实现直接法的PSD计算。

周期图作为频率的曲线有非常大的方差。在数学上可以推导出,周期图的方差即周期图的平方值,与采样点数目无关。这意味着无法通过使用更多的数据采样来降低周期图的方差。因此,周期图通常表现出非常高的方差,这使得信号频谱峰值难以被清楚观察和精确定位。对于需要平滑频谱估计的脑电应用而言,周期图并不适合。摘自《脑电信号处理与特征提取 第5章》

matlab调用方法:

示例:

3:Welch方法

定义:

周期图法估计出的功率谱性能并不好,当是数据长度过大时,谱的曲线起伏剧烈,而当数据长度过小时,谱的分辨率又不好,因此在其基础上又产生了一系列的改进方法,共同的原则是将周期图法进行平滑,使得估计方差减小,其中以Welch方法为代表。

Welch方法是一种最为广泛的经典功率谱估计方法,该法在周期图法的基础上主要进行了两处改进:其一是将采样数据进行分段,并允许各段数据有交叠的部分;其二是每段数据加窗处理时,窗函数不局限于矩形窗,也可使用汉宁窗或海明窗等,从而可以改善谱失真的现象。

简单来理解就是:分段的每一段用周期图法得到功率谱密度,然后加权(笔者个人理解:分段的每一段数据进行加窗(数据同窗函数相乘)后,利用周期图法计算加窗后数据的功率谱,然后将所有段的功率谱相加平均)

Welch方法被广泛用于估计脑电图的频谱。不过窗函数的选择对脑电频谱估计结果的影响并不大,所以这个问题在脑电分析领域很少被讨论。摘自《脑电信号处理与特征提取 第5章》

matlab调用方法:

示例:

4:频谱估计方法的比较

非参数方法在脑电信号处理中的使用更加广泛,因为它的优点与脑电信号的特征相匹配。首先,如果频谱本身较光滑,非参数方法则更适当、更合理。其次,因参数方法对噪声水平非常敏感,故当噪声大时,非参数方法则更加准确。最后,如果信号的长度足够,非参数方法可以得到较准确的频谱估计结果。由于脑电信号通常具有宽且平滑的频谱,包含大量噪声,并且数据量足够(例如,时长1s且采样率为1000Hz的脑电数据就有1000个采样点),因此非参数方法是比较适合进行脑电分析的。当然,如果预先指定的模型准确,参数方法,如基于自回归模型的频谱估计,也可以获得满意的结果。图5.7显示并比较了本章介绍的几种常见的非参数和参数方法在估计一个脑电信号频谱时的结果。可以清楚地看出,如果为自回归模型选择适当的模型阶数(在本例中,P=20),则基于自回归模型的频谱估计与Welch法的估计就会非常相似。

 

 

5:计算功率谱函数(matlab)

目前matlab可以计算功率谱估计的函数有pcov, pmcov, pyulear, pmtm, pmusic, peig, pwelch, pburg ,periodogram, arburg, prony

Matlab调用方法

Fs=1000;  

n=0:1/Fs:1;  

xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));  

nfft=1024;  

window=boxcar(100); %矩形窗  

window1=hamming(100); % Harmming窗  

noverlap=20; %数据无重叠  

range='onesided'; %频率间隔为[0 Fs/2],只计算一半的频率  

  

[Pxx1,f]=pwelch(xn,[],noverlap,nfft,Fs,range);     %pwelch  

[Pxx2,f]=pwelch(xn,[],noverlap,nfft,Fs,range);     %pwelch  

[Pxx3,f]=pcov(xn,20,nfft,Fs,range);                %1.pcov  

[Pxx4,f]=pmcov(xn,35,nfft,Fs,range);               %2.pmcov  

[Pxx5,f]=pyulear(xn,35,nfft,Fs,range);             %3.pyulear  

[Pxx6,f]=pmtm(xn,5,nfft,Fs,range);                 %4.pmtm   

[Pxx7,f]=pmusic(xn,6,nfft,Fs,range);               %5.pmusic  

[Pxx8,f]=peig(xn,6,nfft,Fs,range);                 %6.peig  

[Pxx9,f]=pburg(xn,30,nfft,Fs,range)                %7.pburg  

[Pxx10,f]=periodogram(xn,[],nfft,Fs,range);        %8.periodogram  

  

%[Pxx2,f]=arburg(xn,nfft);                         %9.arburg  

%[Pxx2,f]=prony(xn,500,20);                        %10.prony  

参考:

做EEG频谱分析,看这一篇文章就够了! - 知乎

matlab在信号与图像处理中的应用第7章new

故障诊断作业2_叨叨Echo的博客-CSDN博客_periodogram pwelch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见移动端导航类型

手机导航设计是人机交互最重要的桥梁和平台,旨在引导用户正确的方向,不迷路。 好的菜单设计不仅能提升整个产品的用户体验,还能让用户耳目一新。 一、导航菜单的作用是什么 ? 1.提升产品内容和功能结构和层次 2.重点展示核心功能…

windows cmd 常用操作命令

文章目录进程端口相关打开面板快捷键防火墙相关进程端口相关 可以查看本机开放的全部端口. netstat -ano 协议:分为TCP和UDP 本地地址(Local Address):代表本机IP地址和打开的端口号 外部地址(Foreign Address&#…

字节8年测试开发工程师感悟,说说我们自动化测试平台的进阶之路

前言 自2015年10月底加入Pactera Edge以来,我一直服务于客户的Quality Engineering项目。这之间经历了很多的技术变革,包括探索,实施,维护,淘汰等一整个流程。下面就写一下项目中 UTAP(unified testing automation pl…

Java多线程(三)

目录 一、线程的同步(二) 同步机制释放锁的操作 不会释放锁的操作 线程的死锁问题 死锁 解决方法 Lock(锁) 使用Lock(锁)创建多线程步骤: 使用Lock解决窗口售票问题 synchronized与Lock的对比 练习 二、线程的通信 通过例题说明线…

优化器-SQL语句分析与优化

一、连接-配置优化 1.1 连接数过多问题 有时会碰到Mysql:error 1040:Too many connection的错误。原因:超过了服务端设置的最大并发连接数。 1.2 从两个方面解决问题 服务端,增加服务端可用连接数;客户端&#xff0…

如何在视频上添加水印?建议收藏这些方法

小伙伴们平时会刷短视频吗?那你们会不会自己也在平台上,发布一些自己剪辑的短视频呢?在网上发布的视频,很容易被一些不安好心的人,直接窃取,所以为视频添加自己的水印显得尤为重要。那你们知道如何给视频加…

sqli-labs/Less-49

欢迎界面还是以sort作为注入点 首先判断属于数字型还是字符型 输入如下 sortrand() 页面从没有变化 说明属于字符型 然后输入1 发现没有报错信息 不能使用报错注入 只能通过结果去反映处你的注入是对是错 首先输入1-- 成功回显 说明注入类型就是属于单引号字符型 然后接…

Towards Class-Oriented Poisoning Attacks Against Neural Networks 论文笔记

#论文笔记# 1. 论文信息 论文名称Towards Class-Oriented Poisoning Attacks Against Neural Networks作者Bingyin Zhao会议/出版社WACV 2022pdf📄在线pdf代码无 基于类别的 availability attacks,不同于原本的 availability attacks 只考虑降低模型的…

VMware虚拟机中的Linux通过NAT模式共享主机网卡实现与外部设备通信

目前遇到的使用场景: 需要VMware虚拟机中linux通过PC端的物理网卡与外界其他设备或PC进行通信,因此需要配置虚拟机中linux的通信链路。 1.设置PC端IP网络 如果要实现虚拟机被局域网其它机子访问到,那么这里我们要选择桥架模式,具…

Oracle实验五Sql语句

每一句插入都要带commit提交,不然会出现很多报错 直接从WPS实验报告里复制过来的,可能有中英文标点问题 实验目的 (1) 掌握数据的插入(INSERT)、 修改(UPDATE) 和删除(D…

现代密码学导论-1-导论

目录 1.1 密码学和现代密码学 1.2 私钥加密 1.2.1 私钥加密的两个广泛应用 1.2.2 加密的语法 1.2.3 柯克霍夫原则 1.1 密码学和现代密码学 经典密码学(20世纪80年代以前)和现代密码学之间的另一个非常重要的区别与它的采用有关。历史上,密码学的主要消费者是军…

Android App开发实战项目之电子书架的实现(附源码 简单易懂 可直接使用)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、需求描述 在手机上浏览电子书的浏览体验跟阅读纸质书差不多,翻页过程仍旧呈现纸张翻转的视觉特效,让读者看起来赏心悦目。总结一下,手机阅读无非是要具有两大功能点:其一为书…

【GlobalMapper精品教程】025:影像数据集的建立与巧妙使用

GlobalMapper影像数据集类似于金字塔,作用是提高大量影像的加载与显示速度,还可批量进行一系列设置。本文的配套数据为data025.rar。 文章目录 1. 建立影像数据集2. 影像数据集的使用1. 建立影像数据集 (1)点击【文件】→【创建新地图目录】。 (2)选择影像数据集存放路径…

Doker学习笔记1(狂神)

虚拟机技术缺点: 1.资源占用十分多 2.冗余步骤多 3.启动很慢! 容器化技术 我们去安装docker: 我们先保证我们的虚拟机是可以使用的。 环境查看: 系统内核是3.10以上的 系统版本: 我们用的是centOS7虚拟机。 然后…

微服务学习笔记(二)

文章目录Spring Cloud Eureka1.Spring Cloud Eureka 简介2.Spring Cloud Eureka 和 Zookeeper 的区别2.1 什么是 CAP 原则(面试)2.2 分布式特征3.Spring Cloud 其他注册中心3.1 Consul3.2 Nacos4.Spring Cloud Eureka 快速入门4.1 搭建 Eureka-server4.1…

【ELM回归预测】探路者优化极限学习机回归预测【含Matlab源码 2231期】

⛄一、探路者算法简介 提出的一种新兴的智能优化算法,该算法的思想起源于群体动物的狩猎行为,种群中的个体分为探路者和跟随者两种角色。算法的寻优过程模拟了种群寻找食物的探索过程,利用探路者、跟随者两种角色不同的位置更新方式以及角色…

蓝牙血压计PCBA硬件解决方案

蓝牙血压计是利用现代电子技术与血压间接测量原理进行血压测量的医疗设备。家庭医疗保健已成为现代人的医疗保健时尚。过去人们测量血压必须到医院才行,而今只要拥有了蓝牙血压计,坐在家里便可随时监测血压的变化,如发现血压异常便可及时去医…

odoo14 | odoo中domain的复杂写法

本片文章主要讲述domain中复杂业务需求的逻辑构思,关于doamin的使用位置会在另一篇文章中体现。 二叉树与波兰式 在讲述domain的使用前先讲解一下科班生必学的《数据结构与算法》中二叉树遍历与波兰式的内容,如果你会二叉树先序遍历与波兰式转换请直接…

从零开始的深度学习之旅(2)

目录深层神经网络1. 异或门问题1.1 异或代码实现2.神经网络的层2.1 去除激活函数的异或门2.2 使用sigmoid函数的异或门3.从0实现深度神经网络的正向传播深层神经网络 1. 异或门问题 在第一篇的博客中,我们使用代码实现了与门 import torch X torch.tensor([[1,0,0],[1,1,0]…

通过实战总结的 使用GoFrame小技巧

文章目录gf gen dao设置参数可传可不传model作为结构体类型模型关联添加数据主程序如下:gomeGoods.MainImgs的定义:批量插入数据配置插件自动生成service总结一起学习有朋友问我能不能搞一个GoFrame技巧篇,让新手少踩坑的那种。今天他来了&am…