一种多通道信号相关性分析方法及系统与流程

文档序号:11154649阅读:1043来源:国知局
一种多通道信号相关性分析方法及系统与制造工艺

本发明涉及信号分析技术领域,特别涉及一种多通道信号相关性分析方法及系统。



背景技术:

相关分析发端于1900年代统计学开创时期,目前仍是统计信号处理领域的研究热点。所谓相关,是表征两个随机变量或两路信号之间的统计关系强弱的指标。如果一个随机变量随着另外一个随机变量的增大(减小)而增大(减小),则该两个随机变量满足正相关关系;反之,如果一个随机变量随着另外一个随机变量的增大(减小)而减小(大),则该两个随机变量满足负相关关系。在生物医学上,多通道信号(脑电波、心电图等)的相关性分析至关重要,但在实际应用中,采集的数据难免受到噪声的干扰,特别是脉冲干扰。而相关文献已经证明,在两个变量或通道的样本数据受到脉冲噪声干扰的情况下,统计学家Kendall提出的肯德尔秩相关系数(Kendall’s tau,KT)有很好的稳健性。这说明KT在含有脉冲噪声干扰的多通道信号的相关性分析中应用广泛。因此,对KT的快速求解有很大的实际意义。

现有技术中,求解KT的平台是CPU(即Central Processing Unit,中央处理器)。CPU在进行计算时,主要采用的是串行计算方式,一般包括逻辑运算单元、控制单元和存储单元。在逻辑运算和控制单元中包括一些寄存器,这些寄存器用于CPU在处理数据过程中数据的暂时保存。CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存;CPU有足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件。因此CPU具有核数少、缓存大、单线程性能高,擅长处理具有复杂计算步骤和复杂数据依赖的计算任务的特点。

然而,在利用编程对KT进行实际求解的过程中,相关的程序主要是在数据结构上使用简单的一维数组、不需要复杂的逻辑判断,并且易于并行的程序,而且多通道信号数据的样本数据规模一般很大,所以,在采用CPU对KT进行求解的过程中,求解效率非常低,需要消耗大量的时间。

综上所述可以看出,如何在对KT进行实际求解的过程中提高求解效率,以节省大量的时间是目前有待进一步解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种多通道信号相关性分析方法及系统,在对KT进行实际求解的过程中提高了求解效率,从而节省了大量的时间。其具体方案如下:

一种多通道信号相关性分析方法,包括:

将获取到的多通道信号数据保存至GPU内部存储器;

从所述GPU内部存储器中提取出所述多通道信号数据,然后利用GPU的并行计算能力,并行求解所述多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数,得到与所述多通道信号数据对应的肯德尔秩相关系数。

可选的,所述将获取到的多通道信号数据保存至GPU内部存储器的过程,包括:

获取CPU内部存储器传输的多通道信号数据;

将获取到的多通道信号数据保存至所述GPU内部存储器。

可选的,所述从所述GPU内部存储器中提取出所述多通道信号数据的过程,包括:

创建与所述GPU相适应的N个streams,其中,N为不小于2的整数;

将所述多通道信号数据从所述GPU内部存储器中提取至所述N个streams,其中,每两个通道的信号数据与一个streams相对应。

可选的,所述并行求解所述多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数的过程,包括:

利用所述GPU中的Kernel函数,分别并行计算位于每个streams中的每两个通道的信号数据之间的内层求和值,得到第一结果;其中,内层求和值为KT公式中分子对应的内层求和值;

利用Thrust库,并结合所述第一结果,分别并行计算所述KT公式中分子对应的外层求和值,得到第二结果;

利用所述第二结果和所述KT公式,计算得到与所述多通道信号数据对应的肯德尔秩相关系数。

本发明还公开了一种多通道信号相关性分析系统,包括:

数据保存模块,用于将获取到的多通道信号数据保存至GPU内部存储器;

数据提取模块,用于从所述GPU内部存储器中提取出所述多通道信号数据;

系数求解模块,用于利用GPU的并行计算能力,并行求解所述数据提取模块提取出的所述多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数,得到与所述多通道信号数据对应的肯德尔秩相关系数。

可选的,所述数据保存模块,包括:

数据获取单元,用于获取CPU内部存储器传输的多通道信号数据;

数据保存单元,用于将所述数据获取单元获取到的多通道信号数据保存至所述GPU内部存储器。

可选的,所述数据提取模块,包括:

流创建单元,用于创建与所述GPU相适应的N个streams,其中,N为不小于2的整数;

数据提取单元,用于将所述多通道信号数据从所述GPU内部存储器中提取至所述N个streams,其中,每两个通道的信号数据与一个streams相对应。

可选的,所述系数求解模块,包括:

内层求和单元,用于利用所述GPU中的Kernel函数,分别并行计算位于每个streams中的每两个通道的信号数据之间的内层求和值,得到第一结果;其中,内层求和值为KT公式中分子对应的内层求和值;

外层求和单元,用于利用Thrust库,并结合所述第一结果,分别并行计算所述KT公式中分子对应的外层求和值,得到第二结果;

系数计算单元,用于利用所述第二结果和所述KT公式,计算得到与所述多通道信号数据对应的肯德尔秩相关系数。

本发明中,多通道信号相关性分析方法,包括:将获取到的多通道信号数据保存至GPU内部存储器;从GPU内部存储器中提取出多通道信号数据,然后利用GPU的并行计算能力,并行求解多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数,得到与多通道信号数据对应的肯德尔秩相关系数。

可见,本发明是基于GPU来对多通道信号数据质检的肯德尔秩相关系数进行求解的,由于GPU是并行的,具有缓存小、核数众多、数字逻辑运算单元简单、适合海量数据处理等特点,由此可知,本发明在利用GPU对KT进行实际求解的过程中提高了求解效率,从而节省了大量的时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种多通道信号相关性分析方法流程图;

图2为本发明实施例公开的一种具体的多通道信号相关性分析方法流程图;

图3为本发明实施例公开的一种多通道信号相关性分析系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种多通道信号相关性分析方法,参见图1所示,该方法包括:

步骤S11:将获取到的多通道信号数据保存至GPU内部存储器(GPU,即Graphics Processing Unit,图形处理器)。

步骤S12:从GPU内部存储器中提取出多通道信号数据。

步骤S13:利用GPU的并行计算能力,并行求解多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数,得到与多通道信号数据对应的肯德尔秩相关系数。

可见,本发明实施例是基于GPU来对多通道信号数据质检的肯德尔秩相关系数进行求解的,由于GPU是并行的,具有缓存小、核数众多、数字逻辑运算单元简单、适合海量数据处理等特点,由此可知,本发明实施例在利用GPU对KT进行实际求解的过程中提高了求解效率,从而节省了大量的时间。

参见图2所示,本发明实施例公开了一种具体的多通道信号相关性分析方法,包括如下步骤:

步骤S21:获取CPU内部存储器传输的多通道信号数据。

步骤S22:将获取到的多通道信号数据保存至GPU内部存储器。

也即,本实施例中先获取由CPU内部存储器传输进来的多通道信号数据,然后将其保存至GPU内部存储器,后续利用GPU对多通道信息号数据进行KT求解时,便可从上述GPU内部存储器中获取需要处理的数据。

步骤S23:创建与GPU相适应的N个streams,其中,N为不小于2的整数。

需要说明的是,本实施例中,在GPU上所创建的流(streams)的总数量与当前GPU的整体计算能力相关。

步骤S24:将多通道信号数据从GPU内部存储器中提取至上述N个streams,其中,每两个通道的信号数据与一个streams相对应。

步骤S25:利用GPU中的Kernel函数,分别并行计算位于每个streams中的每两个通道的信号数据之间的内层求和值,得到第一结果;其中,内层求和值为KT公式中分子对应的内层求和值。

本实施例中,上述KT公式具体如下所示:

其中,上述(Xi,Yi)具体表示上述多通道信号数据中的第i组通道信号数据,sgn(·)表示符号函数,n表示上述多通道信号数据对应的通道的总数量。

步骤S26:利用Thrust库,并结合第一结果,分别并行计算KT公式中分子对应的外层求和值,得到第二结果。

步骤S27:利用第二结果和KT公式,计算得到与多通道信号数据对应的肯德尔秩相关系数。

在上一实施例的基础上,本发明实施例公开了一种更加具体的多通道信号相关性分析方法,具体内容如下:

(1)、获取通道数为channel,长度为length的样本数据。在设备上为程序分配全局存储空间并将初始数据从CPU内部存储器中复制到GPU内部存储器中。

(2)、创建4个streams(假设本实施例中使用的GPU中最多可用4个streams)。用双重for循环将每两个通道(即为一对通道)的数据加载到streams上,可实现多streams异步计算不同通道的KT。

(3)、定义当前加载到streams上的一对通道的索引为index_channel,其中,index_channel=(i*channel-(1+i)*i/2)+j-(i+1)其中i、j分别表示外层和内层for循环的变量。循环的过程中,内部调用一个kernel函数,随后CUDA运行时系统生成一个两级层级构造的网格。每个网格(Grid)是线程块(Thread Black)组成的数组。一个网格内的所有线程块的大小一样。每个线程块可包含多个线程(Thread),线程之间可以通信,通过共享内存共享数据。网格中的每个线程块都有一个唯一的blockIdx的值。线程块中的每个线程都有一个唯一的threadIdx的值。通过组合threadIdx和blockIdx值可以为每个线程在整个网格中形成唯一的的全局索引,它决定了线程访问全局存储器中的哪一部分数据。所有的线程之间并行执行同一段kernel代码。即实现对KT公式的分子双重求和的内层求和的代码。

(4)、现有技术中,Kernel函数所能达到的速度只是底层硬件潜在速度的一小部分。出现这种低性能的主要原因是全局存储器,这种存储器通过动态随机访问存储器来实现,在访问时有可能出现长延时和访问带宽有限的情况。在访问全局存储器的路径中也经常发生流量拥塞现象,这种情况只允许很少的线程继续访问。这就造成全局存储器虽然存储容量大,但是访问速度慢。基于此,本发明实施例通过采用一种线程间相互合作的算法,来减少对全局存储器的访问负载。算法的基本思想是让线程在独立的运算之前,先协同地将正在运算的2个通道的数据加载到2个共享存储器中。之后所有的线程之间并行执行同一段通过一个for循环求sgn(Xi-Xj)sgn(Yi-Yj)的代码,每个线程求得一个sgn(Xi-Xj)sgn(Yi-Yj)的值。在这段代码后使用一个栅栏同步函数__syncthreads()协调执行过程,当kernel调用该函数时,线程块中的线程执行到调用位置时需要等待所有的线程执行到该点才能继续执行。随后每个线程将所得sgn(Xi-Xj)sgn(Yi-Yj)的和存在数组d_sgn[i*index_channel]中,i为数据索引。

(5)、当上述双重for循环代码执行完毕后,得到的是所有通道中任意两个通道调用kernel函数时,由每个线程对KT公式分子的双重求和中的内层求和所得到的结果所组成的数列。该数列由length*channel*(channel-1)/2个元素组成。本发明使用一种CUDA并行算法,即规约算法(reduction)来求这个数列的和。CUDA的Thrust编程库提供了丰富的常用并行算法,数列的求和的规约操作可以由thrust::reduce实现,得到相应的数列和。上述数列和,即为channel*(channel-1)/2对通道的KT公式分子的外层求和。

(6)、销毁上述所创建的4个streams,以释放显存。

(7)、将所求数列和除以KT公式的分母再除以通道对的数量。得到KT在channel道通道,长度为length的样本数据中的值。

相应的,本发明实施例还公开了一种多通道信号相关性分析系统,参见图3所示,该系统包括:

数据保存模块11,用于将获取到的多通道信号数据保存至GPU内部存储器;

数据提取模块12,用于从GPU内部存储器中提取出多通道信号数据;

系数求解模块13,用于利用GPU的并行计算能力,并行求解数据提取模块12提取出的多通道信号数据中每两个通道的信号数据之间的肯德尔秩相关系数,得到与多通道信号数据对应的肯德尔秩相关系数。

具体的,上述数据保存模块,可以包括数据获取单元和数据保存单元;其中,

数据获取单元,用于获取CPU内部存储器传输的多通道信号数据;

数据保存单元,用于将数据获取单元获取到的多通道信号数据保存至GPU内部存储器。

另外,上述数据提取模块,具体可以包括流创建单元和数据提取单元;其中,

流创建单元,用于创建与GPU相适应的N个streams,其中,N为不小于2的整数;

数据提取单元,用于将多通道信号数据从GPU内部存储器中提取至上述N个streams,其中,每两个通道的信号数据与一个streams相对应。

其次,上述系数求解模块,具体可以包括内层求和单元、外层求和单元和系数计算单元;其中,

内层求和单元,用于利用GPU中的Kernel函数,分别并行计算位于每个streams中的每两个通道的信号数据之间的内层求和值,得到第一结果;其中,内层求和值为KT公式中分子对应的内层求和值;

外层求和单元,用于利用Thrust库,并结合第一结果,分别并行计算KT公式中分子对应的外层求和值,得到第二结果;

系数计算单元,用于利用第二结果和KT公式,计算得到与多通道信号数据对应的肯德尔秩相关系数。

可见,本发明实施例是基于GPU来对多通道信号数据质检的肯德尔秩相关系数进行求解的,由于GPU是并行的,具有缓存小、核数众多、数字逻辑运算单元简单、适合海量数据处理等特点,由此可知,本发明实施例在利用GPU对KT进行实际求解的过程中提高了求解效率,从而节省了大量的时间。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种多通道信号相关性分析方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1