【技术领域】
本发明属于信号处理领域,具体为一种并行超快速emd信号处理系统。
背景技术:
emd(empiricalmodedecomposition,经验模态分解)是由黄锷(n.e.huang)先生在nasa于1998年创造性地提出的一种非线性、非平稳的时域分解方法;优点在于数据驱动的自适应性,emd可以自适应地将原始序列分解为若干本征态函数(imfs);其中每个imfs的含义都与一个窄带频率有关,通常每个imfs会与一个特定的物理过程有关。
例如,对于具有间歇性振荡的信号,一个imf可以包含不同时间位置上的不同波长的振荡,对于其他的物理过程也是这样,每个imf都可能对应有特定的物理含义;自适应性的巨大优势使得emd目前在海洋、大气、天体观测、地震记录分析上都有着广泛的应用。
然而,由于emd的计算过程的复杂性,尤其是求解上下包络和迭代计算imfs的过程,emd的计算速度一直是一大挑战。
如中国发明专利202010017502.0,设计了一种实时处理信号的emd方法、装置,但是该方法的核心计算过程都采用串行方式,理论上可以实时,但实际上会应为计算速度的原因,无法实现真正的实时处理;如中国发明专利201911070409.x,提出了一种基于改进emd与阈值法融合的心电信号去噪方法,但是该方法的计算并不实时,无法实时处理信号会对方法的普适性带来巨大挑战。
由此可见,提供一种并行超快速emd信号处理系统是本领域亟需解决的问题。
技术实现要素:
为解决上述问题,本发明提出一种并行超快速emd信号处理系统,其包括信号实时采集模块、信号延拓模块、矩阵并行拆分模块、并行求解模块和信号融合模块;采用并行拆分和并行求解策略,将原始多通道信号时间序列分解为k个本征模态函数,具体步骤包括原始信号采集、实时处理流数据、信号延拓、矩阵并行拆分、矩阵并行求解、imf判断、信号融合、多通道并行嵌套。
进一步的,所述原始信号采集的原始信号数据为语音双声道信息,长度为480000帧。
进一步的,所述实时处理流数据是对信号实时采集模块预先设定实时处理流长度t,在接收的原始数据达到设定的实时处理流长度t后,提取该实时处理流数据s(t,p)。
进一步的,所述信号延拓通过信号延拓模块对实时获得的处理流数据的起始端和终止端分别进行延拓,得到实时延拓流。
进一步的,所述信号延拓根据当前处理流数据的排序数是否为1,采用不同的信号延拓方法,当前处理流数据的排序数为1采用镜像延拓的方法,对该处理流数据的起始端和终止端分别进行镜像延拓,当前处理流数据的排序数为γ,则对于第γ段处理流数据的起始端,提取第γ-1段处理流数据的终止端的长度为α的数据,作为第γ段处理流数据的起始端延拓。
进一步的,所述矩阵并行拆分通过矩阵并行拆分模块,计算处理流数据上下极值的包络,求解方程组对应的矩阵时,采用大步长约化法,将单个三对角矩阵分解为多个三对角矩阵。
进一步的,矩阵并行求解采用托马斯算法,对矩阵并行拆分获得的三对角矩阵方程组进行求解。
进一步的,所述imf判断采用emd常规计算方法得到imf,根据imf判断准则决定是否需要继续迭代。
进一步的,所述信号融合是将各个处理流数据中与实时处理流长度t等长的相应supimfn(t,p)得到信号处理结果imfn(t)。
进一步的,所述原始信号数据为双声道语音数据,存在2个通道,且各个通道之间不存在耦合,所述多通道并行嵌套对两个通道的信号进行并行处理。
与现有技术相比,本发明的有益效果是:
(1)本发明在求解上下包络过程中采用矩阵并行拆分和矩阵并行求解的策略,实现超快速并行emd信号处理。
(2)本发明对于多通道的信号可以进行嵌套并行,多个通道并行,同步进行emd信号处理。
(3)结合并行超快速和流式数据传输的两大特点,本发明可以对原始信号数据进行实时emd处理。
(4)本发明在信号边界处进行了延拓,确保信号边界处emd分解的准确性。
【附图说明】
图1为本发明提供的一种并行超快速emd信号处理系统的整体流程图。
【具体实施方式】
本发明所提到的方向用语,例如「上」、「下」、「前」、「后」、「左」、「右」、「内」、「外」、「侧面」等,仅是附图中的方向,只是用来解释和说明本发明,而不是用来限定本发明的保护范围。
参见图1,给出了本发明并行超快速emd信号处理系统的流程图,其采用并行拆分和并行求解策略,将原始多通道信号时间序列分解为k个本征模态函数imfn(t),(n=1,2,…,k,t=1,2,…,l);所述的并行超快速emd信号处理系统包括信号实时采集模块1、信号延拓模块2、矩阵并行拆分模块3、并行求解模块4和信号融合模块5。
使用该系统进行并行超快速emd信号处理的步骤如下:
步骤1:原始信号采集
实时采集原始信号数据d(t),(t=1,2,…),原始信号为语音双声道信息,长度为480000帧。
步骤2:实时处理流数据
对信号实时采集模块1预先设定实时处理流长度t,t=480,在接收的原始数据达到设定的实时处理流长度t后,提取该实时处理流数据s(t,p),(t=1,2,…,t,p=1,2,…),p代表当前处理流的排序数。
步骤3:信号延拓
通过信号延拓模块2对实时获得的处理流数据s(t,p),(t=1,2,…,t,p=1,2,…)的起始端和终止端分别进行延拓,得到实时延拓流y(t,p),(t=1,2,…,l,p=1,2,…)。
具体延拓方法如下:
根据当前处理流数据的排序数是否为1,采用不同的信号延拓方法,方法如下:
1)如果当前处理流数据的排序数为1,即第1段处理流数据,则采用镜像延拓的方法,对该处理流数据的起始端和终止端分别进行镜像延拓,即截取起始端和终止端的长度为α的数据,相对于起始或终止端点进行镜像,然后根据镜像数据进行延拓,要求延拓数据中必须至少存在1对非端点处的极大值和极小值点;
2)如果当前处理流数据的排序数不为1,为γ,即并非第1段处理流数据,则对于第γ段处理流数据的起始端,提取第γ-1段处理流数据的终止端的长度为α的数据,作为第γ段处理流数据的起始端延拓;对于第γ段处理流数据的终止端,截取终止端长度为α的数据,相对于终止端进行镜像,然后根据进行数据进行终止端延拓,要求起始端和终止端的延拓数据中必须至少存在1对非端点处的极大值和极小值点。
步骤4:矩阵并行拆分。
在计算处理流数据的各个imf时,需要用到对上下极值的包络的计算;通过矩阵并行拆分模块3,计算处理流数据上下极值的包络;求解方程组对应的矩阵时,采用大步长约化法,将单个三对角矩阵分解为多个三对角矩阵,具体方法如下:
1)根据样条曲线的分段定义,每一段应符合公式si(x)=ai+bi(x-xi)+ci(x-xi)2+di(x-x3)3;
2)样条曲线应满足以下边界和连续性条件:
3)对于自由边界条件,代入边条件和约束条件可以得到:
其中,hi=xi+1-xi,mi=s″i(xi)=2ci;该样条曲线的求解为三对角矩阵求解问题;记以上三对角矩阵为a
4)采用循环约化的方法,对矩阵a进行处理:
对于ax=y,取第i-1,第i和第i+1个这3个相邻的方程
i=3,4,…,n-2
对这三个方程进行消元,第i-1个方程消掉第i个方程中的xi-1,第i+1个方程消掉第i个方程中的xi+1,则第i个方程变成如下结果:
其中:
采用并行方式,进行以上的消元操作,直到将所有的相邻的3个方程组都处理完毕,可以得到一个新的规模减半的方程组a(1)x=y(1);
注意,原始ax=y方程中第一个方程和最后一个方程需要做特殊处理,
5)当并行因子γ=4时,采用大步长约化的方式,对方程a(1)x=y(1)进行处理:
从a(1)x=y(1)中交替取出第i-2,第i和第i+2个方程(i=5,6,…,n-4);
通过第i个方程消掉xi-2和xi+2,得到如下方程:
除了前4个和后4个方程作为特殊形式对待,在并行完成所有交替3个方程的消元之后,得到如下方程:a(2)x=y(2);
6)对a(2)进行行重排,得到多个三对角矩阵,取a(2)的第4k+1行,(k=1,2,…,τ),得到:
对应的方程组为:
列行展开去掉为0的列,得到:
由此,a(2)x=y(2)的所有第4k+1行,(k=1,2,…,τ),构成了一个新的三对角矩阵方程组,同理,所有第4k+2,4k+3,4k+4行会分别构成一个三对角矩阵方程组,可以分别作为独立的输入传输到并行求解模块,并行进行三对角矩阵方程组的求解;
7)同理,对于其他取值的并行因子γ时,可以得到形式为
该并行求解过在取相邻3个方程的过程中,每3个方程的计算过程中均不存在耦合,因此可以并行进行,无需串行等待。
得到γ个三对角矩阵后,γ个三对角矩阵的求解过程互相也不存在耦合,因此可以在后续的并行求解模块中并行进行,无需串行等待。
步骤5:矩阵并行求解。
采用托马斯算法,对三对角矩阵方程组进行求解,求解方法如下:1)对于给定的三对角矩阵方程组:
将第一行的首元素置为1,得到:
2)用矩阵第一行消去第二行的首元素,得到:
3)依次用前一行消去后一行的首元素,得到:
4)从矩阵末行开始回代,可以依次对x6到x1进行求解。
步骤6:imf判断。
求解得到上下包络之后,采用emd常规计算方法得到imf,根据imf判断准则决定是否需要继续迭代,如果需要,则将处理流数据减去当前上下包络的平均信号之后返回步骤3,如果不需要继续跌打,则进行下一步。
步骤7:信号融合。
将各个处理流数据中与实时处理流长度t等长的相应supimfn(t,p),(n=1,2,…,k,t=1,2,…,l+2α,p=1,2,…,λ)进行融合,得到信号处理结果imfn(t),(n=1,2,…,k,t=1,2,…,λl),其中α为数据延拓长度,λ为处理流总个数,融合流程如下:
1)对每个supimfn(t,p),(n=1,2,…,k,t=1,2,…,l+2α,p=1,2,…,λ),去掉前后端点附近的长度为α的数据,得到长度为l的各个supimfn(t,p),(n=1,2,…,k,t=1,2,…,l,p=1,2,…,λ);
2)按时间顺序,将相应层数的supimfi(t,p),(n=i,t=1,2,…,l,p=1,2,…,λ)首尾相连,得到第i层信号处理结果imfi(t),(n=i,t=1,2,…,λl);
3)所有层数的imfi(t),(n=i,t=1,2,…,λl)进行组合,得到信号处理结果imfn(t),(n=1,2,…,k,t=1,2,…,λl)。
步骤8:多通道并行嵌套
该原始信号数据为双声道语音数据,存在2个通道,且各个通道之间不存在耦合,因此对两个通道的信号进行并行处理。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。