脑电信号4
脑电信号4目录1. 盲源分离——从鸡尾酒会问题说起2. ICA的数学原理3. ICA在脑电中的实战应用4. EEG微状态——大脑的基本字母5. 微状态分析流程6. Python完整实战1. 盲源分离——从鸡尾酒会问题说起BSS盲源分离就是仅从混合录音中分离各自的声音不知道混合比例也不知道源信号长什么样。脑电跟BSS一样头皮64个电极录到的是脑内多个源的混合。BSS帮我们把它们拆开。importnumpyasnpimportmatplotlib.pyplotaspltfromscipyimportsignalfromsklearn.decompositionimportFastICA# 直观演示两个源→混合→ICA还原np.random.seed(42)tnp.linspace(0,2,500)s1np.sin(2*np.pi*2*t)# 源1慢正弦模拟脑电s2signal.sawtooth(2*np.pi*8*t)# 源2快锯齿模拟眼电x10.8*s10.5*s2# 电极1混合x20.3*s10.9*s2# 电极2混合Xnp.c_[x1,x2]icaFastICA(n_components2,random_state42,max_iter1000)S_hatica.fit_transform(X)fig,axesplt.subplots(2,2,figsize(14,6))axes[0,0].plot(t,s1,b,lw1.5);axes[0,0].plot(t,s2,r,lw1.5)axes[0,0].set_title(真实信号源);axes[0,0].legend([脑电,眼电])axes[0,1].plot(t,x1,gray,lw0.8);axes[0,1].plot(t,x2,k,lw0.8)axes[0,1].set_title(头皮电极录到的混合信号);axes[0,1].legend([电极1,电极2])axes[1,0].plot(t,S_hat[:,0],b,lw1.5);axes[1,0].plot(t,S_hat[:,1],r,lw1.5)axes[1,0].set_title(ICA还原的独立成分)axes[1,1].imshow(ica.mixing_,cmapRdBu_r,aspectauto)axes[1,1].set_title(混合矩阵A);axes[1,1].set_xticks([0,1]);axes[1,1].set_yticks([0,1])plt.suptitle(ICA盲源分离仅从头皮混合信号还原出独立源,fontsize13)plt.tight_layout();plt.show()ICA vs PCA——很多人混淆这两个PCAICA目标找方差最大的方向找统计独立的方向假设信号服从高斯分布信号非高斯输出成分之间不相关正交成分之间统计独立更强2. ICA的数学原理ICA模型X A·S。已知X头皮EEG求W≈A⁻¹得 Ŝ W·X。核心假设源信号是非高斯的。为什么中心极限定理——多个独立非高斯信号的混合比单个信号更像高斯分布。ICA做的就是找到让输出最不像高斯分布的分离方向——“非高斯性≈独立性”。用负熵量化非高斯性J(y) H(y_gauss) − H(y)。高斯分布熵最大负熵越大→越不像高斯→越可能是独立源。FastICA通过最大化负熵迭代求解W。defdemo_ica_geometry():直观感受ICA的几何意义np.random.seed(0)s1np.random.uniform(-1,1,1000)# 两个独立均匀源s2np.random.uniform(-1,1,1000)Xnp.array([[0.7,0.5],[0.3,0.8]]) np.vstack([s1,s2])S_hatFastICA(n_components2,random_state42).fit_transform(X.T).T fig,axesplt.subplots(1,3,figsize(15,4.5))axes[0].scatter(s1,s2,s3,alpha0.5)axes[0].set_title(源信号正方形独立);axes[0].set_aspect(equal)axes[1].scatter(X[0],X[1],s3,alpha0.5,cred)axes[1].set_title(混合后菱形相关);axes[1].set_aspect(equal)axes[2].scatter(S_hat[0],S_hat[1],s3,alpha0.5,cgreen)axes[2].set_title(ICA还原恢复正方形);axes[2].set_aspect(equal)plt.suptitle(ICA几何直觉混合旋转拉伸→ICA解旋还原,fontsize13)plt.tight_layout();plt.show()demo_ica_geometry()3. ICA在脑电中的实战应用3.1 三大去伪迹场景伪迹类型ICA识别依据关键特征眼电(EOG)前额通道权重高 低频功率大波形呈尖峰、峰度5肌电(EMG)高频功率大(30Hz)颞区权重高、不规则心电(ECG)规律尖峰(~1Hz)空间分布广泛3.2 自动分类成分defclassify_ica_components(ica,raw_eeg,fs256):自动分类ICA成分眼电/肌电/心电/脑电n_compica.mixing_.shape[1]sourcesica.transform(raw_eeg.T).T mixingica.mixing_ labels[]foriinrange(n_comp):frontal_wnp.abs(mixing[:3,i]).mean()/(np.abs(mixing[:,i]).mean()1e-10)f,psdsignal.welch(sources[i],fs,npersegfs*2)totalnp.trapz(psd,f)1e-10low_rnp.trapz(psd[(f0.5)(f4)],f[(f0.5)(f4)])/total high_rnp.trapz(psd[(f30)(f50)],f[(f30)(f50)])/total kurtnp.mean((sources[i]-sources[i].mean())**4)/(np.std(sources[i])**41e-10)iffrontal_w1.5andlow_r0.3andkurt5:labels.append(眼电)elifhigh_r0.3:labels.append(肌电)elif0.05low_r0.4andkurt4:labels.append(心电)else:labels.append(脑电)returnlabels使用ICA的注意事项先做1Hz高通滤波再做ICA——低频漂移会让分解不稳定成分数≤通道数数据越长ICA越稳定自动标记后建议人工复查——误删脑电成分比漏删伪迹更糟糕去坏段后再ICA——运动伪迹会污染所有成分4. EEG微状态——大脑的基本字母4.1 什么是微状态观察EEG的多通道地形图你会发现头皮电位不是随机变化的——它在几种固定空间模式之间快速切换每种模式持续约60-120ms。这些准稳态的地形图就是微状态Microstate。打个比方微状态像字母大脑用有限的字母约4种的不同排列组合来表达不同认知状态。4.2 经典四类微状态微状态地形图特征功能关联A类左枕→右额梯度听觉/语言网络B类右枕→左额梯度视觉网络C类额-枕对称中线突显网络——自我参照、冥想相关D类中央-额叶分布注意网络——任务正相关4.3 四个关键时间参数参数含义冥想中的变化持续时间平均持续多少ms冥想相关微状态持续时间↑覆盖率占总时间百分比冥想相关微状态占比↑出现频率每秒出现次数切换频率↓→大脑更稳定转移概率从A切换到B的概率某些转移路径概率改变有研究发现资深冥想者的C类微状态覆盖率显著高于普通人且切换频率更低——大脑更倾向于稳定地保持在自我参照状态。5. 微状态分析流程5.1 四步走预处理EEG → 计算GFP → 取GFP峰值处地形图 → K-means聚类(4类) → 回标到原始EEG取GFP峰值处的原因GFP峰值处信噪比最高、地形图最稳定。谷值处地形图不可靠。deffind_gfp_peaks(eeg_multi,fs256,min_dist_ms50):找到GFP峰值时刻gfpnp.std(eeg_multi,axis0)peakssignal.find_peaks(gfp,distanceint(min_dist_ms/1000*fs))[0]returnpeaks,gfpdefextract_microstates(eeg_data,n_states4,n_peaks500,fs256):从EEG提取微状态GFP峰值→聚类→回标# 1. 找GFP峰值处的地形图peaks,gfpfind_gfp_peaks(eeg_data,fs)top_idxpeaks[np.argsort(gfp[peaks])[-n_peaks:]]toposeeg_data[:,top_idx].T# 2. K-means聚类fromsklearn.clusterimportKMeans kmeansKMeans(n_clustersn_states,random_state42,n_init10)kmeans.fit(topos)# 3. 回标每个时间点分配给最近聚类中心eeg_teeg_data.T distsnp.array([np.sum((eeg_t-c)**2,axis1)forcinkmeans.cluster_centers_])seqnp.argmin(dists,axis0)returnseq,kmeans.cluster_centers_defmicrostate_params(seq,fs256,min_dur_ms30):计算微状态时间参数min_sint(min_dur_ms/1000*fs)params{}forsinnp.unique(seq):is_s(seqs).astype(int)edgesnp.diff(np.concatenate([[0],is_s,[0]]))startsnp.where(edges1)[0]endsnp.where(edges-1)[0]durs(ends-starts)/fs*1000validdursmin_s params[fMS{s}]{平均持续(ms):np.mean(durs[valid]),覆盖率(%):is_s.sum()/len(seq)*100,频率(次/s):len(starts[valid])/(len(seq)/fs),}returnparams6. Python完整实战classEEGBSSAnalyzer:ICA去伪迹 微状态分析def__init__(self,fs256):self.fsfs;self.icaNonedefrun_ica(self,eeg):n_cheeg.shape[0]self.icaFastICA(n_componentsn_ch,random_state42,max_iter2000)sourcesself.ica.fit_transform(eeg.T).Treturnsources,self.ica.mixing_defremove_artifacts(self,eeg,artifact_idx):sourcesself.ica.transform(eeg.T).T sources[artifact_idx]0returnself.ica.mixing_ sources# 完整演示 fs,dur256,10tnp.arange(0,dur,1/fs);nlen(t);n_ch8np.random.seed(42)# 生成模拟多通道EEGeegnp.array([(10-ch*0.8)*np.sin(2*np.pi*10*tch*0.3)(5ch*0.3)*np.sin(2*np.pi*20*tch*0.5)np.random.randn(n)*3forchinrange(n_ch)])# 加眼电前额通道强forbtin[2.5,5.0,7.5]:blink100*np.exp(-((t-bt)/0.1)**2)forchinrange(n_ch):eeg[ch]blink*(1.5-0.18*ch)# 1. ICA去眼电analyzerEEGBSSAnalyzer(fs)sources,mixinganalyzer.run_ica(eeg)artifact_idxnp.argmax(np.abs(mixing[:2]).mean(axis0))# 前额权重最高的成分eeg_cleananalyzer.remove_artifacts(eeg,[artifact_idx])# 2. 微状态分析seq,centersextract_microstates(eeg_clean,n_states4,fsfs)paramsmicrostate_params(seq,fs)# 可视化fig,axesplt.subplots(2,2,figsize(14,8))# ICA前后对比axes[0,0].plot(t,eeg[0],gray,lw0.5,alpha0.7,label含眼电)axes[0,0].plot(t,eeg_clean[0],blue,lw1,label去眼电后)axes[0,0].set_title(f通道0(Fp1) ICA前后对比);axes[0,0].legend();axes[0,0].grid(True,alpha0.3)# 混合矩阵imaxes[0,1].imshow(mixing,aspectauto,cmapRdBu_r)axes[0,1].set_title(f混合矩阵(成分{artifact_idx}眼电))axes[0,1].axvline(artifact_idx,colorred,lw2)plt.colorbar(im,axaxes[0,1])# 微状态覆盖率nameslist(params.keys())axes[1,0].bar(names,[params[k][覆盖率(%)]forkinnames],color[red,blue,green,orange],edgecolorblack)axes[1,0].set_title(四类微状态覆盖率);axes[1,0].set_ylabel(%)# 微状态时序segseq[500:900]colors[red,blue,green,orange]axes[1,1].fill_between(range(len(seg)),seg-0.4,seg0.4,color[colors[int(s)]forsinseg],alpha0.5)axes[1,1].plot(seg,black,lw0.5)axes[1,1].set_title(微状态时序~1.6秒片段);axes[1,1].set_ylabel(状态)axes[1,1].set_ylim(-0.5,3.5);axes[1,1].set_yticks([0,1,2,3])plt.suptitle(ICA去眼电 微状态聚类 完整演示,fontsize14)plt.tight_layout();plt.show()print(\n微状态时间参数:)forkinsorted(params.keys()):pparams[k]print(f{k}: 持续{p[平均持续(ms)]:.0f}ms, 覆盖{p[覆盖率(%)]:.1f}%, 频率{p[频率(次/s)]:.2f}次/s)关键发现ICA能有效分离眼电成分前额高权重低频尖峰特征明显EEG微状态通常聚类为4类其中C类与自我参照/冥想状态密切相关微状态时间参数比传统频谱指标更稳定——是个体脑指纹的候选去伪迹后脑电成分保留完好重构信号波形自然无失真

相关新闻

点云转BEV鸟瞰图:从三维感知到二维网格的工程实践

点云转BEV鸟瞰图:从三维感知到二维网格的工程实践

1. 项目概述:从三维世界到二维平面的降维艺术最近在整理一些自动驾驶和机器人感知相关的项目资料,发现“点云转BEV鸟瞰图”这个需求几乎无处不在。无论是做场景理解、障碍物检测,还是路径规划,一个清晰、信息量丰富的鸟瞰图都是后…

2026/8/3 3:57:45 阅读更多 →
哈希算法七大核心应用场景:从数据结构到分布式系统实战

哈希算法七大核心应用场景:从数据结构到分布式系统实战

1. 项目概述:为什么说哈希算法是程序员的“瑞士军刀”?如果你写过代码,哪怕只是写过几行Python脚本,大概率也用过字典(dict)或者集合(set)。你有没有想过,为什么我们能通…

2026/8/4 1:55:13 阅读更多 →
BLAS 3级例程:从矩阵乘法到高性能计算的核心优化

BLAS 3级例程:从矩阵乘法到高性能计算的核心优化

1. 从“单打独斗”到“集团军作战”:为什么我们需要BLAS 3级例程如果你写过矩阵乘法,大概率是从一个三重循环开始的。两个嵌套循环遍历结果矩阵的每个元素,最内层循环累加对应行列的点积。代码简单直观,但性能呢?惨不忍…

2026/8/3 7:02:33 阅读更多 →

最新新闻

Godot 4.2 多平台安装配置全指南:从零到运行第一个项目

Godot 4.2 多平台安装配置全指南:从零到运行第一个项目

1. 项目概述:为什么你需要这份指南? 如果你正在寻找一个免费、开源、功能强大且对独立开发者极其友好的游戏引擎,那么Godot 4.2绝对是你绕不开的选择。无论是想制作2D像素风小品,还是尝试3D原型,Godot都能提供一套完整…

2026/8/4 8:10:22 阅读更多 →
企业招聘必备:背调软件核心技术与应用解析

企业招聘必备:背调软件核心技术与应用解析

1. 背调软件为何成为企业招聘刚需 最近三年,企业HR圈子里出现一个明显变化:10人以上的正规公司招聘,基本都会在发offer前加一道背调流程。上周帮朋友公司做招聘审计,发现他们去年因简历造假产生的用人风险直接导致近百万损失。这让…

2026/8/4 8:10:22 阅读更多 →
阿里云oss存储桶

阿里云oss存储桶

1)点击头像,然后创建key 2)阻止公共访问修改 3)下载终端 在Windows macOS和Linux上下载并安装ossbrowser 2.0-对象存储-阿里云-对象存储(OSS)-阿里云帮助中心 4)输入 AccessKey ID LTxxxxAccessKey Secret lxxxx

2026/8/4 8:10:22 阅读更多 →
4G低功耗土壤温湿度采集器:数据多人共享,团队协同监管更高效

4G低功耗土壤温湿度采集器:数据多人共享,团队协同监管更高效

在智慧农业、气象监测、市政绿化、生态种养等领域,土壤温湿度是衡量土地墒情、指导农事作业、监测生态环境的核心基础数据。传统土壤监测设备大多存在供电繁琐、防护性差、数据传输单一、平台适配难度高、野外续航能力弱等问题,难以适配田间、露天、盐碱…

2026/8/4 8:10:22 阅读更多 →
Unity开发核心:向量运算与坐标系转换实战指南

Unity开发核心:向量运算与坐标系转换实战指南

1. 项目概述:为什么向量和坐标系是Unity开发的基石如果你刚开始接触Unity3D,可能会觉得那些飞来飞去的游戏物体、流畅的镜头移动和精准的碰撞检测很神奇。但当你真正上手写代码,想让一个角色朝鼠标点击的位置移动,或者让一个物体绕…

2026/8/4 8:10:22 阅读更多 →
Godot GDScript性能优化:从类型注解到内存管理的实战技巧

Godot GDScript性能优化:从类型注解到内存管理的实战技巧

1. 项目概述:为什么GDScript性能优化是Godot开发者的必修课如果你正在用Godot引擎做项目,尤其是目标平台是移动端或者有大量实体交互的复杂场景,那么“性能”这个词迟早会跳出来敲打你。GDScript作为Godot的原生脚本语言,以其简洁…

2026/8/4 8:09:22 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →