# Identify fundamental frequencies in short-period waveform

Maybe I'm being stupid and failing to see something here...

I need to analyse a signal over a relatively short time period (~1-2 cycles for the lowest frequency, perhaps 20-30 cycles for the highest frequency). My aim is to identify the frequencies which are present - usually two or three, never more than six. So naturally, I perform a Fourier transform, applying a Blackman-Harris window to get a reasonable compromise between peak breadth and sidelobe suppression.

A priori I expected that when there were two frequencies I'd see two peaks, with three frequencies I'd see three peaks etc. What actually happens is that with two frequencies I get three peaks ($f_{1}$, $f_{2}$, $f_{1}+f_{2}$), with three frequencies I get up to seven peaks ($f_{1}$, $f_{2}$, $f_{3}$, $f_{1}+f_{2}$, $f_{2}+f_{3}$, $f_{1}+f_{3}$, $f_{1}+f_{2}+f_{3}$) and so on up to 63 peaks with six frequencies. This isn't terribly useful. Because the peaks are relatively broad because of the short sampling time, it is almost always the case that some of them overlap and are indistinguishable from one another, and even if (in the six-frequency case) I could see all 63 peaks, there are $^{63}C_{6} = 67,945,521$ possible ways of guessing which six peaks represent the actual frequencies I want!

Yet I can't imagine that what I'm trying to do is that unusual, so I can't help thinking that I'm either doing the transform wrong, or missing some other, much simpler way of achieving my objective. Which is it?

• are you sure that there's only these two frequencies in your signal? If a signal containing multiple frequencies passes a nonlinear system, intermodulations inevitably appear. Could that be the case here? Jan 21, 2017 at 16:09
• Also, maybe you could share a dataset somewhere? I like raw data (as in continuous IEEE754 floats of defined width, or integers), netCDF, HDF5, but will probably deal with anything you have if possible :) Jan 21, 2017 at 16:12
• What do you mean by "frequencies"? Do you mean sinusoids? Or the periodicity of more interesting waveforms (speech or music)? If periodicity, those usually come with tons of overtones and harmonics in any FFT result. Jan 21, 2017 at 19:49
• @MarcusMüller, I can post either ASCII in a CSV, or raw numbers exported from a Fortran program in native format. Would either of these be decipherable for you? Jan 21, 2017 at 20:18
• @MarcusMüller: actually the combination of your first comment and hotpaw2's answer has pretty much set me on the right track. I'd been oversimplifying by thinking that, just because a single-layer optical interference pattern looks like a single-frequency sine wave, a two-layer pattern should look like two frequencies. It does, of course, but the additive signal will always be there because a light ray can always travel the full distance before interfering. In the general case, with many layers, interference can occur between any arbitrary pair of interfaces. Jan 21, 2017 at 20:31