AW: Harmonix content formula
Martin Czech
martin.czech at intermetall.de
Tue Jun 8 15:43:37 CEST 1999
> >Is there some formula for working out the harmonic content of any
> wave? and
> >conversly is there a formula for re-constructing the wave?
>
You need the Fourier Transform FT and it's inverse.
The general form is a bit difficult (complex e function, integration).
I think the FT is incredible usefull, without that quite a large part
of physics would not exist.
A very reasonable text is:
"The Fast Fourier Transform and Its Applications"
Prentice Hall
E.O. Brigham
ISBN 0133075052
Please check, I have an old edition, the newer ones may have
split up into two texts!
Any university library should have it.
It is very instructive to spend a few afternoons with transforms
and inverse transforms, you will learn a lot out of it.
A couple of analytic results are presented in tables,
saw, square, pulse and many others (see Brigham).
In nearly all practical cases you only have a table of your signal,
ie. samples. Eg. measurements of temperature along a iron rod, electrical
signals etc. Of course then the task of integration is modified into
summation, ie. Discrete Fourier Transform DFT.
This is very easy to implement (you should really try this in BASIC or C).
This direct implementation gets very slow for long tables (samples),
ie. large N. Thus the Fast Fourier Transform FFT was invented, the
computing time is reduced by roughly log2(N)/N**2. This algorithm
exploits the fact that turning the exponential phase vector several
times is the same as modulo 2*M_PI, or 400 DEG = 40 DEG on a circle.
Thus a lot of multiplications with the "twidle" factor can be saved.
I understand the FFT algorithm only for small N, and I just adapted the
Fortran routines from the book into C.
As with all mathematical tools it is essential that you know exactly
what you do, otherwise you will be completely wrong. This is very true
for the step from FT to DFT, because this can create unwanted artefacts!
If you don't want to get into that detail, you can just use Cool-Edit,
this Shareware has an FFT analyser on board, you just need a sample of
your desired wave. The program can display any sample as waveform or
spectrogram, I use this eg. to identify hf noise in my audio samples.
This is nice if you are almost not able to hear the noise signal and when
you don't exactly know where it is. The blob in the spectrogram is easy to see.
But if you don't know the rules of the game you will certainly come out
with a completely wrong interpretation of the displayed data
(btw.: Jean Babtiste Fourier (?) invented the transform to solve the
differential equation of heat transfer. He could solve the equation for
sinoidal temperature distributions and so he could use this solution
for the superposition of many sine distributions, this superposition
process is the basis of the Fourier theorem.
This was a very new way to think back then, and Fourier was under heavy
attack of the angry old men from the academy.
I'm currently reading a book where it is shown how hard it was and is to
invent something new against stuborn old men.
Fourier (see above)
Wegener (continental drift "absolutely mad")
Galilei (...)
Stephenson (steam driven railway "steel wheels can not work on steel rails")
Reiss (telephone "this invetion is useless")
and so on and so on , an endless table of names
m.c.
----------------------------------------------------------------------
m.c. (alias mad scientist): 3 CDs à 72 min., Elektronic Music info,
synth do it yourself info, Synth-Diy Mailing List Archive (Grey Pages)
all @ http://www.geocities.com/SoHo/Museum/4459/index.html, enjoy!
More information about the Synth-diy
mailing list