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?