CMMM 计算和数学方法在医学 1748 - 6718 1748 - 670 x Hindawi 10.1155 / 2020/9812019 9812019 研究文章 一个并行算法框架对MPI EEG信号的特征提取 https://orcid.org/0000 - 0003 - 0396 - 4836 1 2 https://orcid.org/0000 - 0002 - 4381 - 7796 Xinman 1 https://orcid.org/0000 - 0001 - 7709 - 3143 Wen-Feng 3 https://orcid.org/0000 - 0003 - 1424 - 4076 散热 4 ( 1 电子与信息工程学院 西安交通大学 西安710000年 中国 xjtu.edu.cn 2 国际学院 湖南大学艺术与科学学院 415000年常德 中国 3 电子与电气工程学院 上海理工学院 上海200235 中国 sit.edu.cn 4 石河子医学院 832000年石河子 中国 2020年 27 5 2020年 2020年 23 01 2020年 28 02 2020年 10 03 2020年 27 5 2020年 2020年 版权©2020气熊等。 这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。

在本文中,我们提出一个基于MPI并行框架对于大型的数据集提取EEG信号的功率谱特性,提高大脑信号处理的速度。目前,韦尔奇方法已广泛用于估计功率谱。然而,传统的韦尔奇方法需要大量的时间特别是大型数据集。针对这一点,我们添加了MPI在传统韦尔奇方法和发展成一个可重用的主从并行框架。只要EEG数据的格式转换成特定格式的文本文件,可以快速提取功率谱特性的并行框架。提出了并行框架,EEG信号通道分为记录 N重叠的数据段。然后,PSD的 N部分是由一些节点并行计算。结果由主节点收集和总结。最后的PSD的结果保存在每个通道的文本文件,可以阅读和分析了Microsoft Excel。这个框架不仅可以实现集群但也在台式电脑上。在实验中,我们部署这个框架与基于英特尔台式机CPU。它只花了几分钟来提取2.85 GB EEG数据的功率谱特性,比使用Python快7倍。这个框架很容易为用户,没有任何并行编程经验构建并行算法提取脑电图功率谱。

湖南省教育科学研究项目 17 a148 中国国家自然科学基金 61673316 11601339 湖南省自然科学基金 S2019JJSSLH0130
1。介绍

脑电图是一个记录大脑电活动的信号,这是收集从头皮到电极。脑电图有重要实用价值的应用在医疗、军事、体育、和情报领域,已被广泛认可的所有人员。到目前为止,科学家们从不同的学科在该领域取得了良好的效果。例如,科学家从美国Wadsworth中心帮助瘫痪的人们通过信号输入36个字符,而不是用自己的手指。这些信号对应于特定的大脑活动。在中国,来自清华大学的科学家设计了一个自动拨号系统。实时的系统连接到计算机拨号解释大脑的思维方式所对应的数字( 1- - - - - - 6]。EEG信号的模式识别的研究包括以下步骤:数据收集、数据存储、数据处理、数据分类和识别,如图 1

EEG信号的模式识别的步骤。

为了记录EEG信号,一些需要被放置在头皮上的电极。传统的设备通常有20电极。然而,最近,EEG设备已经使用多达256个电极,如图 2(一个)。的增加使电极记录的数量巨大的数据,从而使得数据处理阶段在图 1更重要和复杂。这不仅会消耗大量的计算机资源,也会导致糟糕的数据提取从而直接影响分类的准确性。有许多信号处理的方法,可用于提取脑电特征具有良好的歧视。这些方法包括时域分析、频域分析和时频分析。比较分析不同的光谱信号表示方法进行摘要( 7]。这些方法包括功率谱密度(PSD)技术,原子分解,时频( t- - - - - - f)能源分布和连续和离散小波方法,频带能量特征的框架可以提取并用于运动图像(MI)分类。指出,在所有的功能类型的EEG信号,PSD方法证明是最一致的,健壮的,准确有效地提取独特的光谱模式左右MI-induced脑电图之间的歧视。

(一)256 -电极装置,(b)可穿戴的脑电图设备,和(c)的脑电图设备禁用。

目前,许多方法用于计算的PSD信号。韦尔奇的方法是最受欢迎的之一,用户在其中计算EEG信号的PSD Python或Matlab环境。Scipy.signal的函数。welch is used in Python and pwelch is used in Matlab. In case of small amount of data, PSD of the EEG signal can be quickly obtained by those two functions. But, from Figures 2 (b) 2 (c),我们可以看到,随着科学和信息技术快速发展和即将到来的5 g时代,可穿戴设备将广泛者优先。EEG信号的人类活动可以收集到这些设备。我们可以收集当前工作或学习一些特定的人的状态(如司机和学生)通过分析他们的脑电图信号( 8, 9]。如果我们计算PSD在Matlab或Python环境中,它将需要很长时间,我们不能忍受它。因此,我们关注的是如何计算PSD EEG信号的并行方法。

并行方法可以提高处理速度,但需要技术支持分布式计算。现在,一般有两个不同的框架进行大数据分析。一个是Apache火花,另一种是OpenMP / MPI。比较了两种计算框架和分析文献[ 10]。Apache火花有良好的数据管理的优势。OpenMP / MPI比Apache火花快一个数量级。出于这一分析,我们提出一个并行框架为大型数据集提取EEG信号的功率谱特性,可以实现在Linux和MPI环境。

本文的主要贡献有三点:

根据韦尔奇算法的原理,我们提出一种并行韦尔奇算法的框架,PFwelch计算PSD的脑电图。PFwelch的架构是基于主从模式。EEG信号记录下每个通道分为 N重叠的数据段。然后, N段计算的主人和奴隶节点并行执行。结果由主节点收集和总结。最后韦尔奇PSD的结果保存在每个通道的文本文件,可以阅读和分析了Microsoft Excel。

使用了一个中间文件的指定格式。世界上有很多种类的脑电图数据集;不同的数据集有不同的文件格式。为了提出并行处理任何类型的EEG数据的框架中,脑电图数据需要转化成中间文件。中间文件之间的关系和并行框架如图 3

比较实验设计。在实验阶段,我们首先运行函数pwelch PSD特征的提取在Matlab环境中脑电图信号作为基准的比较和随后在Ubuntu上运行PFwelch平台。结果表明,PFwelch pwelch相同的结果作为函数。在这之后,我们运行Python函数Scipy.signal。韦尔奇与PFwelch在相同的环境中。实验结果表明,该并行使用Python框架是七倍。

中间文件和并行框架之间的关系。

本文组织如下。部分 2做一个简要的概述韦尔奇方法的原理,然后提出了一种串行算法的韦尔奇方法和韦尔奇提出并行框架的方法。节 3,我们目前的实验结果和分析。提出了讨论和结论部分 4

2。材料和方法 2.1。韦尔奇的方法

功率谱密度(PSD)展品如何权力是包含在一个信号在频域。韦尔奇的方法和多窗口的方法显示最佳的性能在PSD估计( 11]。韦尔奇算法( 12展示在图 4

韦尔奇PSD算法。

从图 4韦尔奇算法,我们可以证明下面的数学形式。

输入信号 x n , n = 0 1 , , N 1 被分成许多重叠的部分。在大多数情况下,应用50%的重叠,当输入信号分成部分。让每个区段的长度 l 和部分的总数 N 年代 。数据的公式 th 段如下: (1) x = x × l 2 + n , 在哪里 n = 0 , , l 1 , = 0、1、2 , , N 1。

分割的过程如图 5

插图的信号分割。

采样长度之间的关系 N,数量的重叠点 ND,段数 N年代,节段的长度 l (2) N = l + l N D N 年代 1

一个光滑的窗口 w n 应用于每一段。一般来说,我们通常用汉明窗。每个段的汉明窗的公式如下: (3) w n = 0.54 0.46 因为 2 n π l , 在哪里 n = 0、1、2 , l 1 , l 表示每个区段的长度。图 6显示一个256点汉明窗与Matlab在时间域和频率域。

汉明窗与Matlab在时间和频率域。

窗函数的目的是为了防止频谱泄漏( 13]。图 7(一)显示了原始信号的频谱泄漏。图 7 (b)展品的频谱泄漏可以有效地减少了汉明窗。

(一)原始信号的频谱泄漏和(b)有窗的信号。

从公式( 3),我们可以得到公式( 4)th段视窗化后的数据: (4) W = x n × w n

傅里叶变换计算每个窗口的部分。这个公式是 作为如下: (5) 一个 k = x n w n e j 2 π / N n k , 在哪里 一个 傅里叶变换的结果吗th窗口的部分, = 0 , 1 , , l 1

每个窗口的部分的周期图是通过使用以下公式计算: (6) ϕ = 1 l U 一个 k 2 , 在哪里 U = 1 / l n = 0 l 1 w 2 n 表示窗口的平均功率 w n

所以, l U = n = 0 l 1 w 2 n 表示窗口的能量函数 w n 长度为 l

最后,我们可以得到的PSD韦尔奇方法的平均周期图,也就是说, (7) 年代 k = 1 l = 0 l 1 ϕ k

2.2。韦尔奇的串行算法的方法

为了设计一个良好的并行程序,有必要了解传统串行算法。韦尔奇的根据以上描述方法,串行算法韦尔奇方法的算法 1

<大胆>算法1:< /大胆>韦尔奇的串行算法的方法。

输入:

EEG_file:脑电图信号文件

韦尔奇welch_len:你想要的长度

seg_len:每段的长度

Fs:采样率

输出:

Wel_psd:韦尔奇PSD的估计

初始化:over_len = seg_len / 2; / /连续长度之间的重叠部分

数据从EEG_file读取并存储到易行的韦尔奇( n];

计算有多少部分: n_segs

指数的范围(0,seg_len)

创建汉明窗赢得[];

u+ =赢(指数)∗赢(指数);/ /计算的累计值 u;

指数+ +;

结束了

seg_start的范围(1,x_len-seg_len + 1)

seg_end = seg_start + seg_len−1;/ / seg_start seg_end是每个数据段的开始点和结束点,分别。

汉明窗的数据应用韦尔奇( n][seg_start, seg_end]之间;

为窗口的数据做FFT。结果存储在变量fft_x;

计算fft_x的振幅的平方。结果存储在变量pgram;

求和功率谱Pxy + = pgram;

start_seg + = seg_len-overlap;

结束了

Wel_psd = Pxy / ( n_ffts×f× u);

2.3。提出并行韦尔奇方法的框架 2.3.1。程序结构

根据韦尔奇的串行算法的步骤方法2.2节中,可以看出,该算法可以实现与MPI并行。并行算法是主从结构的显示如图 8

PFWelch的程序结构。

PFWelch算法部分的结构 2。2包含以下阶段:输入,分裂,地图,减少,输出级。一个通道数据分成七个部分,这是分配给四个节点按照一定的规则。负责所有节点计算。在降低阶段,主进程负责接收从奴隶的过程和结果计算最终的PSD。快速傅里叶变换的并行实现以来成熟发达( 14- - - - - - 20.),我们不需要提供相关细节。韦尔奇的并行算法方法中描述的算法 2

<大胆>算法2:< /大胆>韦尔奇方法的并行算法。

输入:

EEG_file:脑电图信号文件

韦尔奇welch_len:你想要的长度

seg_len:每段的长度

Fs:采样率

输出:

Wel_psd:韦尔奇PSD的估计

开始

初始化:MPI_Init;

排名←MPI_Comm_rank;

大小←MPI_Comm_size;

overlap_len = seg_len / 2;

读EEG_file

从EEG_file存储数据到易行的韦尔奇( n];

计算有多少部分: n_segs

节点= 1大小par-do / /并行过程

采用汉明窗韦尔奇( n]

/ / n间startPos stopPos);startPos stopPos是某些数据段的起始点和结束点,分别。

为窗口的数据做FFT。结果存储在变量fft_x;

计算fft_x的振幅的平方。结果存储在变量pgram;

求和功率谱Pxy + = pgram;

结束了

如果(排名= = 0)/ /主进程

从每一个过程和计算接收Pxy平均周期图。

/ /其他奴隶的过程

发送Pxy掌握的过程

结束

2.3.2。分配的任务

并行程序的关键是如何与每个节点( 21]。如何分配任务平均每个计算节点的一个主要因素影响并行程序的性能。从图 8每个通道的脑电图数据分为7部分( n_segs = 7)。每个段的长度是64。分配方案如表所示 1当节点的数量是4(大小= 4)。

任务分配。

标签的部分 0 1 2 3 4 5 6

标签的节点 0 1 2 3 0 1 2

根据表 1,方便计算信号范围,每个处理器需要计算。例如,处理器需要处理段0和4。从公式( 1),它可以计算出信号范围是[0,63)和(128、191),分别。

3所示。实验结果和分析 3.1。数据集

在实验中,数据从网站下载 http://kdd.ics.uci.edu/databases/eeg/eeg.html。这个数据集来自一个大型研究脑电图检查相关的遗传易感性酗酒。它包括从64个电极放在头皮取样测量在256赫兹。有三个版本的脑电图数据集:小数据集,大数据集,数据集。完整的数据集包含所有122例120次试验。整个数据集压缩到700 MB ( 22]。未压缩时,其大小大约是2.8 GB。毕竟文件转换成中间文件,有11058个文件。

3.2。测试方法和环境

有三个不同的表演需要测试:

精度。MATLAB的结果相比,并行的框架。

速度。Python程序的运行时间与并行的框架。

加速。并行框架运行不同的节点。运行时间记录,可以得到加速。

测试环境的硬件如表所示 2的测试环境软件如表所示 3

测试环境的硬件。

节点 CPU 内存 类型
4 英特尔(R)的核心(TM) i5 - 4460 8 GB 台式电脑

软件的测试环境。

操作系统 并行环境 Matlab
Ubuntu 16.04 C + Mpich 3.3.1 Ubuntu R2018a Win10上
3.3。实验结果

PSD计算一个脑电图频道是在Matlab进行使用韦尔奇函数,即pwelch(数据、汉明(64),32岁,64年,256年)。pwelch参数意味着样本数据分成部分,每个部分都有64数据点,相邻的重叠部分是32,采用汉明窗,采样率为256 Hz。图 9显示的结果韦尔奇在Matlab方法在三个不同的窗口功能。

韦尔奇导致Matlab。

我们做了相同的测试在并行框架。PSD结果存储在文本文件中可以访问Microsoft Excel和图所示 10

PFWelch的结果。

对比数据 9 10结果表明,通过Matlab和PFWelch都是一致的,这印证了PFWelch的正确性。性能测试时间,我们第一次使用不同数量的节点在不同的部分来计算一个脑电图的PSD文件PFWelch(在这个实验中,我们把不同的CPU核不同节点)。时间消耗(以秒)记录在表中 4。Python环境中比较,时间成本的串行算法也被列在表格 4。当我们没有使用Matlab Linux版本,我们用Python等进行了比较实验。

一个脑电图文件的时间成本。

节点
1 2 3 4 Python
7 0.0543 0.0413 0.0382 0.0365 0.228
3 0.075 0.06 0.056 0.056 0.235
15 0.064 0.054 0.05 0.047 0.224

其次,我们使用不同的节点数量7段计算与PFWelch脑电图的PSD文件。时间成本记录在表中 5

时间成本的脑电图文件。

节点 1 2 3 4 Python

时间成本(s) 478.778 354.008 342.715 337.966 2451年

加速可以评估PFWelch的时间性能。加速的定义是加速= Ts / Tp, Ts表明串行操作的时间和Tp表明并行操作的时间。加速效果如图 11。图 11表明,随着节点数的增加,加速也增加。但是,在不同的情况下,增加是不一样的。脑电图所有文件,图 11表明,随着节点数的增加到一定值,加速缓慢增加。原因是时间包括文件打开和关闭。这一次不能改变的节点数量增加的时候。

PFWelch加速。

对于一个脑电图文件,PFWelch显示最佳的性能当信号分成7段。这是因为它的最大加速时的节点数量是4。因此,我们将信号分成7段计算所有脑电图的PSD文件在图 11。如果信号被分成15段,加速增长基本上以线性的方式,但它的加速是最低的。图 12清楚地揭示了段的数量和速度之间的关系。

段的数量和速度之间的关系。

可以看出,通过增加节点的数量,加速提高。但是,仅仅增加节点的数量不能提高加速。从图 12时,我们可以看到,加速下降段的数量增加到15。当段的数量是7和节点的数目是4,得到最佳的加速性能。

4所示。讨论和结论

目前,虽然有几种方法可以从EEG信号中提取特征,PSD仍然是最重要的一个方法。但是,在处理大量的脑电图数据,有必要提高PSD的计算速度。因此,并行框架提出了用于解决问题的长时间从脑电图数据集提取PSD的特点在大数据环境。该框架是基于C + MPI语言和主从方式完成的。与传统的串行韦尔奇方法相比,这个框架将信号划分为 N段和他们将平均分配到不同的节点,PSD可以并行计算。在实验中,的值 N分别是3 7和15。节点的数量从1到4。对于给定的数据集,我们发现,虽然可以提高加速通过增加节点,加速性能会降低如果有太多的片段。实验表明,并行框架的最佳性能只能当节点和部分的数量是合理的选择。PFWelch是7倍的速度使用Python在相同的硬件和操作系统平台。

由于MPI的强大功能,该框架不仅可以部署在集群上而且在台式电脑,方便用户。实验结果也证实,该框架是正确的,有效的,具有良好的实用价值。它可以应用于提取各种各样的脑电图数据集稍加修改。研究人员感兴趣的PFWelch可以下载源代码 https://github.com/abcxq

数据可用性

使用的所有数据在我们的研究中可以访问 http://kdd.ics.uci.edu/databases/eeg/eeg.html

的利益冲突

作者宣称没有利益冲突。

确认

这项工作是由湖南省教育科学研究项目(没有。17 a148),中国国家自然科学基金(61673316和61673316号),和湖南省自然科学基金(没有。S2019JJSSLH0130)。

B。 Astolfi l Valdes-Sosa p。 电生理大脑连通性:理论和实现 IEEE生物医学工程 2019年 66年 7 2115年 2137年 10.1109 / tbme.2019.2913928 2 - s2.0 - 85067887401 Y。 M。 X。 从脑电图信号的相空间中提取特征的脑-机接口 Neurocomputing 2015年 151年 10 1477年 1485年 10.1016 / j.neucom.2014.10.038 2 - s2.0 - 84918781855 m . H。 c . L。 J。 中国拼写Electroencephalogram-based脑机接口系统:一个调查 前沿的信息技术和电子工程 2018年 19 3 10.1631 / fitee.1601509 2 - s2.0 - 85046880879 B。 年代。 太阳 K。 设计一个网络排列熵及其应用混沌时间序列和脑电图信号 2019年 21 9 849年 10.3390 / e21090849 2 - s2.0 - 85071925644 Y。 X。 Z。 Xuebin X。 使用wavelet-CSP脑电图信号的分类和投影极端的学习机器 审查的科学仪器 2018年 89年 7 074302年 10.1063/1.5006511 2 - s2.0 - 85051065897 年代。 太阳 K。 R。 部分模糊熵算法和非线性时间序列的复杂性分析 欧洲物理专题》杂志上 2018年 227年 7号到9号 943年 957年 10.1140 / epjst / e2018 - 700098 x 2 - s2.0 - 85055051487 赫尔曼 P。 普拉萨德 G。 McGinnity t M。 Coyle D。 因为它使得基于脑电图的光谱特征提取方法比较分析运动图像分类 IEEE神经系统和康复工程 2008年 16 4 317年 326年 10.1109 / tnsre.2008.926694 2 - s2.0 - 49649127153 Y。 Cleeren E。 J。 发展比较头皮脑电图和耳背式脑电图可穿戴的局灶性癫痫患者癫痫检测系统 传感器 2017年 18 2 29日 10.3390 / s18010029 2 - s2.0 - 85039049370 j·W。 Ku Y。 d . Y。 J。 黄永发。 h . C。 可穿戴内置脑电图SSVEP-based脑机接口系统 电子信件 2018年 54 7 413年 414年 10.1049 / el.2017.3970 2 - s2.0 - 85044638753 Reyes-Ortiz j·L。 Oneto l Anguita D。 大云中的数据分析:火花hadoop vs MPI / openMP贝奥武夫 Procedia计算机科学 2015年 53 121年 130年 10.1016 / j.procs.2015.07.286 2 - s2.0 - 84939199851 Jahromi m·G。 Parsaei H。 Zamani 一个。 Stashuk d . W。 横向比较中使用的运动单位电位特性EMG信号分解 IEEE神经系统和康复工程 2018年 26 5 1017年 1025年 10.1109 / tnsre.2018.2817498 2 - s2.0 - 85044253969 Parhi K·K。 Ayinala M。 低韦尔奇功率谱密度计算 IEEE电路和系统I:普通文件 2014年 61年 1 172年 182年 10.1109 / tcsi.2013.2264711 2 - s2.0 - 84892594837 哈里斯 f·J。 使用windows离散傅里叶变换的谐波分析 IEEE学报》 1978年 66年 1 51 83年 10.1109 / proc.1978.10837 2 - s2.0 - 0017851927 Ayinala M。 布朗 M。 Parhi K·K。 管线式并行fft架构通过折叠变换 IEEE超大规模集成电路(VLSI)系统 2012年 20. 6 1068年 1081年 10.1109 / tvlsi.2011.2147338 2 - s2.0 - 84861140677 T。 H。 公园 J。 公园 C。 高速低radix-2修改5为千兆WPAN应用FFT处理器 IEEE国际研讨会电路与系统学报》上 2013年5月 中国,北京 IEEE Z。 l·G。 W。 Y。 Y。 Tomisawa M。 小说对OFDM超宽频系统的FFT处理器 《APCCAS IEEE亚太会议电路与系统 2006年4月 荷兰埃因霍温 IEEE 年代。 Y。 B。 Y。 面积和权力高效超宽频系统的FFT处理器 学报2007年国际会议上无线通信、网络和移动计算 2007年9月 中国上海 s . N。 j·W。 t Y。 2.4 - gs / s fft处理器ofdm-based wpan应用程序 IEEE电路和系统II:表达内裤 2010年 57 6 451年 455年 10.1109 / tcsii.2010.2048373 2 - s2.0 - 77953715323 加里多 M。 Parhi K·K。 Grajal J。 管线式FFT架构为实值信号 IEEE电路和系统I:普通文件 2009年 56 12 2634年 2643年 10.1109 / tcsi.2009.2017125 2 - s2.0 - 79951696294 Ayinala M。 Parhi K·K。 Parhi 柯沙布 K。 为实值信号FFT架构基于Radix-2{3}和Radix-2{4}算法 IEEE电路和系统I:普通文件 2013年 60 9 2422年 2430年 10.1109 / tcsi.2013.2246251 2 - s2.0 - 84883462378 开创 l 竹林 a . N。 李平 Z。 在MPI主从并行遗传算法框架 Acta Simulata Systematica中央研究院 2004年 16 9 1938年 1827年 http://kdd.ics.uci.edu/databases/eeg/eeg.html