Results 1 to 2 of 2
  1. #1
    smmustakim is offline Member
    Join Date
    May 2008
    Posts
    1
    Rep Power
    0

    Default fast fourier transform in java

    Hi! Everybody. I'm unable to get the correct Fourier image of a simple sinusoid. appreciate help in correcting the followinhg code.

    void freq_spect(){

    double F[][][];
    double FX[][];
    double f_r[];
    double f_r1[];
    double NNN[][];
    double Four[][];
    int fxy[][];
    int wd=new_img.getWidth();
    int ht=new_img.getHeight();
    F=new double[wd][ht][2];
    Four=new double[wd][ht];
    FX=new double[wd][2];
    f_r=new double[wd*ht];
    f_r1=new double[wd*ht];
    NNN=new double[wd][ht]; img_fourier=newBufferedImage(new_img.getWidth(),ne w_img.getHeight(),BufferedImage.TYPE_BYTE_GRAY);
    rstr_f=img_fourier.getRaster(); //writable raster

    for (int u=0;u<new_img.getWidth();u++)
    {
    for (int v=0;v<new_img.getHeight();v++)
    {
    NNN[u][v]=rstr.getSample(u,v,0); //rstr is the writable raster of the image.
    NNN[u][v]=NNN[u][v]* Math.pow(-1,(u+v));
    F[u][v][0]=0;
    F[u][v][1]=0;
    }
    }
    int vv=0;
    for (int u=0;u<new_img.getWidth();u++)
    {

    FX[u][0]=0; //real array
    FX[u][1]=0; //imaginary array

    for (int a=0; a<new_img.getWidth();a++)
    {
    for(int b=0;b<new_img.getHeight();b++)
    {
    FX[u][0]=FX[u][0]+(NNN[a][b])* Math.cos(Math.PI/180*( (6.28318*((u*a)/wd)));
    FX[u][1] =FX[u][1]-((NNN[a][b])* Math.sin(Math.PI/180*( (6.28318*((u*a)/wd))));
    }
    }
    }











    vv=0;

    for (int u=0;u<new_img.getWidth();u++)
    {
    for(int v=0;v<new_img.getHeight();v++)
    {
    for(int b=0;b<new_img.getHeight();b++)
    {

    F[u][v][0]=F[u][v][0]+(FX[u][0])* Math.cos(Math.PI/180*(6.28318*((v*b)/ht)))+(FX[u][1])* Math.sin(Math.PI/180*(6.28318*((v*b)/ht)));
    F[u][v][1] =F[u][v][1]+(FX[u][1])* Math.cos(Math.PI/180*(6.28318*((v*b)/ht)))-((FX[u][0])* Math.sin(Math.PI/180*(6.28318*((v*b)/ht))));
    }

    double sum11=F[u][v][0]*F[u][v][0];
    double sum22=F[u][v][1]*F[u][v][1];
    Four[u][v]=(sum11+sum22);
    f_r[vv]=Four[u][v];
    f_r[vv]=Math.sqrt(f_r[vv]); //power spectrum
    vv++;
    }
    }
    for (int a=0; a<new_img.getWidth();a++)
    for(int b=0;b<new_img.getHeight();b++)
    {
    rstr_f.setSample(a,b,0,Four[a][b]);
    }

    repaint();


    }

  2. #2
    shiva2oo5 is offline Member
    Join Date
    Dec 2008
    Posts
    1
    Rep Power
    0

    Default

    can you give a little more details on what you are trying to do.. i am familiar with the fft algorithm but your goal is not so selfexplanatory

Similar Threads

  1. Girl from Sweden needs help fast!!! :):)
    By charlotte in forum New To Java
    Replies: 0
    Last Post: 05-25-2008, 03:51 PM
  2. Fast Data Transfer 0.9.1
    By Java Tip in forum Java Software
    Replies: 0
    Last Post: 04-24-2008, 06:41 PM
  3. C++ programmer wants to learn java very fast...
    By joe saunders in forum New To Java
    Replies: 5
    Last Post: 01-05-2008, 12:26 AM
  4. Fast Data Transfer 0.6.7
    By Jamie in forum Java Software
    Replies: 0
    Last Post: 06-14-2007, 02:55 PM
  5. Fast Data Transfer 0.6.4
    By levent in forum Java Software
    Replies: 0
    Last Post: 05-20-2007, 08:55 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •