Login  Register

Re: Antwort: Re: Antwort: FFT-Filtering - are non-symmetric masks useful?

Posted by Robert Dougherty on Dec 13, 2007; 11:25pm
URL: http://imagej.273.s1.nabble.com/FFT-Filtering-are-non-symmetric-masks-useful-tp3697755p3697760.html

Michael, Albert,  and Joachim,

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,  
but I think the current understanding is that there is no important  
difference.
http://imagejdocu.tudor.lu/Members/ajahnen/ 
conference_proceedings_2006/Robert%20Dougherty

Bob

On Dec 13, 2007, at 9:53 AM, Joachim Wesner wrote:

> 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.
10900 NE 8th St, Suite 900
Bellevue, WA 98004
Tel. (425)990-5912
FAX (425)467-1119
www.optinav.com
[hidden email]