1.一种数字化核能谱测量系统中的脉冲基线估计方法,其步骤:首先在FPGA芯片内求得粗基线,
(1)在FPGA芯片内开辟一组大小为N=2k个单元的循环缓冲区A,在执行平均滤波之前,将缓冲区的内容全部初始化为0;
(2)每次采样得到的数据x(n)存入循环缓冲区A头指针指向的位置,剔除循环缓冲区A尾指针指向的数据x(n-N-1),并利用如下公式求得粗基线Sum=SumPre+x(n)-x(n-N-1)
式中Sum为循环缓冲区A中N个数据的累加和,SumPre为Sum延迟一个时钟序列的值,SumPre的初始值为0,Sum>>k表示将Sum右移k个二进制位;
其次根据粗基线扣除采样数据中的异常信号:
(3)将采样数据与粗基线进行比较,如果大于粗基线,则认为该数据是叠加在基线上的异常信号;如果小于或等于粗基线,即 则对其进行一阶数值微分,微分结果用dx(n)表示,公式为:dx(n)=x(n)-x(n-1)
式中x(n)表示当次采样数据,x(n-1)表示前一次采样数据;
(4)选取p个数据来判断输入数据进行一阶数值微分后,其数据变化幅度大小及正负符号是否连续,如果微分后的数据变化幅度较小且正负符号不连续,则认为该数据为基线,通过下列公式求得扣除异常信号后的基线数据x′(n):当满足 |dx(n)|<ε时,x′(n)=x(n);
式中 为已经求得的粗基线值, 为连续p个数据一阶微分后的数值求和,|dx(n)|表示数值微分dx(n)的绝对值,ε表示输入数据的纹波范围;
最后根据扣除异常信号后的数据求得精密基线:
(5)在FPGA芯片内开辟一组大小为M=2m个单元的循环缓冲区B,在执行平均滤波之前,将缓冲区的内容全部初始化为0;
(6)将扣除异常信号后的基线数据x′(n)存入循环缓冲区B头指针指向的位置,剔除循环缓冲区B尾指针指向的数据x′(n-M-1),并利用如下公式求得精密基线Sum′=SumPre′+x′(n)-x′(n-M-1)式中Sum′为循环缓冲区B中M个数据的累加和,SumPre′为Sum′延迟一个时钟序列的值,SumPre′的初始值为0,Sum′>>m表示将Sum′右移m个二进制位。