Replies: 1 comment 2 replies
-
Hey, thanks for your ideas! I'm not too sure about all the different implementations and have not come around to test every possibility, that's why the comment is there. So great to have somebody else think about this. I'm not too sure what the advantages of using a moving average over just the arithmetic mean would be. Is it statistically more robust? I'm not too sure if I understand correctly, especially if we talk about using the same number of ADC measurements for both cases. I'm happy to have a look at a simple moving average and test it if you think it's a better solution. And yes, you could obviously do all these crazy modifications with 16- or 18-bit ADCs, multiple filters, better software processing and so on... But it's also obvious that with the right setup, the existing electronics can already get pretty good energy resolutions (<10% at least). Generally, multiplying all the processing cost and effort will definitely not return the same amount of performance IMO and will certainly make the device even slower. We're talking about scintillators after all, best you can get is somewhere around 6% as far as I know? You know this already, but I like to elaborate on this every time something like this comes up, because I get this question quite often. 👍🏻 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey, finally gotten some baseline spectra and rough gamma reads, I'm impressed so far. Now my experience is with NIR spectroscopy so I could be totally missing a key fundamental here, if so let me know :)
I was digging though the software, and noticed at 746
I think you're on the right path with that comment, as average alone is sensitive to noise. But as discussed this project is to accommodate many crystal sizes and that will come with increasing or decreasing signal intensities, along with how well the SiPM breakdown voltage and threshold is tuned in. A medium may actually end up causing more noise in some cases. At least with an average it is more forgiving.
Potentially, a approach could be to take a moving average. There are other more exotic methods for signal processing but in the spirit of the project and keeping it computationally friendly.
Excuse me if anything below is incorrect, my C++ is pretty awful. If I were to implement a moving average it would be along the lines of:
Otherwise I think the current solution of an average as good or a bit better than just the medium. Obviously there are alternatives that would be much better suited, however they're obviously not in line with the concept of this project (external high quality 16+ bit ADC, Savitzky-Golay / Kalman filters...)
Beta Was this translation helpful? Give feedback.
All reactions