Reply by Gordon Sande December 16, 20092009-12-16
On 2009-12-16 15:00:17 -0400, Greg Berchin 
<gberchin@comicast.net.invalid> said:

> On Wed, 16 Dec 2009 10:23:39 -0700, Eric Jacobsen <eric.jacobsen@ieee.org> > wrote: > >> You can apply some trig identities and probably get there. > > I don't see how. I've been working with the math in the "exp(j&#4294967295;)" form, where > trig identities appear as simple rotations, and I cannot make FFT{I+jR} equal > IFFT(R+jI). > >> Shameless plug, but relevant: >> >> http://www.dsprelated.com/showarticle/51.php > > The closest that I can get, using the arguments presented in your article, is > that FFT{I+jR} equals IFFT(R+jI) to within a pi/2 phase shift. That's not the > same as FFT{I+jR} == IFFT(R+jI). > > Greg
The trick you are looking for is about data structures. The usual FT code requires both the size of the data and the data and maybe other stuff. The data may be either a single complex array or two real arrays, one of the real parts and the other of the imaginary parts. So you will see FTSubr ( n, x, y ) where x is the array of reals parts and y is the array of imaginary parts. The trick is to use FTSub ( n, y, x ) for the inverse. The bother with normalization is left as an exercise for the reader. Now the FT is just a matrix multiply by F and what we want is a matrix multiply by F* (* for complex conjugate). So what algebra do we use to turn F into F*? Now to turn x+iy (i is the imaginary unit and nor current - I use j for indexing - sorry) into y+ix we start with (x+iy)* which is x-iy which is not it so i(x+iy)* which is ix-iiy or y+ix. The trick above is the F{i(x+iy)*} and if we undo the x-y swap it turns into i(F{i(x+iy)*})* and unwinding the brackets gets F*ii*(x+iy)** but ii* is 1 and (x+iy)** is (x+iy) so we have just F*(x+iy). No need for any properties beyond those of complex conjugate. We want F* because that is the inverse as F is unitary (or at least when correctly normalized). And it does not matter if the FT is fast or slow.
Reply by Greg Heath December 16, 20092009-12-16
On Dec 15, 10:46&#4294967295;am, Philip Pemberton <usene...@philpem.me.uk> wrote:
> On Tue, 15 Dec 2009 08:54:54 -0500, Jerry Avins wrote: > > Search comp.dsp for the author's name. That should narrow it down. > > Huh, I can't believe I didn't think of that first... I guess I'm too used > to books cribbing code from USENET and then saying nothing about where it > came from. > > >> How would I go about converting this from an FFT to an inverse-FFT? > > >> I've had a quick look round the 'net, and the most I've found was a > >> quick note on Wikipedia -- "the inverse DFT is the same as the DFT, but > >> with the opposite sign in the exponent and a 1/N factor". Do I really > >> just need to flip the sign on PI (i.e. make it negative)? > > >> Sorry if this seems like a stupid question, it just seems a little too > >> easy...! > > > It is that easy. > > Do I need to apply any additional processing to the input data? > What about the "1/n factor"?
For any unfamiliar fft code: fft one period of a cosine. If you don't get 2 spikes with magnitude 0.5 then worry about the multipliers 1,1/N and 1/sqrt(N). Hope this helps. Greg
Reply by Vladimir Vassilevsky December 15, 20092009-12-15

kevin wrote:

> On Dec 15, 6:48 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >>kevin wrote: >> >>>On Dec 15, 6:26 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: >> >>>>This is wrong. Check for yourself. >> >>>I and others have been using it for more than 20 years. With >>>appropriate scaling, it does indeed work. >> >>Yes. You are right. >> > Actually, Vlad, I should have caveated by mentioning that it works > only if using an FFT for complex inputs - if your FFT is for real > only, then 'reversing the list' won't work.
I know it, and this is what got me confused :) VLV
Reply by kevin December 15, 20092009-12-15
On Dec 15, 6:48=A0pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> kevin wrote: > > On Dec 15, 6:26 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > > >>This is wrong. Check for yourself. > > > I and others have been using it for more than 20 years. With > > appropriate scaling, it does indeed work. > > Yes. You are right. > > VLV
Actually, Vlad, I should have caveated by mentioning that it works only if using an FFT for complex inputs - if your FFT is for real only, then 'reversing the list' won't work. Kevin McGee
Reply by kevin December 15, 20092009-12-15
On Dec 15, 6:48&#4294967295;pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> kevin wrote: > > On Dec 15, 6:26 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > > >>This is wrong. Check for yourself. > > > I and others have been using it for more than 20 years. With > > appropriate scaling, it does indeed work. > > Yes. You are right. > > VLV
Actually, Vlad, I should have caveated by mentioning that it works only if using an FFT for complex inputs - if your FFT is for real only, then 'reversing the list' won't work. Kevin McGee
Reply by Vladimir Vassilevsky December 15, 20092009-12-15

kevin wrote:
> On Dec 15, 6:26 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > > >>This is wrong. Check for yourself. > > > I and others have been using it for more than 20 years. With > appropriate scaling, it does indeed work.
Yes. You are right. VLV
Reply by Jerry Avins December 15, 20092009-12-15
kevin wrote:
> On Dec 15, 6:26 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >> This is wrong. Check for yourself. > > I and others have been using it for more than 20 years. With > appropriate scaling, it does indeed work. See: > > [DUHAM88] P. Duhamel, B. Piron, J. M. Etcheto, &#4294967295;On Computing the > Inverse DFT,&#4294967295; IEEE Transactions on Acoustics, Speech and Signal > Processing, vol. 36, Feb. 1988, pp. 285-286. (&#4294967295;reverse the list&#4294967295; or > &#4294967295;exchange&#4294967295; method for an inverse).
To reverse the rotation of a three-phase induction motor, exchange any two of the three supply wires. Likewise, there are several inversions that exploit the symmetry of the FT/IFT pair. I'm not sure we've heard them all yet. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by kevin December 15, 20092009-12-15
On Dec 15, 6:26&#4294967295;pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:

> This is wrong. Check for yourself.
I and others have been using it for more than 20 years. With appropriate scaling, it does indeed work. See: [DUHAM88] P. Duhamel, B. Piron, J. M. Etcheto, &#4294967295;On Computing the Inverse DFT,&#4294967295; IEEE Transactions on Acoustics, Speech and Signal Processing, vol. 36, Feb. 1988, pp. 285-286. (&#4294967295;reverse the list&#4294967295; or &#4294967295;exchange&#4294967295; method for an inverse). Kevin McGee
Reply by Vladimir Vassilevsky December 15, 20092009-12-15

kevin wrote:

> On 15 Dec 2009 12:46:41 GMT, Philip Pemberton <usene...@philpem.me.uk> > wrote: > > >>How would I go about converting this from an FFT to an inverse-FFT? > > > For an inverse FFT, just reverse the list of arguments. If r[n] and i > [n] are two N point arrays for the real and imaginary inputs/outputs, > and: > > FFT (r,i) > > is your forward FFT, then an inverse FFT is: > > FFT (i,r)
This is wrong. Check for yourself. VLV
Reply by Vladimir Vassilevsky December 15, 20092009-12-15

kevin wrote:

> On 15 Dec 2009 12:46:41 GMT, Philip Pemberton <usene...@philpem.me.uk> > wrote: > > >>How would I go about converting this from an FFT to an inverse-FFT? > > > For an inverse FFT, just reverse the list of arguments. If r[n] and i > [n] are two N point arrays for the real and imaginary inputs/outputs, > and: > > FFT (r,i) > > is your forward FFT, then an inverse FFT is: > > FFT (i,r)
This is wrong. Check for yourself. VLV