【SSVEP】基于SSVEP检测频率导向脑活动的VR实验附Matlab代码

简介: ✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。🔥 内容介绍一、 开篇:从 “意念下棋” 到 VR 脑控,SSVEP 到底有多酷?1.1 一个震撼的真实案例:脑瘫棋手的 “脑控逆袭”前段时间,我被一场特殊的象棋比赛深深震撼。在海南举办的 “天天象棋杯” 中国象棋协会年度总决赛上,脑瘫棋手韩彬彬头戴轻便脑电采集设备,用 “意念” 下

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。

🍎 往期回顾关注个人主页:Matlab科研工作室

👇 关注我领取海量matlab电子书和数学建模资料

🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。

🔥 内容介绍
一、 开篇:从 “意念下棋” 到 VR 脑控,SSVEP 到底有多酷?

1.1 一个震撼的真实案例:脑瘫棋手的 “脑控逆袭”

前段时间,我被一场特殊的象棋比赛深深震撼。在海南举办的 “天天象棋杯” 中国象棋协会年度总决赛上,脑瘫棋手韩彬彬头戴轻便脑电采集设备,用 “意念” 下棋,与象棋特级大师孟辰展开激烈对弈。这可不是什么科幻电影情节,而是真实发生的一幕!

韩彬彬因先天性脑瘫,行动和表达受限,但凭借鼻尖触控手机自学象棋,成为业余棋手和象棋主播。如今,借助脑机接口技术,他仅需注视屏幕上闪烁的棋子和落子位置,就能实现 “意念落子” 。这背后的关键技术,就是稳态视觉诱发电位(SSVEP)。当人注视特定频率闪烁光源时,大脑视觉皮层会产生同频脑电信号,脑机接口系统通过分析头皮采集的脑电信号,判断用户意图并转化为指令。

这个案例让我对 SSVEP 产生浓厚兴趣,深入了解后发现,它与虚拟现实(VR)结合,更是打开了新世界的大门。VR 为 SSVEP 实验提供沉浸式场景,让人仿佛置身虚拟世界,通过大脑频率响应就能控制其中事物。接下来,就让我们一起探索这个神奇的 “大脑频率驱动虚拟世界” 的实验。

1.2 核心问题抛砖引玉:SSVEP+VR,玩的就是 “频率导向”

简单来说,SSVEP 的本质,是大脑对特定频率视觉刺激的一种 “同步响应”。就像一群人原本各自随意走动,突然听到有节奏的鼓点,大家就开始跟着鼓点的节奏迈步。大脑里分布的神经网络有各自的固有谐振频率,正常状态下杂乱无章,可一旦有恒定频率的外界视觉刺激出现,与刺激频率或谐波频率一致的神经网络就会产生谐振,大脑电位活动在相应频率处出现明显变化,从而产生 SSVEP 信号,在 EEG 脑电信号的功率谱中,就会在刺激频率或谐波上出现谱峰。

而 VR,简直是构建这种可控视觉刺激场景的绝佳载体。戴上 VR 设备,你能进入精心设计的虚拟环境,里面的各种元素,比如闪烁的按钮、移动的图标,都能以特定频率出现,精准刺激大脑产生 SSVEP 信号。想象一下,在 VR 的奇幻世界里,你不用动手操作手柄,仅仅靠大脑对不同频率视觉刺激的反应,就能指挥角色前进、后退、攻击,是不是特别酷?

在接下来的文章里,我会先给大家详细科普 SSVEP 和 VR 结合的原理,再拆解几个经典实验,讲讲实验是怎么设计、怎么做的,最后还会分享一些实操指南和避坑技巧。就算你是脑机接口和 VR 的小白,也能轻松看懂,说不定还能自己动手尝试呢!

二、 硬核科普:SSVEP,大脑的 “频率密码本”

2.1 SSVEP 的底层逻辑:注视闪烁,大脑 “跟风共振”

要理解 SSVEP,我们得先从大脑对视觉刺激的反应说起。当你盯着一个以固定频率闪烁的目标,比如屏幕上一闪一闪的图标,神奇的事情就在大脑里发生了。视网膜上的感光细胞首先捕捉到这种周期性的光信号,然后通过视神经将信号传递到外侧膝状体,最终抵达大脑后部的初级视觉皮层 。在视觉皮层中,原本各自为政的神经元们像是听到了统一的号令,开始按照闪烁的频率同步放电。

打个比方,就像一群舞者原本各自随意舞动,突然听到一段强烈节奏的音乐,大家瞬间统一步伐,开始整齐划一地舞蹈。这些同步放电的神经元产生的电活动,就形成了与闪烁频率一致,或为其整数倍(也就是谐波)的脑电信号,这就是 SSVEP。比如,当刺激频率是 10Hz 时,在脑电信号的功率谱中,不仅会在 10Hz 处出现明显的谱峰,在 20Hz(二次谐波)、30Hz(三次谐波)等位置也可能有较小的峰值 。

和其他脑机接口范式相比,SSVEP 有着独特的优势。像运动想象(MI)范式,需要使用者反复训练,努力想象特定肢体的运动,才能产生可识别的脑电信号,而且不同人的信号特征差异较大 。P300 范式则依赖于事件相关电位,需要多次重复刺激才能获得稳定信号,指令传输速度相对较慢。而 SSVEP 呢,只要你注视闪烁目标,大脑就会自然产生响应,几乎不需要预先训练,而且信号特征明显,能够快速准确地识别,指令集也更加丰富,可以通过不同频率组合实现多种复杂控制,这就为它在 VR 实验中的应用奠定了坚实的理论基础。

2.2 频率导向检测:从脑电信号到 “意念指令” 的解码流程

在基于 SSVEP 的 VR 实验里,怎么把大脑产生的脑电信号,转化为能控制 VR 场景中物体的指令呢?这就涉及到一套精密的检测与解码流程。

首先是脑电信号的采集。我们一般会选用脑电图(EEG)设备,通过放置在头皮上的电极来收集脑电信号。这些电极的位置大有讲究,通常遵循国际 10 - 10 系统,尤其是在枕叶区,也就是大脑后部靠近视觉皮层的位置,会重点布置电极 ,因为 SSVEP 信号主要就产生于此。在操作时,要确保电极和头皮之间的接触良好,一般要求电极阻抗低于 5kΩ,这样才能采集到高质量的信号。为了做到这一点,常常会在电极和头皮之间涂抹标准磨蚀性电极凝胶,降低阻抗。

采集到的脑电信号里,除了我们想要的 SSVEP 信号,还混有各种噪声和其他脑电活动,所以接下来就要进行信号滤波与分类。常用的方法是滤波器组(FB)结合最小能量组合(MEC)。滤波器组就像一个多通道的筛子,通过并行带通滤波,把脑电信号按照不同频率范围进行筛选,提取出与各个刺激频率相关的信号成分 。而最小能量组合方法,则是在这些滤波后的信号中,寻找能量最小的组合方式,以此来增强目标 SSVEP 信号,抑制噪声和干扰信号,实现信号的有效分类。

经过滤波和分类后,就能根据不同频率对应的脑电响应,输出具体的控制指令了。比如,在 VR 场景中,设定频率为 12Hz 的闪烁刺激对应 “向前移动” 指令,15Hz 对应 “向左转” 指令 。当系统检测到脑电信号中 12Hz 频率成分的响应最强,就会判断使用者想要向前移动,然后向 VR 场景发送相应的控制信号,让虚拟角色向前迈进。通过这样一套流程,大脑对不同频率视觉刺激产生的响应,就成功转化为了 VR 世界里可执行的命令,实现了 “意念控制” 的神奇效果。

⛳️ 运行结果
Image

📣 部分代码
function [newsig] = random_trials(signal, num_new_trails, Fs, duration)

num_class = length(signal);

duration = Fs * duration;

signal_len = size(signal{1}, 2);

trials_per_class = size(signal{1},3);

sec_to_take = randperm(signal_len-duration, num_new_trails);

elec_num = size(signal{1},1);

newsig = cellfun(@(x) zeros(elec_num, duration, trials_per_class* num_new_trails), cell(1,num_class), 'un', 0);    



for class = 1:num_class

    for trial = 1:trials_per_class

        for time = 1:num_new_trails

            index = (trial-1) * num_new_trails + time;

            newsig{class}(:,:,index) = signal{class}(:, sec_to_take(time):sec_to_take(time) + duration-1, trial);

        end

    end

end

end

🔗 参考文献
图片
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:

相关文章
|
7月前
|
传感器 资源调度 数据处理
基于Dubin和候选集的无人机UAV集群协同攻击目标的Matlab,围绕无人机的目标搜索、冲突避免、联盟组建和任务执行展开考虑无人机资源分配
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、引言:UAV 集群协同攻击的 “核心痛点” 与技术破局 1.1 集群攻击的行业难题:从 “各自为战” 到 “协同制胜” 的鸿沟 无人机(UAV)集群协同攻击凭借 “数量优势 + 分布式作战” 特性,已成为现代任务(军事打击、反恐清剿、应急毁伤)的核心手段,但复杂场景下存在四
222 3
|
缓存 API 区块链
ccxt中文教程
CCXT官方教程中文版由汇智网翻译整理,访问地址:http://cw.hubwiz.com/card/c/ccxt-dev-manual/。 CCXT是一个JavaScript / Python / PHP 开发库,用于数字货币的交易与电子商务,支持众多的比特币/以太币/山寨币交易市场和商户API。
10660 2
|
传感器 机器人 定位技术
Python 机器人学习手册:6~10
Python 机器人学习手册:6~10
850 0
|
5月前
|
Ubuntu Linux 开发者
Ubuntu 22.04 安装 RTX 5090 显卡驱动教程(小白也能学会的 Linux 驱动安装指南)
本教程参考:http://jyumw.cn手把手教你为Ubuntu 22.04安装RTX 5090显卡驱动,涵盖环境清理、PPA源添加、自动/手动安装及验证全流程,小白也能轻松完成Linux显卡配置,开启高性能计算。
|
7月前
|
存储 SQL 缓存
快手:从分散存储到统一分析,Apache Doris 在万亿规模广告场景的应用
面对日增 3 亿行、万亿规模存量广告数据,快手广告数据平台如何突破性能瓶颈、实现架构统一与体验跃升? 快手引入 Apache Doris 替换 ClickHouse、Elasticsearch,从分散存储到统一分析,实现查询性能提升 20~90%,单表写入吞吐 300 万行/秒,存储效率提升 60%!
806 1
快手:从分散存储到统一分析,Apache Doris 在万亿规模广告场景的应用
|
7月前
|
编解码 缓存 安全
Python批量压缩图片:节省存储空间的实用脚本
本文介绍如何用Python(Pillow库)编写50行内批量图片压缩脚本:支持尺寸缩放、质量调节、透明通道处理与进度反馈;兼顾隐私安全、高度定制与多线程加速,轻松将4K/RAW图压缩90%以上,适用于电商、旅行、设计等场景。(239字)
723 6
|
7月前
|
存储 人工智能 安全
数据工程指南:指标平台选型避坑与 NoETL 语义编织技术解析
可有效减少 70% 以上的指标开发维护成本,整体基础设施成本(TCO)节约可达 50%,并释放超过 1/3 的服务器资源。
|
12月前
|
数据格式
表面肌电信号(sEMG)完整处理流程 MATLAB
表面肌电信号(sEMG)完整处理流程 MATLAB
|
Ubuntu 数据安全/隐私保护 网络架构
Ubuntu系统的几种上网方式,Ubuntu安装后如何联网?
在Ubuntu系统中联网需要进行一些简单的设置和配置。我们需要确保我们的网络硬件已经被正确地识别和安装,我们的系统软件已经被更新,我们的网络连接已经被正确地配置。