Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8421297
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T03:06:49+00:00 2026-06-10T03:06:49+00:00

I wanted to use Apache math commons implementation for FFT ( FastFourierTransformer class) to

  • 0

I wanted to use Apache math commons implementation for FFT (FastFourierTransformer class) to process some dummy data whose 8 data samples are contributing to one complete sinusoidal wave. The maximum being amplitude 230. The code snippet that I tried is below :

private double[] transform() 
{   
    double [] input = new double[8];
    input[0] = 0.0;
    input[1] = 162.6345596729059;
    input[2] = 230.0;
    input[3] = 162.63455967290594;
    input[4] = 2.8166876380389125E-14;
    input[5] = -162.6345596729059;
    input[6] = -230.0;
    input[7] = -162.63455967290597;

    double[] tempConversion = new double[input.length];

    FastFourierTransformer transformer = new FastFourierTransformer();
    try {           
        Complex[] complx = transformer.transform(input);

        for (int i = 0; i < complx.length; i++) {               
            double rr = (complx[i].getReal());
            double ri = (complx[i].getImaginary());

            tempConversion[i] = Math.sqrt((rr * rr) + (ri * ri));
        }

    } catch (IllegalArgumentException e) {
        System.out.println(e);
    }

    return tempConversion;
}

1) Now the data returned by method transform is an array of complex number. Does that array contains the frequency component information about input data? or the tempConversion array that I created will contain the frequency information? The values in tempConversion array is :

 2.5483305001488234E-16
 920.0
 4.0014578493024757E-14
 2.2914314707516465E-13
 5.658858581079313E-14
 2.2914314707516465E-13
 4.0014578493024757E-14
 920.0

2) I searched a lot but at most of the places there is no clear documentation on what format of data algorithm expects (in terms of sample code to understand better) and how do I use the array of results to calculate the frequencies contained in the signal?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T03:06:51+00:00Added an answer on June 10, 2026 at 3:06 am

    Your output data looks correct. You’ve calculated the magnitude of the complex FFT output at each frequency bin which corresponds to the energy in the input signal at the corresponding frequency for that bin. Since your input is purely real, the output is complex conjugate symmetric, and the last 3 output values are redundant.

    So you have:

    Bin     Freq        Magnitude
      0     0 (DC)        2.5483305001488234E-16
      1     Fs/8        920.0
      2     Fs/4          4.0014578493024757E-14
      3     3Fs/8         2.2914314707516465E-13
      4     Fs/2 (Nyq)    5.658858581079313E-14
      5     3Fs/8         2.2914314707516465E-13  # redundant - mirror image of bin 3
      6     Fs/4          4.0014578493024757E-14  # redundant - mirror image of bin 2
      7     Fs/8        920.0                     # redundant - mirror image of bin 1
    

    All the values are effectively 0 apart from bin 1 (and bin 6) which corresponds to a frequency of Fs/8 as expected.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am using Apache Commons Logging ™ . For now I wanted to use
I downloaded Axis 1.4 ( http://www.nic.funet.fi/pub/mirrors/apache.org/ws/axis/1_4/ ) and I wanted to use WSDL2Java, but
Let me start with what I use: - ubuntu 11.04 - apache-tomcat-6.0.33 some details
I wanted to use 6 different textures on a cube, one per side, but
I wanted to use full import names in my project (see this question ).
I wanted to use winreg module of python for working with windows registry. But
I wanted to use full width stripe on my footer, but aparently it doesen't
I wanted to use a 'switch' with String, which is supported only in compiler
I wanted to use a retina resolution image (40x40p) on a bar button item
I wanted to use find to find every file in a directory that starts

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.