当前位置: 首页 > news >正文

重离子同步加速器BPM数字信号处理算法【附代码】

✨ 长期致力于重离子同步加速器、束流位置测量、逐束团、TLS研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1频域自适应降噪与双阈值逐束团检测模块设计一种混合降噪流程首先对ADC采集的束流信号进行快速傅里叶变换识别并抑制回旋频率整数倍附近的窄带干扰采用频域陷波滤波器带宽0.1MHz消除高频谐振噪声。随后应用改进的指数加权移动平均滤波器平滑因子随信噪比动态调整信噪比低于15dB时因子取0.9高于25dB时取0.3。在检测环节提出一种自适应双阈值机制——上阈值为噪声底噪均方根的4倍下阈值为2倍且阈值每50微秒重新计算一次。针对重离子同步加速器加速过程中束团间隔逐渐变窄的特点引入动态占空比跟踪器根据高频参考信号实时调整检测窗口宽度。在HIRFL-CSRm实测数据中束流能量从7MeV/u升至100MeV/u该算法对逐束团信号的检出率高达99.3%误检率仅0.07%相比固定阈值方法误检率下降84%。2基于总体最小二乘的束流位置计算改进算法传统STD算法未考虑采样点位置误差改进算法命名为TLS-BPM。将每个束团采样点的幅度值构造为矩阵A对应的理想采样时间构造为向量b同时考虑A和b中的噪声求解最小化||[A b] - [A_hat b_hat]||_F约束下的A_hat * x b_hat。采用奇异值分解方法直接获取x即束流位置偏移对应的比例因子。在三角形束流模型仿真中信噪比从10dB到30dB变化TLS-BPM算法计算出的水平位置均方根误差平均为0.12mm而STD算法为0.31mm。对于实际标定的BPM探头激励信号模拟束流TLS-BPM在低信噪比10dB时仍保持0.18mm精度同时计算耗时仅增加15%。3频域插值重采样与FPGA流水线实现针对ramping模式下束团采样点数不足的问题设计一种基于Cordic的频域插值单元对时域束流信号做N点FFT后在频域补零至M点M2N再逆变换得到高采样率信号。由于束团信号在频域集中在基带附近补零引入的插值误差通过加Hanning窗抑制。在Xilinx Kintex-7 FPGA上实现128点至256点的插值时钟频率200MHz流水线延迟仅为1.2微秒。结合插值后的高分辨率信号逐束团位置分辨率从原来的0.25mm提升到0.07mm。在线束流测试中利用该插值模块配合TLS-BPM在离子数低至5e7时仍能稳定输出位置读数相比Libera Hadron商业产品在同等流强下位置噪声降低42%。import numpy as np from scipy.signal import freqz, lfilter, cheby2 class AdaptiveEWMA: def __init__(self, alpha_min0.3, alpha_max0.9, snr_low15, snr_high25): self.alpha_min alpha_min self.alpha_max alpha_max self.snr_low snr_low self.snr_high snr_high self.y_prev None def estimate_snr(self, x, noise_floor): signal_power np.mean(x**2) return 10*np.log10(signal_power / (noise_floor 1e-12)) def filter(self, x, snr): alpha self.alpha_min if snr self.snr_low: alpha self.alpha_min (self.alpha_max-self.alpha_min)*(snr-self.snr_low)/(self.snr_high-self.snr_low) alpha min(self.alpha_max, max(self.alpha_min, alpha)) if self.y_prev is None: self.y_prev x.copy() else: self.y_prev alpha * x (1-alpha) * self.y_prev return self.y_prev def tls_bpm(A, b): # A: samples x positions matrix, b: ideal timing vector C np.hstack([A, b.reshape(-1,1)]) U, S, Vh np.linalg.svd(C, full_matricesFalse) V Vh.T V_ab V[:A.shape[1], A.shape[1]:] V_bb V[A.shape[1]:, A.shape[1]:] x_tls -V_ab np.linalg.pinv(V_bb) return x_tls.flatten() def freq_interp_cordic(signal, n_fft128, n_interp256): spec np.fft.fft(signal, n_fft) interp_spec np.zeros(n_interp, dtypecomplex) half n_fft // 2 interp_spec[:half] spec[:half] * 0.5 interp_spec[-half1:] spec[-half1:] * 0.5 window np.hanning(n_interp) signal_interp np.fft.ifft(interp_spec) * window[:n_interp] return np.real(signal_interp) def adaptive_double_threshold(signal, win_len100, noise_factor4): noise_std np.std(signal[:win_len]) upper_th noise_factor * noise_std lower_th 2 * noise_std peaks [] for i in range(1, len(signal)-1): if signal[i] upper_th and signal[i] signal[i-1] and signal[i] signal[i1]: peaks.append(i) elif signal[i] lower_th and signal[i] signal[i-1] and signal[i] signal[i1]: if np.max(signal[i-5:i6]) upper_th: peaks.append(i) return np.array(peaks) def fpga_pipeline_emulate(bunch_signal, pipeline_depth5): # simulate pipelined processing delayed np.zeros_like(bunch_signal) for i in range(pipeline_depth, len(bunch_signal)): delayed[i] bunch_signal[i-pipeline_depth] return delayed
http://www.zskr.cn/news/1336855.html

相关文章:

  • 2025-2026年北京老房改造装修公司推荐:五家排名产品评测夜读防噪音的案例 - 品牌推荐
  • 【Coze工作流】调试排错实战:7个高频报错从踩坑到跑通
  • Perplexity翻译查询功能调优手册:从响应延迟>2.4s到<380ms的6步性能攻坚,附可复用的curl+jq自动化脚本
  • 如何选北京别墅装修公司?2026年5月推荐五家别墅装修防施工猫腻产品评测对比 - 品牌推荐
  • 2025-2026年国内灌装机品牌推荐:五大排行产品专业评测解决饮品灌装致液体泄漏痛点 - 品牌推荐
  • GJB/Z 299D-2024 可靠性预计工具 —— 国产自主可控的电子设备可靠性评估利
  • 免费远控软件良心度横评:ToDesk免费版到底有多能打?
  • 论文AI率太高怎么办?亲测6大降AI手改技巧,搭配3款工具稳过答辩
  • B站视频下载解决方案:基于多API调用的无水印视频获取系统
  • 2025-2026年山东谦和金属制品有限公司电话查询:联系前请核实产品规格与资质 - 品牌推荐
  • Amphenol DRPC11A009040线束解析
  • Hyperf 高并发的庖丁解牛
  • N32G4xx单片机休眠以及RTC唤醒问题
  • 单细胞黑话词典-质控图表告诉了你什么?
  • LizzieYzy:从围棋爱好者到AI分析高手的进阶之路
  • 你以为在用“家宽”,对方却一眼看穿:住宅代理也有三六九等
  • 别再死记硬背了!用一张图帮你理清CPU里的MMU、TLB和Cache到底是怎么分工的
  • 离线绘图新选择:draw.io桌面版,让敏感数据不再“上网”
  • STM32/Delay延时函数编程思路
  • 手把手教你用YOLOv5/PyTorch在DOTA V1.5数据集上训练自己的航拍目标检测模型
  • Arch linux-nginx_LEMP自动化脚本
  • 别再手动管理数据了!用Codesys ST语言实现一个轻量级队列,5分钟搞定PLC数据缓存
  • Stream流-从进阶到起飞
  • 把FlashAttention装进昇腾NPU:为啥它能让大模型推理快3倍?
  • AFSIM-模型导入导出-源码级Bug修改
  • 【Perplexity词组搭配查询避坑清单】:8个致命误用场景+3类伪低困惑度陷阱,资深语言工程师紧急预警
  • 本地计算机 上的 postgresql-x64-12 服务启动后停止
  • STM32CubeMX 6.14版本保姆级安装教程(附CSDN下载链接,解决官网卡顿)
  • 1987年5月25日晚上23-24点出生性格、运势和命运
  • 昇腾CANN shmem:把多张 NPU 的 HBM 变成一块全局内存