Hi,
I was not sure where should I post this question as it involves science, programming, math and a bit of everything. However, maybe you have any ideas... I got a task to create a simple MCA for a scintillator. If you are unfamiliar with those, not a problem, its just some background of what I am actually doing. I got my hardware and software ready, now its just a question of algorithms.
I am constantly sampling an electrical signal which consists of scintillator crystal pulses (amplitude does not matter, typical rise time is 250ns, fall time is 1us). I can never know how many pulses should I expect: sometimes there will be only tens of pulses during one minute, on the other extreme, pulses can literally be piled up on top of each other, I have to account for both of those cases. I use 12 bit ADC to evaluate the amplitude of those pulses and the process the data... Thats a typical MCA.
I now face a problem of the algorithm I should use. What sample rate should I pick for my ADC? If it is too low, my result will be inacurate, if its too high, I will make multiple samples of one pulse, which results in multiple values being written to the memory, while only the highest value should represent the peak amplitude of the pulse captured. If I pick the "oversampling" way, is there any algorithm to differentiate between the pulses? I know it wont be 100% accurate, but I have to make it work properly. Thank you in advance for any ideas. I dont want to go ,,all in" with extremely expensive sigma-delta ADCs involving difficult parallel interfaces, differential input etc. I was thinking something like 5 Msps, would that be enough?
I was not sure where should I post this question as it involves science, programming, math and a bit of everything. However, maybe you have any ideas... I got a task to create a simple MCA for a scintillator. If you are unfamiliar with those, not a problem, its just some background of what I am actually doing. I got my hardware and software ready, now its just a question of algorithms.
I am constantly sampling an electrical signal which consists of scintillator crystal pulses (amplitude does not matter, typical rise time is 250ns, fall time is 1us). I can never know how many pulses should I expect: sometimes there will be only tens of pulses during one minute, on the other extreme, pulses can literally be piled up on top of each other, I have to account for both of those cases. I use 12 bit ADC to evaluate the amplitude of those pulses and the process the data... Thats a typical MCA.
I now face a problem of the algorithm I should use. What sample rate should I pick for my ADC? If it is too low, my result will be inacurate, if its too high, I will make multiple samples of one pulse, which results in multiple values being written to the memory, while only the highest value should represent the peak amplitude of the pulse captured. If I pick the "oversampling" way, is there any algorithm to differentiate between the pulses? I know it wont be 100% accurate, but I have to make it work properly. Thank you in advance for any ideas. I dont want to go ,,all in" with extremely expensive sigma-delta ADCs involving difficult parallel interfaces, differential input etc. I was thinking something like 5 Msps, would that be enough?
Attachments
-
20.1 KB Views: 7