本发明涉及信号检测技术领域,特别是涉及光电信号峰值检测方法与系统。
背景技术:
目前在信号检测技术领域主要分为模拟信号检测和数字信号检测两类,某些时候针对相同设备(仪器)输出的信号可以采用模拟信号检测,也可以采用数字信号检测,例如针对数字PCR(Polymerase Chain Reaction,聚合酶链式反应)仪检测的信号检测中,模拟信号检测和数字信号检测均可采用。
采用不同的信号检测方式其可以带来不同的效果,一般来说,针对数字类型的设备(例如PCR仪)采用数字信号检测方式会更好,但是在使用数字信号检测方法时,就会产生大量采集的光电信号数据,因此在处理原始信号数据时,需要一种高精确度并且能够迅速提取出光电信号峰值的方法。
技术实现要素:
基于此,有必要针对目前尚无一种高精确度且高效的光电信号峰值检测方法的问题,提供一种高精确度且高效的光电信号峰值检测方法与系统。
一种光电信号峰值检测方法,包括步骤:
分段读取原始光电信号,获取原始光电信号的第一分段数据集合;
获取各第一分段数据的平均值参数,并对各第一分段数据的最前端和最后端分别补入预设量对应的第一分段数据的平均值参数,获得第二分段数据集合;
选取母小波函数对各第二分段数据进行一阶求导和二阶求导;
提取各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点;
根据各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置;
根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。
一种光电信号峰值检测系统,包括:
分段读取模块,用于分段读取原始光电信号,获取原始光电信号的第一分段数据集合;
补入模块,用于获取各第一分段数据的平均值参数,并对各第一分段数据的最前端和最后端分别补入预设量对应的第一分段数据的平均值参数,获得第二分段数据集合;
求导模块,用于选取母小波函数对各第二分段数据进行一阶求导和二阶求导;
极大值提取模块,用于提取各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点;
波峰确定模块,用于根据各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置;
波峰值确定模块,用于根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。
本发明光电信号峰值检测方法与系统,对原始光电信号分段读取,并对分段读取的每段数据前端和后端插入预设量平均值参数,选取母小波函数对处理后的分段数据进行一阶求导和二阶求导,提取一阶导数极大值点与第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置,根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。整个过程中,对原始光电信号的分段前端和后端分别补入平均值参数,提高对原始光电信号的处理精度、采用母小波函数对补入之后的分段数据进行一阶导数和二阶导数处理,准确确定波峰位置,另外还无需对原始光电数据进行复杂的滤波处理,显著提高原始光电信号峰值检测的效率。
附图说明
图1为本发明光电信号峰值检测方法第一个实施例的流程示意图;
图2为微滴荧光采集系统示意图;
图3为原始光电信号数据波形示意图;
图4为原始光电信号数据局部(第二分段数据)放大波形示意图;
图5为第二分段数据及其一阶导数波形示意图;
图6为第二分段数据及其一阶导数与二阶导数波形示意图;
图7为选取的一组相邻极大值点示意图;
图8为由一组相邻的一阶导数极大值和二阶导数极大值求解出来的峰值点(局部放大)示意图;
图9为本发明光电信号峰值检测系统第一个实施例的结构示意图。
具体实施方式
如图1所示,一种光电信号峰值检测方法,包括步骤:
S100:分段读取原始光电信号,获取原始光电信号的第一分段数据集合。
原始光电信号是从仪器设备上直接采集到的光电信号。在实际应用中,仪器设备中的光电信号系统将光信号转换为电信号,此时电信号属于模拟信号,再经过模数转换变为数字信号,以便进行下一步的处理。为便于解释说明原始光电信号的来源,下面将以微滴式数字PCR仪输出的信号为例详细解释。微滴式数字PCR系统是在一般的PCR扩增前对样品进行微滴化处理,即将含有核酸分子的反应体系分成上万个纳升级的微滴,其中每个微滴不含待检测核酸靶分子,或者含有一个至数个待检测核酸靶分子。经过PCR扩增后,逐个对每个微滴进行检测,有荧光信号的微滴判断为1,没有荧光信号的微滴判断为0,然后根据泊松分布原理及阳性微滴的个数与比例即可得出靶分子的起始拷贝数或者浓度。具体如图2所示,微滴荧光采集系统中滴液生成器生成直径几乎相同的N个微滴,发光系统激发微滴荧光,1号光信号采集系统和2号光信号采集系统采集微滴荧光信号→通过光电转换系统,将光信号转换为电信号→通过模数转换信号,将模拟信号转换为数字信号输出,即得到原始光电信号。
一般来说原始光电信号是一个数据量庞大的数据,在对其进行处理过程中需要对进行分段读取,获得一段一段的原始光电信号,再针对每一段原始光电信号单独进行后续相同的处理,最终将每一段原始光电信号处理结果汇聚,得到原始光电信号最终的处理结果。非必要的,针对每一段原始光电信号可以采用并行处理的方式进行处理,以便有效提高数据处理效率。另外,在第一分段数据集合中第一分段数据的数量可以为单个或为多个,所有的第一分段数据汇聚即为原始光电信号,具体如图3与图4所示,图4所示为图3中原始光电信号的一段(第一分段数据)。
S200:获取各第一分段数据的平均值参数,并对各第一分段数据的最前端和最后端分别补入预设量对应的第一分段数据的平均值参数,获得第二分段数据集合。
针对每一个第一分段数据,分别获取其对应的平均值参数,在每个第一分段数据的最前端和最后端分别补入一定量对应的第一分段数据的平均值参数,获得第二分段数据集合。在这里,补入量的大小可以基于历史经验数据或者试验数据进行设定,最终得到的第二分段数据的数量与第一分段数据的数量相等。例如步骤S100对原始光电数据分段处理之后得到1号第一分段数据、2号第一分段数据和3号第一分段数据,步骤S200即获取1号第一分段数据的平均值参数O、2号第一分段数据的平均值参数P以及3号第一分段数据的平均值参数Q,并在1号第一分段数据的前端和后端补入一定量平均值参数O、在2号第一分段数据的前端和后端补入一定量平均值参数P、在3号第一分段数据的前端和后端补入一定量平均值参数Q,得到1号第二分段数据、2号第二分段数据以及3号第二分段数据。在每段信号都加入一定数量的原始光电信号的平均值,在后续使用小波变换求导的时候并不会出现旁瓣效应,因此不会丢失原始光电信号的最前端和最后端部分数据的处理,从而提高了对原始光电信号的处理精度。第二分段数据具体如图4所示。
S300:选取母小波函数对各第二分段数据进行一阶求导和二阶求导。
选用母小波函数对每个第二分段数据进行一阶求导和二阶求导,具体来说,母小波函数可以选择多贝西(Daubeichies)小波,高斯(Gaussian)小波及其导数等满足母小波条件的函数。具体来说,可以采用以下方式选取最优母小波函数。
由小波变换的性质可得公式(1)、公式(2),公式(1)中:Wf(a,b)为小波系数、f(x)为原始信号,a为缩放尺度,b为平移尺度,公式(2)中:为所选择的小波类型,其中*表示该函数的共轭函数,为卷积运算符。
由公式(3)可得,当选择合适的函数便可对函数f(x)求其n阶导数,因此当选择的g(x)函数的n阶导数满足构成母小波函数的条件时,就可以求出原始信号的n阶导数。具体来说,在实际应用中例如微滴式PCR仪器检测系统的原始光电信号数据的波形类似为高斯波形,并且高斯函数的导数都可以满足构成母小波的条件,所以在对微滴式PCR仪光信号进行峰值检测时可以选择高斯函数的一阶导数和二阶导数作为求解原始数据一阶导数和二阶导数的母小波函数。
在公式(1)中缩放尺度a与平移尺度b的参数值可以基于历史经验数据获得。更一步的,在一些情况下还可以获得缩放尺度a与平移尺度b的最优解。例如针对本发明光电信号峰值检测方法应用于微滴式PCR仪光信号检测时,由于微滴式PCR的微滴直径都是固定的参数,因此每个正常波峰的宽度是大致相等的,所以在选择小波的尺度参数时,该值是能够通过实验结果来确定最优的尺度参数a。当确定尺度参数之后,就可以直接对原始信号求取一阶导数和二阶导数。针对原始光电信号进行一阶求导和二阶求导的结果具体如图5以及图6所示。
S400:提取各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点。
如图5以及图6所示针对步骤S300一阶求导和二阶求导的结果,提取各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点。非必要的,还可以基于历史经验数据对一阶导数极大值设置阈值,并针对二阶导数极大值设置阈值,剔除不在阈值范围内一阶导数极大值点和二阶导数极大值点。
S500:根据各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置。
基于步骤S400得到原始一阶导数和二阶导数的极大值点,即可确定第二分段数据中波峰位置。具体来说,确定过程主要包括:
步骤一:针对单个第二分段数据,选取一组分别与一阶导数极大值点A相邻的二阶导数极大值点B与二阶导数极大值点C;
步骤二:当一阶导数极大值点A对应的横坐标参数大于二阶导数极大值点B对应的横坐标参数、且小于二阶导数极大值点C对应的横坐标参数时,确定第二分段数据中波峰的横坐标参数为二阶导数极大值点B的横坐标参数与二阶导数极大值点C的横坐标参数之和的二分之一
在具体实施例中,具体如图7所示,提取一组相邻的一阶导数极大值点为(x1,y1),和二阶导数极大值点分别为(x2,y2)、(x2’,y2’),当这三个点满足条件:x2<x1<x2’,那么就可以判断在(x2,x2’)中间存才一个原始信号的波峰,即x2、x2’的平均值(x2+x2’)/2就是该波峰的位置Xp,若不满足直接剔除三个极值点。
S600:根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。
原始光电信号的波峰峰值还包括波峰宽度和波峰高度,在步骤S500中已经求得波峰位置,基于波峰位置以及第二分段数据中原始光电信号的整个波形数据,即可计算出波峰宽度以及波峰高度,具体如图8所示。获得当前第二分段数据的波峰峰值,将各个第二分段数据的波峰峰值汇聚,最终获得原始光电信号的波峰峰值。非必要的,步骤300至步骤S600中的计算过程可以通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现,另外还可以通过其他软件编程语言(譬如C语言,C#,C++,Java,Matlab,R语言等)编写的程序来实现。
本发明光电信号峰值检测方法,对原始光电信号分段读取,并对分段读取的每段数据前端和后端插入预设量平均值参数,选取母小波函数对处理后的分段数据进行一阶求导和二阶求导,提取一阶导数极大值点与第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置,根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。整个过程中,对原始光电信号的分段前端和后端分别补入平均值参数,提高对原始光电信号的处理精度、采用母小波函数对补入之后的分段数据进行一阶导数和二阶导数处理,准确确定波峰位置,另外还无需对原始光电数据进行复杂的滤波处理,显著提高原始光电信号峰值检测的效率。
在其中一个实施例中,计算各第二分段数据中波峰宽度包括步骤:
步骤一:针对单个第二分段数据,选取一组对应的波峰位置与一阶导数极大值点。
步骤二:根据选取的对应的波峰位置以及对应波峰的一阶导数极大值点,计算单个第二分段数据中波峰宽度。
当求出各个波峰位置之后,可以根据一组对应的波峰位置Xp和一阶导数极大值x1,求出该波峰的宽度Xd=2(Xp-x1)。
在其中一个实施例中,计算各第二分段数据中波峰高度包括步骤:
步骤一:针对单个第二分段数据,在第二分段数据中波峰位置两侧各提取预设数量的原始数据点,获得第一原始数据点集合。
步骤二:剔除第一原始数据点集合中最大值和最小值,获得第二原始数据点集合。
步骤三:计算第二原始数据点中各原始数据点纵坐标的平均值参数,获得单个第二分段数据中波峰高度。
在波峰位置Xp处左右各取m(m可以根据实验情况来设置合适的值)个原始数据点,然后剔除这2m+1个点中的最大值和最小值,最后求出的2m-1(包含Xp)个点纵坐标的平均值作为该波峰高度,设波峰高度为Xh。
在其中一个实施例中,根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值的步骤包括:
步骤一:计算各第二分段数据中波峰宽度以及波峰高度。
步骤二:根据切比雪夫不等式设定波峰宽度阈值与波峰高度阈值。
步骤三:分别剔除各第二分段数据中波峰宽度不在波峰宽度阈值范围内的波峰以及波峰高度不在波峰高度阈值范围内的波峰峰值,获得原始光电信号的波峰峰值。
峰值评估。经过以上处理可以得到一系列的波峰峰值(Xp,Xd,Xh),Xp为波峰位置,Xd为波峰宽度,Xh为波峰高度,然后可以根据需要设定波峰宽度和波峰高度阈值(根据切比雪夫不等式设定阈值),并剔除波峰宽度Xd和波峰高度Xh为异常值(不在阈值范围之内)的波峰,从而保留符合要求的波峰峰值。在具体应用于针对微滴式PCR仪光电信号波峰检测时,此处的峰值评估是为了剔除不合格微滴产生的峰值,从而提高了微滴式PCR仪检测系统中微滴的假阳性和假阴性的识别率。
如图9所示,一种光电信号峰值检测系统,包括:
分段读取模块100,用于分段读取原始光电信号,获取原始光电信号的第一分段数据集合。
补入模块200,用于获取各第一分段数据的平均值参数,并对各第一分段数据的最前端和最后端分别补入预设量对应的第一分段数据的平均值参数,获得第二分段数据集合。
求导模块300,用于选取母小波函数对各第二分段数据进行一阶求导和二阶求导。
极大值提取模块400,用于提取各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点。
波峰确定模块500,用于根据各第二分段数据的一阶导数极大值点和第二分段数据的二阶导数极大值点,确定各第二分段数据中波峰位置。
波峰值确定模块600,用于根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。
本发明光电信号峰值检测系统,分段读取模块100对原始光电信号分段读取,补入模块200对分段读取的每段数据前端和后端插入预设量平均值参数,求导模块300选取母小波函数对处理后的分段数据进行一阶求导和二阶求导,极大值提取模块400提取一阶导数极大值点与第二分段数据的二阶导数极大值点,波峰确定模块500确定各第二分段数据中波峰位置,波峰值确定模块600根据各第二分段数据中波峰位置,计算各第二分段数据中波峰宽度以及波峰高度,获取原始光电信号的波峰峰值。整个过程中,对原始光电信号的分段前端和后端分别补入平均值参数,提高对原始光电信号的处理精度、采用母小波函数对补入之后的分段数据进行一阶导数和二阶导数处理,准确确定波峰位置,另外还无需对原始光电数据进行复杂的滤波处理,显著提高原始光电信号峰值检测的效率
在其中一个实施例中,波峰确定模块500包括:
选取单元,用于针对单个第二分段数据,选取一组分别与一阶导数极大值点A相邻的二阶导数极大值点B与二阶导数极大值点C。
确定单元,用于当一阶导数极大值点A对应的横坐标参数大于二阶导数极大值点B对应的横坐标参数、且小于二阶导数极大值点C对应的横坐标参数时,确定第二分段数据中波峰的横坐标参数为二阶导数极大值点B的横坐标参数与二阶导数极大值点C的横坐标参数之和的二分之一。
在其中一个实施例中,波峰值确定模块600还用于:
针对单个第二分段数据,选取一组对应的波峰位置与一阶导数极大值点;
根据选取的对应的波峰位置以及对应波峰的一阶导数极大值点,计算单个第二分段数据中波峰宽度。
在其中一个实施例中,波峰值确定模块600还用于:
针对单个第二分段数据,在第二分段数据中波峰位置两侧各提取预设数量的原始数据点,获得第一原始数据点集合;
剔除第一原始数据点集合中最大值和最小值,获得第二原始数据点集合;
计算第二原始数据点中各原始数据点纵坐标的平均值参数,获得单个第二分段数据中波峰高度。
在其中一个实施例中,波峰值确定模块600包括:
参数计算单元,用于计算各第二分段数据中波峰宽度以及波峰高度;
阈值计算单元,用于根据切比雪夫不等式设定波峰宽度阈值与波峰高度阈值;
筛选单元,用于分别剔除各第二分段数据中波峰宽度不在波峰宽度阈值范围内的波峰以及波峰高度不在波峰高度阈值范围内的波峰峰值,获得原始光电信号的波峰峰值。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。