Okey.
50 pulses per second give a time slot of 20 mS per pulse.
I don't know the exact limits of the Arduino so my answer might be a bit unscertain. Can an Arduino receive pulses into any counter that can be read?
To me it looks like polling could work. Count pulse flanks using the function millis during one second. This will make the controller totaly occupied during the measuring time of one second.
An other alternative could be using an external counter that is reset, timestamped in the Arduino and started. Then stopped after 1000 millis and read.
Anything new in this?