首页> 中国专利> 一种用于信号处理系统中信号基线的快速处理方法及装置

一种用于信号处理系统中信号基线的快速处理方法及装置

摘要

本发明公开了一种用于信号处理系统中信号基线的快速处理方法及装置,包括以下步骤:步骤1:对模拟信号进行采样,得到模数转换后的采样数据;步骤2:选取滤波窗口长度L,并以当前点为参考点,选取数据序列填充滤波窗口,滤波窗口采用滑动窗口;步骤3:根据滤波窗口数据,构造更新多重桶排序表;步骤4:根据多重桶排序表,快速计算中位数,作为基线数据输出。采用本发明可准确,快速提取原始脉冲信号中的基线信号,且硬件逻辑实现简单。

著录项

  • 公开/公告号CN104132884A

    专利类型发明专利

  • 公开/公告日2014-11-05

    原文格式PDF

  • 申请/专利权人 深圳市帝迈生物技术有限公司;

    申请/专利号CN201310484654.1

  • 发明设计人 沈翰宁;

    申请日2013-10-16

  • 分类号G01N15/10;G01N35/00;

  • 代理机构深圳市恒申知识产权事务所(普通合伙);

  • 代理人陈健

  • 地址 518000 广东省深圳市南山区高新科技园科技中一路赛百诺A座401

  • 入库时间 2023-12-17 01:44:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-25

    专利权保全的解除 IPC(主分类):G01N15/10 专利号:ZL2013104846541 申请日:20131016 授权公告日:20160817 登记生效日: 解除日:20220919

    专利权的保全及其解除

  • 2020-07-28

    专利权的保全 IPC(主分类):G01N15/10 授权公告日:20160817 登记生效日:20200528 申请日:20131016

    专利权的保全及其解除

  • 2016-08-17

    授权

    授权

  • 2014-12-10

    实质审查的生效 IPC(主分类):G01N15/10 申请日:20131016

    实质审查的生效

  • 2014-11-05

    公开

    公开

说明书

技术领域

本发明涉及一种信号基线处理方法,尤其涉及的是一种用于血液细胞分析仪检测系统中信号基线的快速处理方法及装置。

背景技术

在进行信号采集时,由于传感器接触不良、低频干扰等外界因素影响,信号基线可能会产生缓慢波动。这种缓慢的基线波动会导致脉冲幅值测量的失真,当采用信号的幅值特性对信号进行脉冲识别时,会影响脉冲的准确识别。例如在某些粒子检测系统(例如血液细胞分析仪)中,一个粒子(例如血液细胞)经过微孔(例如宝石孔)时,会产生一个幅值与粒子(例如血液细胞)体积成正比的脉冲信号,如图1所示。波动的基线叠加在脉冲信号上,会抬升或拉低脉冲信号的幅值,导致幅值测量的失真,影响脉冲信号的准确识别,如图2所示。

现有技术1,中国专利申请号为200610062395.3(公开号101136624A)的公开技术文件中,公布了一种脉冲信号基线的估算方法。该方法的主要思想是通过与脉冲识别共同作用,在识别的脉冲非持续时间内,将连续采样得到的数据按照时间序列排序,然后用一组和为1的收敛的无穷序列作为权重系数与输入序列进行加权求和(权重系数按照时间先后从小到大),能够粗略地得到信号基线。

现有技术2,中国专利申请号为200710075884.7(公开号101344475A)的公开技术文件中,公布了一种信号基线处理装置及处理方法。该方法的主要思想是基于硬件逻辑的不完全桶排序中值滤波。对待处理的数据序列,选取长度为k的滤波窗口,从大于k/2的序列点开始,当前点的值用滤波窗口的中位数代替,称之为中值滤波序列,如图3所示。当选取大小合适的k值,将中值序列作为信号基线输出,解决了信号基线波动的准确跟踪识别问题。但是桶排序算法在待排序数据序列值均匀分布时,算法时间复杂度可接近O(N),但当值的分布不均匀时,算法时间复杂度可达到O(N*logN),所以中位数的计算方法需进一步改进。

现有技术3,中国专利申请号为201110005575.9(公开号102164104A)的公开技术文件中,详细描述了一种快速的基线处理方法和装置。该方法的主要思想是一种数值比较的快速中位数计算方法,将中位数作为信号的基线输出。该方法要求选取固定的滤波窗口长度K(一般取奇数),然后以当前处理点为参考点,选取合适的数据序列填充滤波窗口。若当前处理点是开始点,则对滤波窗口中的数据进行排序来求滤波窗口中的中位数;若当前处理点不是开始点,则判别当前处理点对应滤波窗口的最后一个数据,与前一个处理点对应的中位数大小关系。若当前处理点对应滤波窗口的最后一个数据,与前一个处理点对应的中位数相等,则当前处理点对应的中位数为滤波窗口最后一个数据值。若当前处理点对应的滤波窗口最后一个数据,比前一个处理点对应的中位数小,则计算当前滤波窗口中比前一个处理点对应的中位数小的个数;若当前滤波窗口中比前一个处理点对应的中位数小的个数等于(k+1)/2,则当前处理点对应的中位数为滤波窗口中比前一个处理点对应的中位数次小的数值;若当前滤波窗口中比前一个处理点对应的中位数小的个数小于(k+1)/2,则当前处理点对应的中位数为前一个处理点对应的中位数。若当前处理点对应的滤波窗口最后一个数据,比前一个处理点对应的中位数大,则计算当前滤波窗口中比前一个处理点对应的中位数大的个数。若当前滤波窗口中比前一个处理点对应的中位数大的个数等于(k+1)/2,则当前处理点对应的中位数为滤波窗口中比前一个处理点对应的中位数次大的数值;若当前滤波窗口中比前一个处理点对应的中位数大的个数小于(k+1)/2,则当前处理点对应的中位数为前一个处理点对应的中位数。

其中,现有技术1公开的脉冲信号基线的估算方法,只能粗略估算信号基线,不能对信号基线的波动进行准确跟踪。

现有技术2公开的技术,采用基于硬件逻辑的桶排序算法解决了信号基线波动的准确跟踪识别问题。但桶排序算法在待排序数据序列值均匀分布时,算法复杂度下限接近于O(N),但当值的分布不均匀时,算法复杂度上限是O(N*logN)。即使按照其技术文件中公开的方法,对于处理N个数据序列点,若使用的窗口长度为k,则至少要2*k*N次比较和(k*N+k*N/2)次加法,对于数据分布不均匀情况,所需运算量更多。

现有技术3公开的技术,提出了一种快速中位数计算方法,解决了信号基线波动的实时跟踪问题。但是该方法仍然存在不足:1、对于处理N个数据序列点,若适用的窗口长度为k,所需的运算时间为(2*k+3)*N,那么对于某些具有实时性要求的系统(例如血液细胞分析仪),滤波窗口长度k不能太大,不适合脉冲密集信号的处理;2、该方法在中位数计算过程中,后一点的中位数选取依赖前一点中位数值,若前一点中位数值错误会导致后面点得不到准确的中位数。

因此,现有技术还有待于改进和发展。

发明内容

本发明的目的在于提供一种用于信号处理系统中信号基线的快速处理方法及装置,旨在解决现有技术基线估算不准确,中位数基线算法准确但计算运算量大且中位数滤波窗口大小受限的问题。

本发明的技术方案如下:

一种用于信号处理系统中信号基线的快速处理方法,其包括以下步骤:

步骤1:对模拟信号进行采样,得到模数转换后的采样数据;

步骤2:选取滤波窗口长度L,并以当前点为参考点,选取数据序列填充滤波窗口,滤波窗口采用滑动窗口;

步骤3:根据滤波窗口数据,构造更新桶排序表;

步骤4:根据多重桶排序表,快速计算中位数,作为基线数据输出。

所述的用于信号处理系统中信号基线的快速处理方法,其中,所述根据滤波窗口数据,构造更新桶排序表,具体为:步骤31:若当前点为起始点,则初始化桶排序表,起始点之前的L-1个点补零;步骤32:若当前点不是起始点,则更新桶排序表,其更新表的方法为:步骤321:对于移入窗口的数据,对应各个桶排序表的地址内容加1;步骤322:对于移出窗口的数据,对应各个桶排序表的地址内容减1。

所述的用于信号处理系统中信号基线的快速处理方法,其中,所述根据多重桶排序表,快速计算中位数,作为基线数据输出,具体为:步骤41:初始化个数累加和F,令F=0;步骤42:按照桶的个数从小到大的顺序,依次查询桶排序表内容;步骤43:将最后一张表的F≥固定值M对应的地址值作为当前点的基线输出。

所述的用于信号处理系统中信号基线的快速处理方法,其中,其中按照桶的个数从小到大的顺序,依次查询桶排序表内容的具体为:步骤421:个数累加和F与当前表当前地址内容相加,并重新赋值给F;步骤422:若F≥固定值M,则F减去当前表当前地址内容,并重新赋值给F,且将当前地址前一地址放大后作为下一表的起始寻址地址,否则,当前表地址加1,继续执行步骤421。

所述的用于信号处理系统中信号基线的快速处理方法,其中,所述固定值M为L/2。

一种用于信号处理系统中信号基线的快速处理装置,其主要包括:

用于对模拟信号进行采样,得到模数转换后的采样数据的A/D采样单元;

用于顺序存储采样数据,并按照先入先出的原则输出数据的相位补偿单元;

用于记录滤波窗内采样数据的多重桶排序表;

用于输入采样数据,并按照采样顺序每次对采样数据按大小排序,然后输出排序后某一固定位置的值作为信号基线值的基线快速提取单元;

用于将采样数据,减去信号基线值,作为处理后基线数据输出的减法器,所述A/D采样单元连接相位补偿单元和基线快速提取单元,所述单元连接相位补偿单元和基线快速提取单元连接减法器,所述多重桶排序表连接基线快速提取单元。

所述的用于信号处理系统中信号基线的快速处理装置,其中,所述相位补偿单元的存储区的大小为基线快速提取单元所需的延时周期,为滤波窗口长度的一半。

所述的用于信号处理系统中信号基线的快速处理装置,其中,所述多重桶排序表的张数与A/D采样位数n相关,n位A/D,则需n-1张桶排序表,且每个桶排序表中桶的个数依次为21,22,23…2n-1

所述的用于信号处理系统中信号基线的快速处理装置,其中,所述某一固定位置的值为该滤波窗口长度为L的序列中的中位数。

所述的用于信号处理系统中信号基线的快速处理装置,其中,所述某一固定位置的值为该位置对应的桶个数最多的桶排序表的地址。

本发明的有益效果:本发明通过,根据实际需求解决了基线估算不准确,中位数基线算法准确但计算运算量大且中位数滤波窗口大小受限等问题,使得中位数计算所需的运算量更小,与滤波窗口大小无关(仅与A/D采样位数和采数数据长度N有关),且硬件逻辑实现更简单,达到较为完整取出原始脉冲信号中的基线信号的目的。例如,对于处理N个数据序列点,采用M位A/D采样,那么所需的运算仅需4*M*N,与采样窗口长度无关,且数据序列值分布不均匀并不增加运算量。同时,由于所有点的处理时间和处理方式一样,也减少了硬件逻辑实现的复杂性。在信号基线处理领域具有明显的优势应用。

附图说明

图1是改进前信号基线波动对脉冲幅值的干扰的脉冲示意图。

图2是改进前波动的基线信号叠加在脉冲信号上的幅值示意图。

图3是现有技术2中采用的中值滤波方法示意图。

图4是本发明提供的处理装置的模块框图。

图5是本发明提供的处理方法的流程图。

图6是采用本发明的方法处理后的基线信号复制图。

图7是采用本发明方法后最终输出的脉冲信号图。

图8是采样数据的分布直方图。

图9是本发明中快速提取单元的搜索规则示意图。

图10是FPGA中的信号处理步骤示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。

如图4所示,本发明提出的一种信号基线的快速处理装置,主要包括A/D采样单元,相位补偿单元,多重桶排序表,基线快速提取单元和减法器,所述A/D采样单元连接相位补偿单元和基线快速提取单元,所述单元连接相位补偿单元和基线快速提取单元连接减法器,所述多重桶排序表连接基线快速提取单元。其中:

所述A/D采样单元,用于对模拟信号进行采样,得到模数转换后的采样数据A。

所述相位补偿单元,本质为FIFO存储器,用于顺序存储采样数据,并按照先入先出的原则输出数据B。其存储区的大小为基线快速提取单元所需的延时周期,与滤波窗口长度有关(例如滤波窗口长度为L,则存储区大小为L/2)。

所述多重桶排序表为不同区域大小的存储器,每个存储区域大小为对应某张桶排序表的桶的个数。每张桶排序表,用于记录滤波窗内的L个采样数据的当前桶个数。桶排序表的张数与A/D采样位数相关,例如若采用n位A/D,则需n-1张桶排序表,且每个桶排序表中桶的个数依次为21,22,23…2n-1

所述基线快速提取单元,用于输入采样数据,按照采样顺序每次对L个采样数据按大小排序(L为滤波窗口长度),并输出排序后某一固定位置(例如一般选取L/2,即中位数)的值,即为信号基线值C。由于采用桶排序,桶排序表的地址与其采样数据值相对应,所以也可以将排序后某一固定位置对应的桶个数最多的桶排序表的地址作为信号基线值C输出。

所述减法器,用于将采样数据B,减去信号基线值C,作为处理后基线数据D输出。

本发明提出的信号基线的快速处理方法,是采用多重桶排序和二叉树层序遍历思想,具体流程如图5。该方法的具体步骤说明如下:

步骤1:对模拟信号进行采样,得到模数转换后的采样数据;

步骤2:选取合适的滤波窗口长度L,并以当前点为参考点,选取合适的数据序列填充滤波窗口,滤波窗口采用滑动窗口;

步骤3:根据滤波窗口数据,构造更新桶排序表,具体为:步骤31:若当前点为起始点,则初始化桶排序表,起始点之前的L-1个点补零;步骤32:若当前点不是起始点,则更新桶排序表,更新表的方法为:步骤321:对于移入窗口的数据,对应各个桶排序表的地址内容加1;步骤322:对于移出窗口的数据,对应各个桶排序表的地址内容减1;

步骤4:根据多重桶排序表,快速计算中位数,作为基线数据输出,具体为:步骤41:初始化个数累加和F,令F=0;步骤42:按照桶的个数从小到大的顺序,依次查询桶排序表内容,其中具体为:步骤421:个数累加和F与当前表当前地址内容相加,并重新赋值给F;步骤422:若F≥M(固定值,一般取L/2,即中位数),则F减去当前表当前地址内容,并重新赋值给F,且将当前地址前一地址放大后作为下一表的起始寻址地址,否则,当前表地址加1,继续执行步骤421;步骤43:将最后一张表的F≥M对应的地址值作为当前点的基线输出。

本发明是利用多重桶排序的思想,构造多张桶排序表,将待排序数列中的采样值进行缩放后作为相应表的地址,该表地址所对应的内容为相应采样值的个数。再通过二叉树层序遍历的思想,从第一张表搜索至最后一张,从而计算出该采样数据的中位数。并在此基础上,将输出的的结果与对应采样点数据相减,实现信号基线的去除操作。多重桶排序表的横轴数值可以看成采样数据的幅值(与采样精度相关,如精度为12bit,则横轴为0-4095)映射,同一个数据可以对应多张表的横轴地址。纵轴为数据的个数(如N等于512,则纵轴的数据和为512),这样即为采样数据的分布直方图,如图8所示。

基于上述桶排序表,在采样时钟驱动下,实时更新该数据序列,即将最新采集到的数据移入,同时移出序列中最老的数据。对于移入数据,需要将桶排序表中对应地址内容增1。对于移出数据,需要将桶排序表中的对应地址内容减1。

基线快速提取单元的启动基于上述已更新的多重桶排序表。从桶个数为21的表开始,按中位数搜索规则依次搜索,如图9所示。此时处理的桶排序表为第1张表,则初始化个数累加和F,令F=0。然后个数累加和F与当前表当前地址内容198相加,并重新赋值给F。F<256(固定值,一般取L/2,即中位数),继续搜索当前表下一地址1。累加和F再与当前表地址内容314相加,并重新赋值给F。F>256,将当前地址1扩大2倍作为下一张表的搜索地址,同时累加和F减去当前表地址1的内容,并重新赋值给F,此时F=198。进入第2张表,累加和F与当前表当前地址2内容103相加,并重新赋值给F。F>256,将当前地址2扩大2倍作为下一张表的搜索地址,同时累加和F减去当前表地址2的内容103,并重新赋值给F,此时F=198。按上述方式搜索到第11张表时,累加和F与当前表当前地址1507内容20相加,并重新赋值给F。F<256,继续搜索当前表下一地址1508。累加和F再与当前表地址内容35相加,并重新赋值给F。F>256,将当前地址2扩大2倍作为下一张表的搜索地址,同时累加和F减去当前表地址1508的内容35,并重新赋值给F,此时F=250。进入第12张表(结束表),累加和F与当前表当前地址3016内容8相加,并重新赋值给F。F>256,将该地址3016做为中位数D输出。

相位补偿单元将输出中位数D所对应的的采样值B,两者求差。若为负数,去基线值为0;若为正数,直接输出。如图2是含有基线的采样信号,可以看到由于存在基线使得脉冲幅值被拉高。图6是提取出的基线值,最终输出的脉冲信号是图7,可见基线对脉冲的影响被消除了。

FPGA内部将上述处理方式在一个A/D采样时钟周期内按步骤依次完成,并最终得到去基线值。如图10所示。分别从A/D采样单元获取输入数据A,滤波窗口获取将要抛弃的数据C。根据这两个值更新多重桶排序表后,启动中位数搜索单元求出中位数。相位补偿单元将对应输出的中位数与补偿值做减法,即可求出基线值。最后将滤波窗口数据C抛弃,进入下一采样周期重复以上步骤。

相比已有的技术方案,本发明具有的优点有:

1、脉冲序列值分布不均匀时,仍然能准确实时的提取基线;2、满足实时处理要求的前提下,滤波窗口大小可任意选取;3、后一点基线值与前一点基线值无关,即当前一点基线错误不影响后一点基线值;4、所有采样点的基线计算规则统一,减少了硬件逻辑实现的复杂性。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号