Okay, I've read through some of the Fourier explanation in this Digital Filters book, and I think I understand. That was going to be one of my next questions: if the data of the FFT actually has the same number of possibilities as the audio data itself (by bit rate and block size), is there then a 1 to 1 relationship, where no two audio blocks could have the same FFT data. I take the answer to be yes. I was told by an electrical engineer that short block sizes miss lower frequencies, but that seems to be covered with the DC channel, even down to a block size of 4. I was a little confused by the possibility of having, for instance, 7 oscillators tuned within .001 Hz of each other, since there is only one value for each channel, and I read that FFT is more accurate if the frequency of the sound is known and is in a harmonic relationship with the bins. But it makes sense that, with a discrete signal, some combination of possible values from neighboring channels would create the same signal. So, the idea is just that the transform data is easier to read if there is a harmonic relationship- not that the reconstructed signal will be truer?
Another question: if I just ran rfft~ on a signal, and then ran ifft~ on the transform, would that create the same signal as a complex signal? The reason I am concerned about this is that, going by Miller's chapter on filter design, more can be done with a single-sample delay if the coefficient is complex. Is this process exactly the same as the Hilbert transform or is there some subtle difference? I'm anxious to start designing filters.
I've been extensively cross-referencing between Miller's Theory and Techniques, Erik Spjut's chapter on DSP in the Csound Book, and Digital Filters by RW Hamming. It amazes me that, with the help of the other two books and mathworld, I am beginning to comprehend a lot of the Hamming concepts, which seemed totally inscrutable last fall. Too bad I go to an art school that would never pay for MathLab in a million years.
Thanks. Chuckk
On 6/19/06, Mathieu Bouchard matju@artengine.ca wrote:
On Wed, 14 Jun 2006, Chuckk Hubbard wrote:
I mean that the reconstituted sound is not exactly the same as the original signal.
after a [fft~], a [ifft~], and then dividing by the block size, what's different from the original? prolly just arithmetic error from addition and multiplication.
BTW, if you look at relative errors on individual bins you are not looking at the right thing. Your relative error should be computed relative to the magnitude of the whole sound. If you have a case where you really need to have low individual relative errors, then you might have a point, but I wonder, do you have such a case?
a pair of FFT on a block size of 1024 is supposed to be roughly like 20 layers each containing 2 [+~], 3 [*~] and 2 [z~], arranged in a rather regular pattern.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada