膜拜大佬
距离上一次的Theremino能谱项目已经过去了近一年了,在这期间,Theremino的能谱确实给我带来了很多便利,但是在使用中同样也发现了一些问题。首先是Theremino使用声卡进行采集,即便使用384kHz的采样速度,依旧需要降PMT的信号展的很宽,这就会导致脉冲堆叠的发生,虽然Theremino MCA能够识别堆叠的脉冲并进行处理,但是原本2μs左右的脉冲被展宽到500μs后,堆叠出现的概率太大了。在一次逐渐靠近源的测试中,Theremino MCA的计数逐渐从100cps增长到约1000cps,但是再往后,计数率不升反降了,从波形窗口可以观察到信号已经变成了一批脱缰的野马,在狭窄的窗口里反复横跳,这时我便萌生了制作一个能够接受高计数率的能谱的想法。
与此同时,朋友也找到我称,想制作一台便携的能谱分析仪,在简单的讨论后便确定了能谱分析仪的大致参数和方案。本文主要阐述了制作作为能谱的核心模块之一,多道分析仪模块在整个能谱采集过程中起到了承接模拟域与数字域的重要作用。
但是楼主并没有相关制作经验和知识,只知道大致原理,就是统计出脉冲峰高分布的直方图。通过查阅国内外的相关论文和爱好者的开源方案,我发现DIY多道分析仪主要有两个方向,一个是高速ADC直采(简单的放大和反相)很多的处理诸如基线恢复和高斯成型都在数字域完成的数字方案,而另一个是使用峰值保持和各种模电课本上的模范电路以及低速ADC采集的模拟方案。很明显第一种是现在主流的方案,但是可能是确定方案的时候脑子瓦特了,也可能是被一些古董级论文洗了脑,于是就选了第二种模拟方案。。。
于是就有了它:
这个简易的小家伙包括了零极相消+阻抗变换+极性适配+前放+高斯成型+峰值保持+控制+通信。其核心是一颗STM32单片机(好贵。。。曰)使用内部的DAC和COMP资源构成可变阈值的比较器,然后在峰值保持建立之后给内部提供中断。ADC使用的是单片机内部的12bit ADC,串口传输数据。使用USB供电,由电源模块将5V变为±12V,滤波后给模拟部分供电。模拟电路主要参考了XXXXXXXXXXXXXXXXXXXXXXXXXX/2017/06/22/x-ray-spectroscopy-with-pin-photodiode/ 这篇文章中提到的信号处理电路。峰值保持电路则是课本同款:
然后简单的焊接和调试之后,期望的波形就出现了:
然后程序设计上,由于STM32后续型号都不提供std库了,使用HAL库着实有些慢,于是扒出寄存器来进行配置,最后把峰值保持的时间控制到5μs左右,同时用ADC中断来快速释放峰值保持器。采样来的数据做一个很简单的处理:
histogram[adc_value]++;
然后就是上位机软件了,为了快速测试,先用python写了一个。。。搭配喜闻乐见的烟感,一柱擎天的感觉(
初步测试算是完成了,看起来方案是可行的,所使用的探头内部已经包含了一级前放,所以为后续的测试埋下了坑。。。
趁着热乎再多测一些东西:
古董的绿色玻璃工艺品,含有U238,可以在紫外线下发出荧光
以前的嘎斯灯灯罩,为了提升亮度使用了硝酸钍浸泡,在高温时会分解成氧化钍,并且发出耀眼的光芒,但是年代久远测得的谱图中大多是衰变子体,现在能买到的灯罩大多是硝酸铈或其他稀土了(到这时添加了本底消除算法,是YY出来的算法,不能说明任何问题,仅作为测试,图中蓝色的线是本底消除后的,橘色的是raw数据)
这是一个很久以前的放电管,内部掺有Cs137,但是年代也久远,活度太低,只有闪烁体能够测得明显变化了
测试过程中显示的大多以raw数据为主,也没有做能量修正和能量响应修正,能量是用y=kx+b直接拟合出来的,只在很小区间内有参考意义。最后也有在C#下写一个上位机软件,但是好久不写了,有点不会写了
然后呢,我拿出了珍藏的大宝贝,是一个从GR-135中拆出来的一个SCIONIX的能谱探头,标签标示它的分辨率是6.4%
这时候就出现前文中说到的坑了,前文中的探头内置了电荷放大器,输出直接是数伏特的脉冲,而这个是PMT直接输出的,阻抗极大非常容易被干扰,而且信号幅度只有100多毫伏,结果输入到多道分析仪里全是工频干扰,用了同轴之后稍有改善,但是噪声信号依旧会造成误触发
好吧,等第二版吧,加上电荷放大器再试试
未完(?)待续
”即便使用384kHz的采样速度“
楼主用的什么声卡,不会是便宜的CM108吧,这东西硬件只支持48KHz,软件调成384也没用。支持384kHz,32bits的是CX31993。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。