I would like to find an elegant way to quickly find particular frequencies and also filter out other. Would this best be solved by sorting the periods into bins and counting the values in the bins? I wanted to see how other people might look at this data.

You know the intervals, or periods, between each set of impulses. Take the inverse of these values to get the corresponding frequencies. Generating a histogram with the frequency values will let you see how they are distributed in the segments of the signal that you've analyzed.

Have you tried autocorrelation? Also, do you have prior knowledge of how many underlying frequencies might exist in the signal and if they are related in anyway?

when you say frequency do you mean pulse rate or actual frequency domain. For random pulses(unshaped) you are likely to get frequencies all over the digital domain, do an fft.

I mean pulse rate, and only the relationship between subsequent impulses. So by my original idea and what MichaelRW reiterated, an impulse at 0, 1ms, 100ms would be 1kHz and ~100Hz. That doesn’t feel right though.

What would I take the FFT of? I don’t have sampled values at some sampling interval and if I did that it would just be a bunch of shifted impulses in the time domain. I know what that looks like in the frequency domain. It’s not very useful information in this case. The important information is the time between impulses.

Imagine an application where I receive the same pseudo random series of light pulses from one source and a different pseudo random series from another source. What’s another way to characterize this signal? What would be a quick way of identifying it

pseudo random from two sources? nothing special about a given source. if you know the seed and start then you might check the sequence directly and see which source sent it.

In this case calling your data "f(t) = 1 for some particular values of t" may be leading you astray. Consider it to be t(n) for n = 0, 1, 2,... That is what you are recording. You also know that T = t(0) + t(1) + ... t(n) is the time from the start of your measurements until the most recent interrupt.

Generally if you don't know anything about a signal, start with a histogram of the data. that and calculating the mean, standard deviation and other probability distributions of the data may provide some insight. In this case, autocorrelation could tell you if for instance,the next data after a long time (large data value) tends to be short (small data value).