FPGA随机脉冲(核脉冲)峰值提取设计

本文介绍了一种创新的核信号处理方法,通过最优单阈值实时峰值检测算法在FPGA中实现,有效解决随机脉冲的峰值提取问题。该方法简化了程序,提高检测效率,能根据设定参数精确提取峰值,适用于各种噪声环境。
摘要由CSDN通过智能技术生成

在对核信号处理中随机脉冲的峰值提取变得尤为重要,由理论可知一个辐射粒子其能量与脉冲幅度成正相关性,所以对于单位时间内,随机脉冲幅度(峰值)的提取就变得非常重要。常见的峰值提取方法有峰保持电路的设计或使用FPGA进行峰值的提取。因为前放电路器件的损耗和探测器的老化会带来当个脉冲的弹道亏损,所以默认提取到的幅值是经过成形后处理的(高斯成形、梯形成形等)。本设计的创新点在于采用最优单阈值实时峰值检测方法。通过比较多个单阈值峰值检测算法分析最优单阈值,使核信号脉冲幅度分析器能够实时准确检测到核信号。单阈值峰值检测方法通过设计4个状态,即状态1为初始化 程序,状态2为寻找信号最小值,状态4为寻找信号最大值,状态8为输出信号峰峰值,利用Verilog语言在FPGA电路中实现。该方法与双阈值峰值检测算法比较程序更加简洁高效,检测峰值效率更高。图下为脉冲形状与状态变化的关系。
在这里插入图片描述
module vpp_measure(
input rst_n, // 复位信号
input ad_clk, // AD时钟
input [11:0] ad_data, // AD输入数据
output reg [11:0] ad_vpp, // 采样峰值
output reg [11:0] ad_max, // AD最大值
output reg [11:0] ad_min, // AD最小值
output reg st_done, //完成一次峰值检测
output [3:0] zhuangtai,
output [6:0] shijian
);

//reg define
reg [11:0] ad_data_max; // AD一个周期内的最大值
reg [11:0] ad_data_min; // AD一个周期内的最小值
reg [3:0] next_state; // 状态机下一状态
reg [3:0] cur_state; // 状态机当前状态
reg [6:0] time_cnt; //核脉冲宽度(时间计时)
reg time_flag; //开始计数标志位
reg init_done; //初始化完成信号

//localparam define
localparam st_init = 4’b0001; // 初始化
localparam st_min_value = 4’b0010; // 更新最小值寄存器(寻找最小值)
localparam st_max_value = 4’b0100; // 更新最大值寄存器(寻找最大值)
localparam st_out_vpp = 4’b1000; // 输出峰值
localparam threshold = 12’d1900; //设置单阈值(0.0078125* 90=0.7V)
localparam times = 7’d100; //设置时间计数次数

状态机如下:
在这里插入图片描述
逻辑分析仪在线验证测试结果验证:
在这里插入图片描述
总结:该方法可直接对随机脉冲进行幅度值的提取,能够通过改变噪声阈值,脉宽阈值和脉冲阈值有效的提取到准确的峰值。如对代码有兴趣后台私我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

777你猜猜777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值