allan@didsgn.uucp (didsgn) (10/05/89)
brianw@microsoft.UUCP (Brian Willoughby) writes: >In article <10471@csli.Stanford.EDU> poser@csli.stanford.edu (Bill Poser) writes: >>The Fast Hartley Transform is described in great detail in >>Ronald Bracewell's recent book _The Hartley Transform_. ... >For use in a one-way transform - perhaps to display frequency spectrum >content of audio data - the FHT might be the choice. >But, since HiFi audio is often discussed in this group, I wanted to point >out that the phase information is necessary to accurately reconstruct the >original signal. If the goal is to process the frequency domain data >obtained from a Fourier Transform and then reconstruct a modified version >of the original time domain data, it follows that a great deal of >information would be lost without the phase of each frequency component. I would like to point out that the FFT transform may be derived quite simply from the FHT transform. Since you wanted all the phase info contained in the FFT, you now have it. However, since FHT is computed over real numbers and not imaginary numbers, the computation effort is much less. To compute (in C) the FFT from the FHT is: for ( i =0 ; i < N/2; i++ ) { FFT[ i ].real = FFT[ N-i ].real = (FHT[ I ] + FHT[ N-i ])/2.0 ; FFT[ i ].imag = -( FFT[ N-i ].imag = (FHT[ I ] - FHT[ N-i ])/2.0 ) ; } In a similar fashion, the FHT can be derived from the FFT so that the inverse transform can be found: for ( i =0 ; i < N; i++ ) { FHT[ i ] = FFT[ i ].real - FFT[ i ].imag ; } And since the FHT is faster than the FFT, it is often faster to use the FHT and convert than to actually compute the FFT of a data set. -Allan G. Schrum P.S. I tried to be acurate with the above equations, but if I made a typo or other small error, please adjust flames to an appropriate level :-) -- Allan G. Schrum | Sign it? Without reading the fine print? Digital Design, Inc. |----------------------------------------- 3060 Business Park Drive | (404) 447-0274 Norcross, GA 30071 | ...!gatech!rebel!didsgn!allan