I am analyzing a signal with a fundamental frequency of 60 Hz. From this, I can infer that a sign change will occur every 8.3 ms. Since the signal is not a pure sinusoid, the time between sign changes (i.e. zero crossings) varies throughout the data. Is there any way to use the time between zero crossings to determine the full frequency spectrum if the fundamental frequency is known? An exact solution is not required, just a reasonable approximation.

I understand a Fourier transform will accomplish this task. My question is not how to determine the frequency spectrum, it is how to use the time between zero crossings to determine the frequency spectrum. I am under the impression this is not possible, but my knowledge on the subject is limited. Any insight is greatly appreciated.