Decoding geiger counter signal

5 次查看(过去 30 天)
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.

采纳的回答

Star Strider
Star Strider 2023-11-20
编辑:Star Strider 2023-12-4
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by