首页 > 其他分享 >利用神经网络对脑电图(EEG)降噪------开源的、低成本、低功耗微处理器神经网络模型解决方案

利用神经网络对脑电图(EEG)降噪------开源的、低成本、低功耗微处理器神经网络模型解决方案

时间:2024-05-07 17:02:13浏览次数:28  
标签:... 片段 EOG 低功耗 神经网络 ------ EEG 数据

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能
这个示例展示了如何使用EEGdenoiseNet基准数据集[1]和深度学习回归去除脑电图(EEG)信号中的眼电图(EOG)噪声。EEGdenoiseNet数据集包含4514个干净的EEG片段和3400个眼部伪迹片段,这些片段可以用来合成带有真实干净EEG的噪声EEG片段

这个示例使用干净和受EOG污染的EEG信号来训练一个长短期记忆(LSTM)模型以去除EOG伪迹。首先,将在原始输入信号上训练模型。然后,引入短时傅里叶变换(STFT)层,使模型在原始输入上提取时频特征进行训练。逆STFT层从去噪的STFT重构结果。使用时频特征特别是在信噪比(SNR)较低时可以提高性能。

EEGdeniseNet数据集包含4514个干净的EEG片段和3400个EOG片段,可用于生成三个数据集,用于训练、验证和测试深度学习模型。所有信号段的采样率为256Hz。实例为MATLAB语言。

% Download the data

datasetZipFile = matlab.internal.examples.downloadSupportFile("SPT","data/EEGEOGDenoisingData.zip");

datasetFolder = fullfile(fileparts(datasetZipFile),"EEG_EOG_Denoising_Dataset");

if ~exist(datasetFolder,"dir")

unzip(datasetZipFile,fileparts(datasetZipFile));

end

下载数据后,datasetFolder中的位置包含两个MAT文件:

EEG_all_epochs.mat 干净EEG数据

EOG_all_epochs.mat (EOG)数据

将干净的EEG和EOG信号相结合,生成具有不同信噪比(SNR)的有噪声EEG数据与干净的EEG数据构成训练数据,并且分成训练、验证和测试数据集。

绘制有噪声EEG数据与干净的EEG数据

显然,传统的任何算法很难将EEG数据从噪声中滤出来。

定义神经网络结构,之所以选择长短期记忆(LSTM)架构,是因为它能够从时间序列中学习特征。

numFeatures = 1;

numHiddenUnits = 100;

layers = [

sequenceInputLayer(numFeatures)

lstmLayer(numHiddenUnits)

dropoutLayer(0.2)

fullyConnectedLayer(numFeatures)

];

设置训练参数
maxEpochs = 5;
miniBatchSize = 150;

options = trainingOptions("adam", ...
Metrics="rmse", ...
MaxEpochs=maxEpochs, ...
MiniBatchSize=miniBatchSize, ...
InitialLearnRate=0.005, ...
GradientThreshold=1, ...
Plots="training-progress", ...
Shuffle="every-epoch", ...
Verbose=false, ...
ValidationData=ds_Validate_T, ...
ValidationFrequency=100, ...
OutputNetwork="best-validation-loss");

模型执行的效果

提高深度学习模型性能的常用方法是使用输入信号数据的特征进行训练。这些特征提供了输入数据的表示,这使得网络更容易学习信号的最重要方面。

选择窗口长度为64个样本、重叠长度为63个样本的短时傅立叶变换(STFT)。这种转换将有效地创建33个复杂特征,每个特征的长度为449个样本。

winLength = 64;

overlapLength = 63;

data = preview(ds_Train_T);

plotSTFT(data,winLength,overlapLength)

定义神经网络

minLen=512; % signal length

numFeatures=66; % number of features

win=rectwin(winLength); % analysis window

layers = [

sequenceInputLayer(1,MinLength=minLen)

stftLayer(Window=win,OverlapLength=overlapLength,transform="realimag")

lstmLayer(numHiddenUnits)

dropoutLayer(0.2)

fullyConnectedLayer(numFeatures)

istftLayer(Window=win,OverlapLength=overlapLength)

];

训练网络

if trainingFlag == "Train networks"

stftNet = trainnet(ds_Train_T,layers,"mse",options);end

网络性能

标签:...,片段,EOG,低功耗,神经网络,------,EEG,数据
From: https://www.cnblogs.com/mcu-ai-QH/p/18168646

相关文章

  • MySQL如何定位慢查询
    做压力测试的时候有的接口非常的慢,接口的响应时间超过了2秒以上。系统部署了运维的监控系统Skywalking,在展示的报表中可以看到是哪一个接口比较慢,并且可以分析这个接口哪部分比较慢,这里可以看到SQL的具体的执行时间,所以可以定位是哪个SQL语句出了问题。另外MySQL中也提供了慢日......
  • python读取nc文件
    使用netCDF4库读取nc文件#***1数据读取与处理#打开NetCDF文件GA_id=nc.Dataset('taiwan_GA.nc','r')DOV_E_id=nc.Dataset('taiwan_DOV_E.nc','r')DOV_N_id=nc.Dataset('taiwan_DOV_N.nc','r')VGG_id=nc.Dat......
  • Elasticsearch - SQL特性
    基于聚合查询(二)求出每个颜色的销售数量、平均价格、最大价格、最小价格、价格总和查询起来比较麻烦:GET/tvs/_search{"size":0,"aggs":{"group_color":{"terms":{"field":"color"},"aggs":{......
  • AI 001 号员工通义灵码入职阿里云丨阿里云云原生 4 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • GpuMalll智算云:重塑AI大模型时代的智能未来
    在数字化浪潮的推动下,人工智能(AI)技术正以前所未有的速度改变着世界。而AI大模型作为这一变革的核心驱动力,正逐步成为科技创新的制高点。GpuMall智算云,作为领先的AI大模型解决方案提供商,致力于为客户提供高效、智能、安全的AI服务,共同开启智能未来。一、GpuMall智算云AI大模型:赋......
  • 车载打气泵pcba方案研发
    车载打气泵是一种常见的充气工具,它在我们的日常生活中扮演着重要的角色。它主要用于给车辆、自行车、橡皮艇、游泳圈等充气,方便人们在各种场合使用。它简单方便的操作,快速高效的充气速度,以及便携的设计,让我们能够在各种场合迅速充气。当然,我们在使用车载打气泵时也需要注意安......
  • MySQL同步故障:“ Slave_SQL_Running:No“ 两种解决办法
    进入slave服务器,运行: ​mysql>showslave status\G            .......              Relay_Log_File:localhost-relay-bin.000535               Relay_Log_Pos:21795072       Relay_Ma......
  • 03_仿Modbus工具案例
    花了6个小时边学边写的Modbus通信案例,通信方式包括RTU,ASCII,TCP,UTP。案例图:   usingModbus.Data;usingModbus.Device;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.IO.......
  • Cookie相关
    cookie的概念cookie是一种客户端会话技术将数据保存到客户端。cookie的利弊:1)将数据保存到客户端,十分方便,同时减轻服务器存储压力2)对保存数据的个数(20)及大小有限制(4kb)作用cookie用来保存少量及不太敏感的数据可以在不登入的情况下,对客户端完成身份识别(即在客户端设置......
  • python-ncm2mp3格式转换
    1、背景:华为音乐VS华为手表,双输华为gtrunner手表导入音乐,在开通了华为音乐会员导入后,通过手表播放竟然还需要连接手机确认会员有效性才能播放,真实逆天啊,不图导入方便我都不开会员好么!手表单独播放音乐就是为了脱离手机,你告诉我必须连接手机音乐app验证,wtf,产品经理你在梦游吗?2、......