一种混合物光谱分析方法与流程

文档序号:12357768阅读:477来源:国知局
一种混合物光谱分析方法与流程
本发明涉及混合物成分解析
技术领域
,尤其涉及一种混合物光谱分析方法。
背景技术
:混合物成分解析技术在各个行业中均有广泛的应用。在现有技术中,对混合物进行成分解析是一项非常困难的工作,即使事先知道混合物的组分,也很难采用人工的方式去分辨单一组分的构成。因此用软件分析的方式来进行混合物的谱库检索已经成为混合物成分解析中的一个重要手段。传统的混合物谱库检索的过程是一个检索数据量非常大、分析过程耗时比较久的过程。混合物光谱解析的核心目的就是在已知光谱库中找到某一个光谱或者某几个光谱的组合与目标光谱之间存在最好的最小二乘拟合(所谓“最好”的含义是要使残差光谱后的均方根残差值最小)。然而现有的光谱库中的已知光谱越多,计算次数也就越多,系统内存和系统资源的占用率也就越高,并且混合物光谱的计算能力会受到系统内存和系统处理能力的限制,即上述系统内存和系统处理能力的限制会在一定程度上降低混合物光谱的分析效率。技术实现要素:根据现有技术中存在的上述问题,现提供一种混合物光谱分析方法的技术方案,旨在降低混合物光谱分析的计算复杂度,避免系统内存对计算过程的限制,提高光谱分析效率。上述技术方案具体包括:一种混合物光谱分析方法,适用于混合物成分解析的过程中,依据所述混合物的目标光谱向量、所述混合物的每个样本的样本光谱向量以及分别关联于每个所述样本的光谱浓度表示所述混合物的光谱;其中,形成依序排列有所述目标光谱向量以及每个所述样本光谱向量的第一行矩阵,以及形成依序排列有包括所述目标光谱向量以及每个所述样本光谱向量的第一列矩阵,还包括:步骤S1,计算并暂存由所述第一行矩阵和所述第一列矩阵相乘形成的协方差矩阵中的多个基础矩阵元素;步骤S2,去除所述第一行矩阵中的第一个矩阵元素以形成第二行矩阵,以及去除所述第一列矩阵中的第一个矩阵元素以形成第二列矩阵;步骤S3,将所述第二行矩阵中的所有矩阵元素按顺序划分为包括在多个第一行矩阵块中,以及将所述第二列矩阵中的所有矩阵元素按顺序划分为包括在多个第二列矩阵块中;步骤S4,分别将每个所述第二行矩阵块中的矩阵元素与每个所述第二列矩阵块中的矩阵元素相乘,以分别计算形成多个协方差矩阵块;步骤S5,根据所有所述协方差矩阵块以及暂存的所有所述基础矩阵元素,计算得到所述协方差矩阵,并根据所述协方差矩阵计算得到所述混合物的光谱。优选的,该混合物光谱分析方法,其中,采用下述表达式表示所述混合物的光谱:y→=a1x→1+a2x→2+a3x→3+...+anx→n+ϵ→;]]>其中,表示所述混合物的所述目标光谱向量;xn(n为自然数)表示所述混合物的不同的样本的所述样本光谱向量;an(n为自然数)表示对应xn的光谱的光谱浓度;表示所述目标光谱向量减去所述样本光谱向量的组合之后的残差光谱向量。优选的,该混合物光谱分析方法,其中,多个所述基础矩阵元素包括:所述协方差矩阵中第一行中包括的所有矩阵元素;以及所述协方差矩阵中对角线上包括的所有矩阵元素。优选的,该混合物光谱分析方法,其中,每个所述第二行矩阵块中包括的矩阵元素的数量相同,以及每个所述第二列矩阵块中包括的矩阵元素的数量相同;所述步骤S4具体包括:步骤S41,读取第一个所述第二行矩阵块;步骤S42,读取第一个所述第二列矩阵块;步骤S43,根据被读取的所述第二行矩阵块和被读取的所述第二列矩阵块计算形成一对应的所述协方差矩阵块;步骤S44,判断是否存在尚未被读取的所述第二列矩阵块:若存在,则转向读取下一个所述第二列矩阵块,并返回所述步骤S43;若不存在,则转向读取下一个所述第二行矩阵块,并返回所述步骤S42,直至所有所述第二行矩阵块均被读取完毕。优选的,该混合物光谱分析方法,其中,每个所述第二行矩阵块中包括的矩阵元素的数量为2000个。优选的,该混合物光谱分析方法,其中,每个所述第二列矩阵块中包括的矩阵元素的数量为2000个。优选的,该混合物光谱分析方法,其中:所述第一行矩阵被表达为:所述第一列矩阵被表达为:其中,表示所述混合物的所述目标光谱向量;xn(n为自然数)表示所述混合物的不同的样本的所述样本光谱向量。优选的,该混合物光谱分析方法,其中,采用图形处理器,利用所述混合物光谱分析方法计算得到所述混合物的光谱。上述技术方案的有益效果是:提供一种混合物光谱分析方法,能够降低混合物光谱分析的计算复杂度,避免系统内存对计算过程的限制,提高光谱分析效率。附图说明图1是本发明的较佳的实施例中,一种混合物光谱分析方法的总体流程示意图;图2是本发明的较佳的实施例中,对协方差矩阵进行计算的具体流程示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。现有技术中,通常根据多组分体系的朗伯-比尔定律和加和定律,混合物的光谱可以被表示为下述的表达式:y→=a1x→1+a2x→2+a3x→3+...+anx→n+ϵ→;---(1)]]>其中,表示混合物的目标光谱向量;(n为自然数)表示混合物的不同的样本的样本光谱向量;an(n为自然数)表示对应xn的光谱的光谱浓度;表示所述目标光谱向量减去所述样本光谱向量的组合之后的残差光谱向量。如上文中所述,在上述混合物解析过程中,核心目的就是在已知光谱库中找到某一光谱或者某些光谱组合和目标光谱之间存在最好的最小二乘拟合,即能够使得残差光谱向量进行均方根(rms)计算后得到的均方根残差(rmsresidual)值最小。现有技术中,通常利用最小二乘法来解决上述光谱的多元线性回归问题,并通过整理得到下述正规方程组:XTXa→=XTy→;---(2)]]>其中,XT表示样本光谱矩阵X(对应于样本光谱向量)的转置矩阵。在实际的求残差的计算过程中,由内积原理和矩阵计算可以推到得到,残差光谱向量的值的计算工程和XTX以及有关,并进而在上述表达式的基础上组合形成一个新的协方差矩阵:y→x→1x→2x→3...x→n]]>由于上述协方差矩阵(3)为对称矩阵,因此忽略下三角矩阵部分。从上面的协方差矩阵中可以看到,在混合物的光谱解析计算的过程中,存在大量的协方差计算。例如,当在已存在1000张光谱的光谱库中计算一个组分的最小二乘拟合,则需要计算1000次。如果扩展到2个组分(仍然是1000张光谱),则需要计算1000*999/2=499500次。当然若需要计算3个组分甚至更多时,计算次数会呈几何级数上升。目前,在上述计算过程中,为了不重复计算以及提高计算的速度,会预先计算得到所有协方差矩阵元素并存储在内存中。当实际计算中,用到哪一个矩阵元素,再去内存中取出相应的值。但是对于每个协方差数据来说,其数据大小通常为8byte,而现有的计算机处理设备在操作系统和硬件的各种限制下,其可用的内存空间通常被限定在2G。因此当存在有25000张样本光谱时,系统内存已经无法支持上述计算过程。换言之,若采用现有的处理方法进行混合物光谱分析,其计算速度较慢,计算效率较差,并且在光谱库中的光谱数到达一定数量时会受到系统内存的限制导致无法继续计算下去,阻碍混合物光谱分析和处理的整体进程。基于上文中存在的几个问题,在本发明的较佳的实施例中,提供一种混合物光谱分析方法,该方法适用于混合物成分解析的过程中,并依据混合物的目标光谱向量、混合物的每个样本的样本光谱向量以及分别关联于每个样本的光谱浓度表示混合物的光谱。具体地,上述混合物的光谱表达式如式(1)所示,在此不再赘述。则本发明的较佳的实施例中,上述方法中,首先形成依序排列有目标光谱向量以及每个样本光谱向量的第一行矩阵,以及形成依序排列有包括目标光谱向量以及每个样本光谱向量的第一列矩阵,还包括如图1所示的下述步骤:步骤S1,计算并暂存由第一行矩阵和第一列矩阵相乘形成的协方差矩阵中的多个基础矩阵元素;步骤S2,去除第一行矩阵中的第一个矩阵元素以形成第二行矩阵,以及去除第一列矩阵中的第一个矩阵元素以形成第二列矩阵;步骤S3,将第二行矩阵中的所有矩阵元素按顺序划分为包括在多个第一行矩阵块中,以及将第二列矩阵中的所有矩阵元素按顺序划分为包括在多个第二列矩阵块中;步骤S4,分别将每个第二行矩阵块中的矩阵元素与每个第二列矩阵块中的矩阵元素相乘,以分别计算形成多个协方差矩阵块;步骤S5,根据所有协方差矩阵块以及暂存的所有基础矩阵元素,计算得到协方差矩阵,并根据协方差矩阵计算得到混合物的光谱。在一个具体实施例中,根据表达式(1)中的混合物的光谱,可以依序形成一个第一行矩阵以及一个第一列矩阵。所谓第一行矩阵,其可以表达为:y→x→1x→2x→3...x→n;---(4)]]>所谓第一列矩阵,其可以表达为:y→x→1x→2x→3···x→n;---(5)]]>则首先计算得到上述第一行矩阵和第一列矩阵相乘形成的协方差矩阵(如式(3)所示)中的多个基础矩阵元素,并将这些基础矩阵元素保存在系统内存中。具体地,由于在后续的计算过程中,这些基础矩阵元素会被多次用到,因此事先将这些基础矩阵元素计算出来并暂存在系统内存中,以避免之后的后续计算中对其进行重复计算。具体地,上述基础矩阵元素可以包括上述式(3)中的协方差矩阵中的第一行包括的所有矩阵元素以及对角线上包括的所有矩阵元素。在上述步骤执行完毕之后,去除上述式(4)中表示的第一行矩阵中的第一个矩阵元素,以形成一个第二行矩阵:x→1x→2x→3...x→n;---(6)]]>以及去除上述式(5)中表示的第一列矩阵中的第一个矩阵元素,以形成一个第二列矩阵:x→1x→2x→3···x→n;---(7)]]>随后,上述实施例中,将第二行矩阵内的所有矩阵元素按照先后顺序分别划分为包括在多个第二行矩阵块中,以及将第二列矩阵内的所有矩阵元素按照先后顺序分别划分为包括在多个第二列矩阵块中。随后分别将每个第二行矩阵与每个第二列矩阵相乘,以分别得到不同的协方差矩阵块,具体如下述表达式所示:x→1...x→kxk+1→...x2k→...x→n]]>上述表达式(8)中,可以将第二行矩阵中的矩阵元素至划分为包括在第一个第二行矩阵块中,并将至划分为包括在第二个第二行矩阵块中,以此类推。相应地,可以将第二列矩阵中的矩阵元素至划分为包括在第一个第二列矩阵块中,并将至划分为包括在第二个第二列矩阵块中,以此类推。随后,可以将每个第二行矩阵块分别与每个第二列矩阵块相乘,以得到不同的协方差矩阵。具体地,同样参考表达式(8),其中的协方差矩阵中,第一个行矩阵块和第一个列矩阵块相乘计算形成的协方差矩阵块可以为从到的矩阵块,第二个行矩阵块和第一个列矩阵块相乘计算形成的协方差矩阵可以为从到以此类推。最后根据所有协方差矩阵块形成由第二行矩阵和第二列矩阵相乘得到的协方差矩阵。最后,上述实施例中,根据所有协方差矩阵块以及暂存的所有基础矩阵元素,计算得到协方差矩阵,并根据协方差矩阵计算得到混合物的光谱。综上所述,本发明技术方案中,首先将在计算过程中会多次重复用到的基础矩阵元素预先计算并暂存到内存中,随后将剩下的行矩阵和列矩阵分别划分为包括在不同的矩阵块中,每次取一个行矩阵块和一个列矩阵块进行计算得到相应的一个协方差矩阵块,最后将计算得到的所有协方差矩阵块和上述暂存的基础矩阵元素结合形成代表混合物光谱解析结果的协方差矩阵,并根据该协方差矩阵最终得到混合物的目标光谱。换言之,上述技术方案中,对协方差矩阵的计算分割成多块进行,从而能够在现有系统内存容量的限制下实现大数据量光谱的计算和处理,并且也可用于分布式处理技术,进一步加快光谱分析和处理的速度,提升处理效率。本发明的较佳的实施例中,在上述表达式(8)的协方差矩阵中,由于对角线上的基础矩阵元素已经被预先计算并暂存,因此该协方差矩阵中的对角线上的矩阵元素不再被计算。本发明的较佳的实施例中,每个第二行矩阵块中包括的矩阵元素的数量相同,以及每个第二列矩阵块中包括的矩阵元素的数量相同;则上述步骤S4具体如图2所示,包括:步骤S41,读取第一个第二行矩阵块;步骤S42,读取第一个第二列矩阵块;步骤S43,根据被读取的第二行矩阵块和被读取的第二列矩阵块计算形成一对应的协方差矩阵块;步骤S44,判断是否存在尚未被读取的第二列矩阵块:若存在,则转向读取下一个第二列矩阵块,并返回步骤S43;若不存在,则转向读取下一个第二行矩阵块,并返回步骤S42,直至所有第二行矩阵块均被读取完毕。具体地,本发明的较佳的实施例中,上述步骤S4中,首先按照顺序读取第一个第二行矩阵块和第一个第二行矩阵块,并根据这两个被读取的矩阵块进行相乘计算,以得到一个相应的协方差矩阵块。随后保持读取第一个第二行矩阵块,继续读取第二个第二列矩阵块,并相乘得到相应的协方差矩阵块。上述过程以此类推,直到保持读取第一个第二行矩阵块的情况下,所有的第二列矩阵块均被读取并计算一遍之后,再转向第二个第二行矩阵块,并重新从第一个第二列矩阵块开始读取并进行计算。最终形成一个完整的协方差矩阵。本发明的一个较佳的实施例中,以上述每个第二行矩阵块中包括2000个矩阵元素,以及每个第二列矩阵块中包括2000个矩阵元素为例(即已知光谱库中包括2000张光谱),上述步骤S41-S44可以采用下述方式实现:设定一个初始为0的计数变量i以及一个初始为0的计数变量j,并且设置一个第一处理模块和一个第二处理模块,第一处理模块对应于处理第二行矩阵中的矩阵元素,第二处理模块对应于处理第二列矩阵中的矩阵元素。首先采用第一处理模块读取上述第二行矩阵中的矩阵元素,并在读取过程中进行判断:是否读完(处理完)所有光谱,即是否读完(处理完)第二行矩阵中的所有矩阵元素,并在判断结果为是时确认计算过程结束。若上述第一处理模块尚未处理完所有光谱,则该第一处理模块读取i到i+2000号的光谱(即读取i到i+2000号的矩阵元素)作为a块,随后使计数变量j=i,再判断第二处理模块是否读完(处理完)所有光谱,即是否读完(处理完)第二列矩阵中的所有矩阵元素:若判断结果为是,则使计数变量i=i+2000,并返回到第一处理模块处理的步骤,以继续读取和处理第二行矩阵中的矩阵元素;若判断结果为否,则第二处理模块读取j到j+2000号的光谱(即读取j到j+2000号的矩阵元素)作为b块,随后第一处理模块和第二处理模块结合计算a块和b块,以将a块和b块相乘得到相应的协方差矩阵块,随后使得计数变量j=j+2000,并再次返回到第二处理模块处理的过程中,以继续读取和处理第二列矩阵中的矩阵元素。由于图形处理器(GraphicProcessingUnit,GPU)在处理大量数据时的计算能力比中央处理器(CentralProcessingUnit,CPU)具有更明显的优势,因此在本发明的较佳的实施例中,为了使得上述混合物光谱的解析过程中计算效率更高,计算性能更强,可以采用GPU,利用混合物光谱分析方法计算得到混合物的光谱。以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1