# Finding correlations between many unknown functions.

Given an arbitrarily large number of black-box functions of one variable, is it possible to produce expressions that approximate their relationships to each other over their shared domain? Is it possible to construct many expressions representing individual aspects of their correlations?

For example, let's say you have 3 functions, f, g, and h. Unknown to us, h(x) = f(x - 5) + 2*g(x). Can some method determine this relation, or even some method that approximates it? What about for much more complicated relationships? Only thing I've seen that was close to this was genetic.

Finally, the reason I'm asking: to tease out instrument information from a musical track. After discrete wavelet transform, each frequency (also discreet) is a function of t. If it's possible to extract and approximate the behavior of an instrument (attack decay sustain release), from the point of view of the relationships between amplitudes of its constituent frequencies over time (and even more difficultly, over pitch changes). This instrument information can be used to compress the audio. More accurately, it doesn't even have to be instruments necessarily. Some minimalized set of eigenvectors could, I assume, model even voices, transients, and other complex sounds... correct? Maybe we could call them eigeninstruments lol.

Edit: So the first thing I do is look up eigeninstrument on google. http://www.ee.columbia.edu/~grindlay/pubs/WASPAA_poster_2009.pdf But... can it be used for audio compression?

Edit 2: Actually, I'm thinking that while eigeninstruments might work, it would not necessarily result in the best compression. It doesn't "understand" the relationships of frequencies when an instrument is played at a different (or many) pitches.

-