Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Fast Fourier Transform in Multiple Dimensions

by diskcrash (Hermit)
on Oct 09, 2002 at 04:43 UTC ( #203829=note: print w/ replies, xml ) Need Help??


in reply to Fast Fourier Transform in Multiple Dimensions

Hi Enigmae,

Take a look at Bill Pratt's book on image processing ISBN 0 471 01888-0 on page 232. It describes Two dimensional unitary transforms. (Such as the Fourier transform.) In particular on page 233 he describes the fact that such transforms are separable by dimension (equations 10.1-5 and 10.1-6). This process says take the one dimensional transform along columns and leave the data in place. Then run over the rows with one dimensional transforms. You should be able to extend this into further dimensions in order. You are left with the N-dimensional transform in place. So handling N-dimensions as single dimension arrays is not so punishing as you have to work that way anyway.

Here's another ref - Digital Image Processing by Gonzalez and Wintz -ISBN 0-201-02597-3 page 50 where they describe the separability of using one dimensional FT's as applied to each dimension in succesion.

So you may have to the reinvent part of the wheel, but it is a reasonable extension from the Math::FFT module that exists.

It sounds like a great module to put back into CPAN when you have it nailed.

Its interesting that MATLAB has a foundation in Perl. It installs Perl in order to run.

Best of Luck,

Diskcrash


Comment on Re: Fast Fourier Transform in Multiple Dimensions
Re: Re: Fast Fourier Transform in Multiple Dimensions
by Anonymous Monk on Oct 09, 2002 at 07:21 UTC
    Original Matlab had nothing to do with Perl. However Matlab has two nice properties that make it a good match with Perl. Matlab is a scripting language similar to Perl. You generate a text document with all the commands then “run” the file from within the Matlab environment. You could also compile the scripts you generate into an executable.

    So the marriage between Matlab and Perl is obvious. Text scripts could be easily manipulated with Perl. Making script generation simpler, and convertion of scripts into executables is easier.

    As a side note. If you are doing any major number crunching especially with anything in matrix format you should consider Matlab. It can generate graphical user interfaces, model any type of mechanical system, and as Perl specializes in text manipulation Matlab specializes in matrix manipulation.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://203829]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2014-08-02 04:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (54 votes), past polls