http://imagej.273.s1.nabble.com/FFT-Filtering-are-non-symmetric-masks-useful-tp3697755p3697760.html
Maybe something in the link below will help. As I recall, the .doc
and the .ppt both present the conversions. When the FHT was invented
there was a lot of discussion about its pros and cons vs. the FFT,
difference.
> Hi Michael, Hi others,
>
> as I´m unfortunatelly busy with preparing a company presentation
> till next
> monday I cannot look further into this
> issue instantelly (even if I would like to), but plan to attack it
> next
> week
>
> Actually, FHT vs. FFT is only another way of rearranging the
> complex result
> of a real to complex FFT
> and somehow redefining what "negative" frequencies mean. The
> complex FFT
> extension I did basically does
> 2 FHTs and unscrambles the result so that it should be equivalent
> to a real
> complex FFT. I.e. in most cases
> the difference *should* be only in the relative order of 1e-6
> (rounding
> errors) or so. (IIRC the "trick" is to calculate
> the sum and difference of negative and positive "FHT frequencies"
> to get
> what would be the FFT real and imag part.)
>
> However I have to admit that I personally regularly only use a
> plugin of
> mine that has these extensions as a private copy
> and does not rely on the IJ built in version (even if I did thorough
> (?)
> testing before Wayne added the code), so I can
> in the moment not say what the recent status of the bult in version
> is. Yet
> I´m quite confident that the above mentioned
> "unscrambling" principle works as should be and does indeed give
> results in
> agreement with a true FFT within about 1e-6
> as it should be, used it a lot.
>
> I will play around with your macros and others to test. More soon!
>
> "Sorry for any inconvenience" ;-))
>
> Mit freundlichen Grüßen / Best regards
>
> Joachim Wesner
> Projektleiter Optik Technologiesysteme
>
> Ernst Leitz Strasse 17-37 | 35578 Wetzlar (Germany)
> Tel. +49 6441 29 2611 | Fax +49 6441 29 2700
>
> ____________________________________________
>
> Leica Microsystems CMS GmbH | GmbH mit Sitz in Wetzlar | Amtsgericht
> Wetzlar HRB 2432
> Geschäftsführer: Dr. Martin Haase | Colin Davis | Dr. Wolf-Otto Reuter
>
>
>
> Michael Schmid
> <
[hidden email]
>
> N.AC.AT> An
> Gesendet von:
[hidden email]
> ImageJ
> Interest Kopie
> Group
>
> <
[hidden email]. Thema
> GOV> Re: Antwort: FFT-Filtering
> - are
> non-symmetric masks useful?
>
> 13.12.2007 14:20
>
>
> Bitte antworten
> an
> ImageJ Interest
> Group
> <
[hidden email].
> GOV>
>
>
>
>
>
>
> Hi Albert,
>
> maybe you are right that the problem is the FHT (Hartley
> transform), but I think that one should be able to get the FFT
> coefficients from an FHT.
> Anyhow, it seems to me that this does not work as expected.
>
> For example, the power spectrum of a sum of two sine or
> cosine functions with different amplitudes looks like the
> square of a power spectrum to me. Twice the amplitude gives
> 16 times the intensity in the power spectrum, not 4 times as I
> would expect.
> (I used the "raw" power spectrum, not the log-scaled one)
>
> Below is the macro that I use for testing - it creates a sum of
> one-dimensional sin and cos functions.
>
> Further, in the "Complex FFT", a sin(x) function does not give
> an imaginary result as I would have expected.
> Strange enough, when trying a simple sinusoidal function with
> different phaseshifts, I always get a real result (apart from
> numeric noise in the imaginary channel).
>
> One more point, but this could be resolved more easily:
> With FFT Math>Correlate, when correlating an image with itself
> and doing no inverse transformation I would expect to get the
> unscaled power spectrum, not the log-scaled one.
>
> Below is the macro that I use for testing - it creates a
> one-dimensional sin and cos function.
>
> Maybe Joachim Wesner, the FFT/FHT expert in the group, can say
> more about this, whether it is a limitation inherent to the
> FHT or some more mundane problem?
>
>
> Michael
> ________________________________________________________________
> // T E S T M A C R O
> newImage("test", "32-bit Black", 256, 256, 1);
> pi = 3.1415926536;
> f1 = 1*2*pi/256;
> f2 = 2*2*pi/256;
>
> for (x=0; x<255; x++) {
> //v = sin(f1*x + pi/8);
> v = sin(f1*x)+0.5*cos(f2*x);
> setPixel(x, 0, v);
> }
> makeRectangle(0, 0, 256, 1);
> run("Copy");
> for (y=1; y<256; y++) {
> makeRectangle(0, y, 256, 1);
> run("Paste");
> }
> run("Select None");
>
> run("FFT Options...", "fft raw fast complex");
> run("FD Math...", "image1=test operation=Correlate image2=test
> result=PowerSpectrum");
>
>
> ________________________________________________________________
>
> On 12 Dec 2007, at 23:00, Albert Cardona wrote:
>
>> Joachim, Michael,
>>
>> Just a note:
>>
>> As far as I know, ImageJ's "FFT", which is an FHT as Joachim says,
>> does not properly replace FFT at all. When trying to rely on it for
>> Cepstrum
>> and other uses related to registration we realized how much off it is
>> from a proper FFT: a lot.
>>
>> We use FFT from jfftw.jar wrapper for native fftw libraries, and in
>> their absence,
>> the FFT classes from edu_mines_jtk.jar . Using these, results are
>> as analitically
>> expected.
>>
>> There are a few example of its uses in the mpi.fruitfly package of
>> TrakEM2,
>> implemented by Stephan Preibisch.
>>
>> The git repos:
>>
http://repo.or.cz/w/trakem2.git>>
>> The archived source classes:
>>
http://www.ini.uzh.ch/~acardona/piper.php?file=jars/TrakEM2-
>> src.zip
>>
>> Albert
>>
>> --
>> Albert Cardona
>>
http://www.mcdb.ucla.edu/Research/Hartenstein/acardona>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit
http://www.messagelabs.com/email> ______________________________________________________________________
>
Robert Dougherty, Ph.D.
President, OptiNav, Inc.
Tel. (425)990-5912