基于FPGA的数字多道梯形成形算法研究*

2018-10-11 12:23汤建文王仁波王海涛
测试技术学报 2018年5期
关键词:分析器梯形成形

汤建文, 王仁波, 王海涛

(1. 东华理工大学 教育部核技术应用工程中心, 江西 南昌 330013;2. 东华理工大学 机械与电子工程学院, 江西 南昌 330013)

核谱仪是一种典型的核辐射测量仪器, 常应用于环境检测、 医学成像、 辐射防护等领域. 在能谱测量系统中, 脉冲幅度分析是非常关键的技术, 也是获取核信息的主要方法之一. 传统的多道脉冲幅度分析器采用的是模拟电路的方式来实现对核信号进行滤波、 抗堆积处理、 基线恢复以及峰值采样保持等功能, 但是由于模拟电路本身的局限性, 在抗干扰能力、 脉冲计数率、 处理速度和通用性等方面存在严重不足, 而且峰值采样保持电路大大增加了系统的死时间, 使得脉冲通过率很低, 影响能谱分辨率. 随着数字技术的快速发展, 采用数字处理能力的DSP,FPGA等芯片进行脉冲幅度分析逐渐凸显优势. 与模拟多道相比, 数字脉冲幅度分析器不再对前端模拟输出信号进行峰值保持, 而是直接将前放电路输出的核脉冲信号用高分辨率ADC采样, 利用数字处理技术完成脉冲信号的滤波成形、 堆积判弃、 基线估计、 幅度提取等操作. 依靠灵活的数字信号处理算法, 数字脉冲幅度分析器能够提高对输入脉冲信号的滤波能力, 在较高的脉冲通过率范围内保证其具有较好的能量分辨率. 梯形成形算法是数字多道幅度分析器常用的核脉冲信号处理方法, 该算法在FPGA上的实现已经比较成熟. FPGA具有集成度高、 逻辑设计能力强等优点, 同时并行处理速度快、 功耗低, 使用FPGA来完成核脉冲信号处理算法有利于减轻处理器的负担, 大大降低系统死时间, 从而提高系统的计数通过率.

1 核脉冲信号的梯形成形算法

图 1 梯形脉冲示意图Fig.1 Trapezoidal pulse diagram

梯形成形算法是数字脉冲幅度分析器中最常用的一种数字信号处理方法. 因为梯形脉冲前后沿时间相等, 脉宽窄, 而且脉冲上升沿和平顶可独立调整, 通过调整参数来适应不同情况的成形. 从脉冲堆积的角度, 成形参数越小越好; 从噪声抑制幅度提取考虑, 成形参数越大越好, 而梯形成形提供了一个兼顾两者的最佳选择.

数字脉冲幅度分析器通过核辐射探测器(闪烁、 气体、 半导体探测器)将核信号转换成电压信号从而形成幅度不同波形相似的随机分布核脉冲信号, 其波形特征类似指数衰减脉冲. 梯形成形是将输入的指数衰减信号幅值转换为理想的梯形脉冲信号平顶幅值, 这大大提高了对脉冲信号幅值提取的准确性. 已有研究证明: 当只考虑电压和电流噪声, 探测器收集电荷的时间不为零时, 梯形成形滤波器是最优滤波器, 并且非常适合用数字方法实现. 理想的梯形脉冲图是一个等腰梯形, 如图 1 所示.

理想梯形函数的分段函数表示为

U0(t)=y1(t)+y2(t)+y3(t)+y4(t),

y1(t)=(A/t1)t,y2(t)=-y1(t-t1),y3(t)=-y1(t-t2),y4(t)=y1(t-t3),

(1)

式中:t1为梯形的上升沿脉冲;d为平顶的宽度;t3为脉冲的宽度, 且t1+d=t2,2t1+d=t3t1=n1T1,t2=n2T2,t3=n3T3, 设前置放大器输出为理想脉冲衰减指数信号, 时域表达式为

Ui(t)=A*exp-ti/τ*u(t),

(2)

式中:A为脉冲幅值;τ是前端放大器的时间常数;u(t)为标准单位阶跃函数, 以TS为周期对输入信号进行采样, 可以得到脉冲序列的表达式

Ui(t)=A*exp-nTs/τ*u(t).

(3)

令q=exp-nT/tao, 对式(3)进行z变换得

Ui(z)=A*z/(z-q).

(4)

理想梯形函数的分段函数经过单边的z变换可表示为

(5)

从而可得梯形成形算法的传递函数

(6)

由式(6)z的逆变换得时域表达式

vo(n)=2vo(n-1)-vo(n-2)+{vi(n-1)-vi(n-n1-1)-vi(n-n2-1)+

vi(n-n3-1)-q*[vi(n-2)-vi(n-n1-2)-vi(n-n2-2)+vi(n-n3-2)}/n1,

(7)

式中:vi为输入脉冲序列;v0为输出序列. 由式(7)可知梯形滤波是一种特殊的IIR滤波器, 它存在反馈结构2vo(n-1)-vo(n-2), 为了减少系统设计的复杂度, 避免量化误差与舍入误差的积累, 采用级联型结构来实现梯形成形.

2 梯形成形算法的Matlab仿真

利用Matlab7. 0软件编程单指数衰减信号函数V(i)=A*e-(n-D)t/τ, 设ADC为50 MSPS (采样率), 取梯形上升沿量化时间为150个点, 平顶宽d=350, 成形时间量化为650, 最大幅值10, 衰减时间常数为4, 取n=2 000,D=800, 得到输入信号和成形后的波形如图 2 所示. 该指数衰减脉冲是在理想状态下的情形, 但实际上探测的信号是有许多噪声干扰的, 如探测器和电子学的噪声以及高速ADC实时采样时的高频噪声, 这些噪声会叠加在有用信号上, 从而降低测量精度, 甚至某些有用的微弱信号会被噪声所淹没从而给核信号脉冲幅度带来涨落, 造成核信号脉冲变宽, 影响能量分辨率. 为此在理想指数衰减函数基础上叠加一个高斯分布序列形成加性白噪声noise_y=a+b*noise_y, 标准差0.1, 得到经过梯形成形的仿真效果如图 3, 发现成形的脉冲信号幅值并没有明显涨落, 且大大抑制了白噪声的干扰.

图 2 原理仿真Fig.2 The principle of the simulation

图 3 滤波仿真Fig.3 Filter simulation

脉冲堆积是数字脉冲幅度分析器中影响系统能量分辨率的一个重要因素, 特别在高计数下, 堆积的影响更大, 为此对脉冲的堆积判弃显得尤为重要. 通过指数衰减函数作输入V(i)模拟了3个脉冲信号, 经过式(7)梯形成形表达式输出V(o), 发现当两个脉冲过近时(即两个脉冲距离小于输出梯形的上升沿和平顶宽度之和), 就会发生脉冲堆积现象, 如图 4 所示, 后两个核脉冲信号的峰值间隔D,n1,n2对应梯形的上升沿和平顶宽度量化时间, 改变梯形表达式Vo(n)中n1,n2的值, 图 4(a) 中, 脉冲间隔600,n1量化为150,n2为400,n1+n2=550D此时发生脉冲堆积, 梯形之间部分重叠, 但仍然可以作幅度提取; 图4(c) 中, 脉冲间隔200, 梯形上升沿时间n1=100, 平顶时间n2=250,n1+n2=350>D且n2>D, 此时发生脉冲堆积且梯形之间严重堆积造成成形脉冲幅值发生畸变, 幅度提取时会造成误差, 该情况下要将堆积的脉冲丢弃或者进行校正处理. 由以上分析可知: 在脉冲间隔时间一致的情况下, 适当减小成形参数可以降低脉冲堆积的概率.

图 4 脉冲堆积Fig.4 Pulse accumulation

3 梯形成形的FPGA实现

FPGA芯片采用Actel的SmartFusion系列来实现梯形算法. SmartFusion是Actel的新一代内嵌有Cortex-M3处理器和模拟采集功能的基于Flash架构的FPGA. 内嵌的Cortex-M3处理器运行速度高达100 MHz, 具有1. 25 DMIPS/MHz的执行效率, 且内置MPU和单周期的硬件乘法器和除法器. 该器件具有丰富的I/O资源和多样的IP核, 处理速度很快且功耗极低.

本设计采用级联型的结构来验证滤波器的算法实现, 级联型结构的IIR滤波器实际上相当于将级数较多的滤波器分解成多个级数少的滤波器, 每个滤波器可以看成独立的结构, 只是前一级的输出作为后一级滤波器的输入. 由于数字处理有限精度的影响, 高阶直接型结构输出受处理精度影响很大导致系统不稳定. 采用将传递函数H(z)分解成多个传递子函数相乘变成多个低阶系统级联的形式, 与传统的直接型结构相比, 级联型能更准确地实现数字滤波器的零/极点, 且受量化参数的影响较小, 并具有运算速度快、 占用资源少、 系统稳定等优点, 因此应用比较广泛.

3.1 级联型结构的FPGA实现

对于不同结构的IIR滤波器分别进行仿真来验证, 由式(7)得到的z变换将系统函数分解为4个子模块

H(z)=H1(z)*H2(z)*H3(z)*H4(z),

(8)

式中:H1(z)=(1-qz-1)/(1-z-1),H2(z)=(1-z-n2),H3(z)=(1-z-n1),H4(z)=(1/n1)*(z-1)/(1-z-1).

4个子模块的级联存在顺序问题, 为避免具有峰值增益的子系统发生溢出或将量化噪声扩大, 所以把H1置于第一级; H4为积分单元, 为了避免产生溢出, 将其置于最后一级; H2, H3置于中间, 因其结构相同, 所以位置可以互换.

图 5 梯形成形算法结构Fig.5 Trapezoidal forming algorithm structure

图 5 为级联结构的模块图, 根据方程可知该结构设计就是用加法器、 乘法器和延迟单元等运算模块的互联结构来描述线性常系数方程, 不同的结构设计消耗的系统资源以及在性能上都是有很大的差异. 第一级是H1子模块的结构设计, 可由IIR滤波器实现. 中间两级H2, H3子模块的结构设计类型一样, 只是存储数据长度, 它的结构就是两个延迟单元模块. 算法FPGA实现的RTL级模块图, 如图 6 所示.

图 6 FPGA设计模块Fig.6 FPGA design module

以上的4个子模块通过时延电路、 乘法器、 加法器模块完成整个算法设计, 如图 6 的RTL模块设计, 前一级的输出作为下一级的输入, 在第一和最后一级运算时, 为避免浮点数操作, 将乘积系数扩大2n倍, 最后利用移位寄存器进行除法运算. 中间两级运算是对数据的延时操作, 时延长度分别为n1,n2即跟梯形成形的上升沿和达峰值有关. 该结构大大节约了对硬件资源的利用, 改变了传统上FPGA移植算法的难度, 同时降低了系统设计的复杂度, 避免了量化误差与舍入误差的积累.

采用Verilog HDL语言编程, 由Libero开发工具完成程序的编译、 综合、 布局布线, 利用FPGA实时性高的特点完成了梯形成形算法的运算. 编写testbench文件大致模拟了核脉冲信号, 用modelsim仿真得到如图 7 波形, 结果表明梯形算法能快速对核脉冲信号进行成形, 得到的成形效果基本与Matlab测试结果一致.

使用Libero 自带的Signal Tap II(逻辑分析仪)对输入输出信号进行观察, 仿真效果如图8. 输出结果表明: 梯形成形可以稳定地将输入的指数衰减信号转换为梯形脉冲信号. 将时序仿真结果与MATLAB仿真结果比较, FPGA设计的梯形成形滤波器输出精度比较理想.

图 7 Modelsim仿真测试Fig.7 Modelsim simulation test

图 8 基于FPGA的梯形成形测试Fig. Trapezoidal forming test based on FPGA

3.2 实际测试结果分析

通过Matlab原理仿真以后, 利用NaI探测器对能量源进行信号采集, 经过信号调理电路, 最后通过数字脉冲幅度分析器输出滤波成形信号, 实际的输出波形如图 9 所示.

图 9 采样脉冲及梯形成形Fig.9 Sampling pulse and trapezoid forming

为了准确提取出核信号的相关信息, 利用两个通道来进行脉冲成形, 快通道成形时间快, 不容易产生堆积, 用来确定脉冲的到达时间, 慢通道脉宽用于幅值的提取. 图9(a)是实际测量到的核脉冲信号, 类似于指数衰减信号, 而且夹杂很多噪声; 图9(b)是梯形成形处理后的信号,可以发现梯形成形加强了系统稳定性和抗噪声干扰能力.

4 结 语

本文利用Matlab软件仿真实现了梯形滤波成形算法,分析了一些参数对输出信号的影响, 通过调节成形参数得到最优的参数来提高谱仪的能量分辨率和效率; 利用Libero开发工具进行Verilog HDL编程, 将算法结构设计为级联型结构, 简化了FPGA开发的流程, 并使用Signal Tap II逻辑分析仪得到梯形成形后的信号; 通过对实际脉冲信号进行采集, 经数字脉冲幅度分析器得到的测试结果与仿真结果大体一致,也证实了本文算法设计的可行性, 对梯形成形算法在FPGA上的高效开发具有一定参考价值.

猜你喜欢
分析器梯形成形
梯形填数
梯形达人
MFC2019首届汽车冷弯(滚压与拉弯)成形技术论坛成功举办
CR1 500HF热成形钢开发及应用
酒精分析器为什么能分辨人是否喝过酒
一类变延迟中立型微分方程梯形方法的渐近估计
法兰轴零件的冷挤镦成形工艺及模具设计
多边形电极线形离子阱质量分析器的结构与性能
梯形
应用于词法分析器的算法分析优化