Frequency Measurement

I have a saw tooth signal >375mV peak to peak with some noise below that level. For me 61 pulses is considered one revolution. I'd like to assign specific designations to each of the 61 pulses, pulse1, pulse2, pulse3 all the way to 61. I'd then like to measure the frequency from pulse1 to the next pulse1 on and on until infinity. I'd then like the program to calculate the standard deviation of that frequency after some statistically significant sample time, say a week. It takes ~33,333.333 microseconds from the first pulse1 to the next.

If a pulse frequency exceeds that calculated standard deviation (decreasing frequency only, not increasing). I'd like it to alert in serial monitor.."Pulse1 frequency has deviated! Oh no!"

I'm new to arduino and am having a hard time conceptualizing what I need to do. I understand relatively little, but know I'll need to use Timer1 somehow in concurrence with setting a threshold of some analog in AC value in order to detect the pulses. Any guidance/director or intuition would be appreciated.

Use an interrupt to capture the start time of each pulse, store it in an array.
Repeat the array capture every 61 pulses.
Requires 4 bytes/pulse x 4 = 264 bytes.
2nd array capture needs another 264
3rd array stores difference between them, another 264.
Usiing up SRAM pretty quick, '328P has 2048 bytes.

Alternate storing the next time between the 2 arrays, compare the latest time difference in the difference array, if different by the "alarm amount", send a message, otherwise store the new amount.

375mV not enough to trigger a high level, run the pulses thru a comparator or something to create valid high/low levels. (See LM358 circuit on an UNO for an idea - instead of 3.3V, adjust comparison point to 350mV.

Since it's a sawtooth signal.
If it ramps up, then drops off, wouldn't it be better to capture the end time of the pulses?

Easy enough to alternate between High Interrupt & Low Interrupt in software, see if results are any different.