Quote: "Why doesn't the DC offset affect the frequency information? Because adding a constant value to all the samples just makes the whole scribble bigger, which doesn't affect the midpoint."
This is false. The amplitude of the terms above f = 0 are unchanged by the DC component, regardless of its magnitude. And the "midpoint" of the time spectrum is in fact shifted up or down by the DC component. So the DC term shows up in both the time and frequency representations, without affecting the amplitude of the other terms.
There is a whole lot easier a way to understand what the DFT does which doesn't involve complex things. First generate two tables of signals. Each table is a set of signals having the same length and the same number of samples as the signal to be transformed; all signals are sampled at N equi-spaced points in the time interval T.
The 0th entry in the first table is just the number one repeated N times. The 1st entry in the table is a sampled sinusoid with a period exactly equal to T. The 2nd is a sampled sinusoid with a period of one half T (twice the frequency of the 1st.) The third is a sampled sinusoid with a period one 3rd of T (three times the frequency of the 1st.) The fourth has a period one 4th of 1st (four times the frequency of the first.) You get the point. The last entry in the table is a sampled sinusoid with a period of just two samples, i.e. the signal alternates between +1 and -1 throughout its duration. Scratch your head a bit and you'll see that this yields exactly N/2+1 entries.
The second table is the same as the first except that sampled cosinusiods (the quaduratures) are used instead of sinusoids.
Now it's time to do the transform. Multiply the signal to be transformed sample by sample with the 0th entry of the first table and sum the result (the signal processing name for this vector inner product is correlation.) Record that number as the 0th result. Do the same with the 1st signal in the table and record that as the 1st result. Do this until all N/2+1 results are recorded. For mathimagical reasons we call this vector of numbers the "real" part.
Repeat this for the second table (the sampled cosinusoids) and call this vector of numbers the "imaginary" part.
That's it. Those two vectors, which we combine into a N/2+1 by 2 column matrix, are the discrete fourier transform of the signal.
It gets all weird when this is mathimaticalized with complex algebra and the convenient identities and concise notation it puts on the table but that's just artifice and in the end the above is all there is to it. Nature never ever evidenced a truly complex or imaginary signal until Bohr, et. al. found things deep down that couldn't do without them.
Formalizing at it that way, though led Cooley and Tukey to visualize the matrix decomposition that led them to the fast logarithmic time transform that revolutionized signal processing. I think I read that Gauss actually beat them to it but when I was getting educated that part of Gauss's work remained in obscurity and those guys were the gods that had just brought it into the computational realm.
There is a whole lot easier a way to understand what the DFT does which doesn't involve complex things.
If you really believe this, try to generate a discrete Fourier transform without using complex numbers of one kind or another. It can't be done. Typically, scalars are (and must be) placed in s complex context (i.e. each term with a zero imaginary part) for the process to succeed.
> The second table is the same as the first except that sampled cosinusiods (the quaduratures) are used instead of sinusoids.
Ah. I see you proved my point. I should have read ahead. Your cosines are the imaginary terms, each 90 degrees away from their partners.
Sorry, but the real and imaginary designation is imaginary. The Fourier transform is just a functional decomposition using the sine and cosine as basis functions (the Fourier basis.) They have some special and useful properties such as being the eigenfunctions of a linear system which make them the preferred basis for most work.
Many other functions could be used in those tables which have the properties of orthogonality and completeness and the decomposition would still be one to one and self invertible. The wavelet transform, for example, which doesn't even pretend to be complex.
It was the understanding of wavelet theory that made me realize that sin and cosine decomposition (the Fourier basis) is just one of many.
> I try not to visualize complex functions of complex variables. Four dimensions is just too much.
It's just different representations of the same two dimensions. It's not really four dimensions, unless the view out your west window lives in a different set of dimensions than the view out your east window.
This is false. The amplitude of the terms above f = 0 are unchanged by the DC component, regardless of its magnitude. And the "midpoint" of the time spectrum is in fact shifted up or down by the DC component. So the DC term shows up in both the time and frequency representations, without affecting the amplitude of the other terms.
Demonstration:
Time domain, DC = 0: http://i.imgur.com/XFFJAy1.png
Time domain, DC = 1: http://i.imgur.com/WRtCD6q.png
Frequency domain, DC = 0: http://i.imgur.com/dfAxUlc.png
Frequency domain, DC = 1: http://i.imgur.com/73tc9UA.png
In the fourth graph above, note the large DC term at the left.
I decided not to read beyond the first major error.