Decoding geiger counter signal

20 views (last 30 days)
Robert
Robert on 20 Nov 2023
Edited: Star Strider on 4 Dec 2023
I am trying to decode the signal from a geiger counter audio file (which has a clicking sound), and find out the frequency for 1 second "chunks" of it. I tried doing a frequency spectrum, but that doesnot appear to work.

Accepted Answer

Star Strider
Star Strider on 20 Nov 2023
Edited: Star Strider on 4 Dec 2023
If you want to divide the signal into non-overlapping segments and then analyse each segment, use the buffer function.
That would go something like this for your vector that I will call ‘signal’:
Fs = ...; % Sampling Frequency (Hz)
ts = 1; % Seconds In Each Segment
n = Fs*ts; % Samples / Column = Samples/Second * Seconds
signal_buffer = buffer(signal, n);
Each column of ‘signal_buffer’ now has a 1-second segment of ‘signal’. If ‘signal’ has more than one channel, do this for each channel. It just makes the code easier to work with and interpret.
EDIT — (21 Nov 2023 at 06:43)
Determining the frequency of the clicks in each second would require counting them. They are likely not simple square-wave pulses, and instead are probably decaying exponential sine curves. Modeling one of them and then using the findsignal function (or one of its friends) would likely make this easier.
EDIT — (4 Dec 2023 at 18:16)
If all the pulses are like the plot image (and relatively clean with no noise), use either findpeaks or islocalmax with a prominence level to detect each peak. Convert the returned indices (my preference) either directly from findpeaks or using find with islocalmax to times by using them to index into the time vector.
It might be necessary to plot a time-frequency spectrum. For that, I suggest the pspectrum funciton with the 'spectrogram' option.

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!