org.opensourcephysics.analysis
Class FourierAnalysis

java.lang.Object
  extended by org.opensourcephysics.analysis.FourierAnalysis
All Implemented Interfaces:
Data

public class FourierAnalysis
extends java.lang.Object
implements Data

FourierAnalysis adds gutter points to complex-number data before performing a fast Fourier transform. Gutter points increase the number points in order to approximate a nonperiodic function. The FFT output is phase shifted to account for the fact that the FFT basis functions are defined on [0, 2*pi].

Version:
1.0
Author:
W. Christian

Field Summary
protected  int datasetID
           
 
Constructor Summary
FourierAnalysis()
           
 
Method Summary
 double[] doAnalysis(double[] x, double[] z, int gutter)
          Fourier analyzes the given complex data z[] after adding gutter points at the start and end of the z[] array.
 java.lang.String[] getColumnNames()
          The column names to be used in the data display tool
 double[][] getData2D()
          Gets the frequencies, real, and imaginary coefficients.
 double[][][] getData3D()
          3D data is not available.
 java.util.List<Data> getDataList()
          Gets a list that contains the complex dataset of the last Fourier analysis.
 java.util.ArrayList<Dataset> getDatasets()
          Gets the complex datasets that contain the result of the last Fourier analysis.
 java.awt.Color[] getFillColors()
          Fill colors for Data interface.
 int getID()
          Returns a unique identifier for this Data.
 java.awt.Color[] getLineColors()
          Line colors for Data interface.
 java.lang.String getName()
          Gets the dataset name.
 double[] getNaturalFreq()
          Gets the frequencies of the Fourier spectrum.
 double[] getNaturalOmega()
          Gets the angular frequencies of the Fourier spectrum.
 boolean isRadians()
          Gets the radians flag.
 double[] repeatAnalysis(double[] z)
          Repeats the Fourier analysis of the complex data z[] with the previously set scale and gutter.
 void setID(int id)
          Sets the ID number of this Data.
 void setName(java.lang.String name)
          Sets a name that can be used to identify the dataset.
 void useRadians(boolean radians)
          Sets the radians flag for the frequency values of datasets.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

datasetID

protected int datasetID
Constructor Detail

FourierAnalysis

public FourierAnalysis()
Method Detail

doAnalysis

public double[] doAnalysis(double[] x,
                           double[] z,
                           int gutter)
Fourier analyzes the given complex data z[] after adding gutter points at the start and end of the z[] array.

Parameters:
x - double[]
z - double[]
gutter - int
Returns:
double[] the Fourier spectrum

repeatAnalysis

public double[] repeatAnalysis(double[] z)
Repeats the Fourier analysis of the complex data z[] with the previously set scale and gutter.

Parameters:
z - double[]
Returns:
double[] the Fourier spectrum

getNaturalOmega

public double[] getNaturalOmega()
Gets the angular frequencies of the Fourier spectrum.

Returns:
double[]

getNaturalFreq

public double[] getNaturalFreq()
Gets the frequencies of the Fourier spectrum.

Returns:
double[]

useRadians

public void useRadians(boolean radians)
Sets the radians flag for the frequency values of datasets. Dataset x-values are either frequencies (cycles) or angular frequencies (radians) depending on the value of the radians flag.

Parameters:
radians - boolean

isRadians

public boolean isRadians()
Gets the radians flag. Radians is true if the dataset uses angular frequency as the x-coordinate.

Returns:
boolean

getDataList

public java.util.List<Data> getDataList()
Gets a list that contains the complex dataset of the last Fourier analysis. Complex dataset x-values are either frequencies (cycles) or angular frequencies (radians) depending on the value of the radians flag.

Specified by:
getDataList in interface Data
Returns:
list of ComplexDatasets

getDatasets

public java.util.ArrayList<Dataset> getDatasets()
Gets the complex datasets that contain the result of the last Fourier analysis. Real coefficients are contained in the first dataset. Complex coefficients are in the second dataset.

Specified by:
getDatasets in interface Data
Returns:
list of Datasets

getData2D

public double[][] getData2D()
Gets the frequencies, real, and imaginary coefficients.

Specified by:
getData2D in interface Data
Returns:
double[][]

getData3D

public double[][][] getData3D()
3D data is not available.

Specified by:
getData3D in interface Data
Returns:
double[][][]

setName

public void setName(java.lang.String name)
Sets a name that can be used to identify the dataset.

Parameters:
name - String

getName

public java.lang.String getName()
Gets the dataset name.

Specified by:
getName in interface Data
Returns:
String

getColumnNames

public java.lang.String[] getColumnNames()
The column names to be used in the data display tool

Specified by:
getColumnNames in interface Data
Returns:

getLineColors

public java.awt.Color[] getLineColors()
Line colors for Data interface.

Specified by:
getLineColors in interface Data
Returns:

getFillColors

public java.awt.Color[] getFillColors()
Fill colors for Data interface.

Specified by:
getFillColors in interface Data
Returns:

setID

public void setID(int id)
Sets the ID number of this Data.

Specified by:
setID in interface Data
Parameters:
id - the ID number

getID

public int getID()
Returns a unique identifier for this Data.

Specified by:
getID in interface Data
Returns:
the ID number