Because noise spikes can also cause errors, therefore, the rate of change check to filter out the possible
erroneous signals is used and make sure that the two points interpolated from are genuine zero crossing
points. For example, if you have two negative samples, a noise spike can make one of them positive and
therefore making the negative and positive pair looks as if there is a zero crossing.
The resultant cycle to cycle timing goes through a weak low pass filter to further smooth out cycle to cycle
variations. This results in a stable and accurate frequency measurement tolerant of noise