I am trying to find the counts per minute of a geiger counter signal using Simulink.
I managed to get the signal in a digital/binary form shown below:
I want to figure out how many pulses there are in a given timefram (1-3 seconds)

Antworten (1)

madhan ravi
madhan ravi am 14 Dez. 2023
Bearbeitet: madhan ravi am 14 Dez. 2023

0 Stimmen

Let A be your Interval test signal in timeseries format. Then
Pulses_1_3secs = nnz(out.A.Data((out.A.Time >= 1) & (out.A.Time <= 3))

4 Kommentare

Robert
Robert am 14 Dez. 2023
I wanted the time average to be rolling, like from 0-2 seconds is ? pulses, 2-4 seconds is ? pulses, etc. I would assume that I would just use a for loop and counter, right.
There are other ways, but yeah, that would work. In each 2 second period, are there the same number of samples (not counts but sample times or elements of your detection vector)? If so, you could use reshape:
data2d = reshape(data1D, numSamplesIn2Sec, []);
countsIn2Secs = sum(data2d, 1);
Robert
Robert am 15 Dez. 2023
By the way, I am using Simulink, so the method that you proposed may not work.
madhan ravi
madhan ravi am 15 Dez. 2023
The block under sum block in the second pic is *Unit Delay* block.
The first PWM block *Run at fixed interval* is ticked as model runs at fixed sample time.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Simulink finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2023b

Gefragt:

am 14 Dez. 2023

Kommentiert:

am 15 Dez. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by