org.opensourcephysics.frames
Class FFTFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.opensourcephysics.display.OSPFrame
                          extended by org.opensourcephysics.display.DrawingFrame
                              extended by org.opensourcephysics.frames.FFTFrame
All Implemented Interfaces:
java.awt.datatransfer.ClipboardOwner, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, AppFrame, Hidable

public class FFTFrame
extends DrawingFrame

FFTFrame computes the FFT and displays the result using a ComplexDataset.

Version:
1.0
Author:
W. Christian
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.opensourcephysics.display.DrawingFrame
DrawingFrame.DrawingFrameLoader
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  ComplexDataset complexDataset
           
protected  DataTable dataTable
           
protected  int domainType
           
static int FREQ
           
static int MODE
           
static int MOMENTUM
           
static int OMEGA
           
protected  DataTableFrame tableFrame
           
static int WAVENUMBER
           
 
Fields inherited from class org.opensourcephysics.display.DrawingFrame
copyItem, customInspector, drawingPanel, editMenu, fileMenu, MENU_SHORTCUT_KEY_MASK, pasteItem, replaceItem, reply
 
Fields inherited from class org.opensourcephysics.display.OSPFrame
animated, autoclear, buttonPanel, childFrames, constructorThreadGroup, customButtons, keepHidden, strategy
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FFTFrame(java.lang.String xlabel, java.lang.String ylabel, java.lang.String title)
          A DrawingFrame that displays a FFT as its drawable.
 
Method Summary
protected  void addMenuItems()
          Adds Views menu items on the menu bar.
 void clearData()
          Clears all the stored complex data.
 void clearDrawables()
          Removes drawable objects added by the user from this frame.
 void convertToAmpAndPhaseView()
           
 void convertToPhaseBarView()
           
 void convertToPostView()
           
 void doFFT(double[] data, double xmin, double xmax)
          Does an FFT of the given data array.
 void doFFT(Function reF, Function imF, double xmin, double xmax, int n)
          Does an FFT of the given real and imaginary function.
 void doRealFFT(double[] data, double xmin, double xmax)
          Does an FFT of the given data.
 java.util.ArrayList<Drawable> getDrawables()
          Gets Drawable objects added by the user to this frame.
<T extends Drawable>
java.util.ArrayList<T>
getDrawables(java.lang.Class<T> c)
          Gets Drawable objects added by the user of an assignable type.
 void setDomainType(int type)
          Sets the units for the FFT output.
 void setLogScale(boolean xlog, boolean ylog)
          Sets the axes to use a logarithmetic scale.
 void setXYColumnNames(java.lang.String xlabel, java.lang.String reLabel, java.lang.String imLabel)
          Sets the labels on the data table.
 void showDataTable(boolean show)
          Shows or hides the data table.
 void showLegend()
          Shows how phase angle is mapped to color.
 
Methods inherited from class org.opensourcephysics.display.DrawingFrame
addDrawable, clearDataAndRepaint, copyAction, getAxes, getDrawingPanel, getLoader, getObjectOfClass, inspectXML, invalidateImage, isAutoscaleX, isAutoscaleY, limitAutoscaleX, limitAutoscaleY, loadDisplayMenu, loadToolsMenu, lostOwnership, paint, pasteAction, refreshGUI, removeDrawable, removeObjectsOfClass, render, replaceAction, replaceDrawable, saveXML, setAutoscaleX, setAutoscaleY, setCartesian, setCustomInspector, setDrawingPanel, setEnabledCopy, setEnabledPaste, setEnabledReplace, setInteractiveMouseHandler, setInteriorBackground, setMessage, setMessage, setPixelsPerUnit, setPolar, setPreferredMinMax, setPreferredMinMaxX, setPreferredMinMaxY, setSquareAspect, setXLabel, setYLabel
 
Methods inherited from class org.opensourcephysics.display.OSPFrame
addButton, addChildFrame, bufferStrategyShow, clearChildFrames, createBufferStrategy, dispose, getChildFrames, getChooser, getConstructorThreadGroup, getMenu, isAnimated, isAutoclear, isIconified, isKeepHidden, parseXMLMenu, parseXMLMenu, removeMenu, removeMenuItem, setAnimated, setAutoclear, setDefaultCloseOperation, setFontLevel, setKeepHidden, setSize, setTitle, setVisible, show, wishesToExit
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opensourcephysics.display.AppFrame
getDefaultCloseOperation
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

MODE

public static final int MODE
See Also:
Constant Field Values

FREQ

public static final int FREQ
See Also:
Constant Field Values

OMEGA

public static final int OMEGA
See Also:
Constant Field Values

WAVENUMBER

public static final int WAVENUMBER
See Also:
Constant Field Values

MOMENTUM

public static final int MOMENTUM
See Also:
Constant Field Values

domainType

protected int domainType

complexDataset

protected ComplexDataset complexDataset

dataTable

protected DataTable dataTable

tableFrame

protected DataTableFrame tableFrame
Constructor Detail

FFTFrame

public FFTFrame(java.lang.String xlabel,
                java.lang.String ylabel,
                java.lang.String title)
A DrawingFrame that displays a FFT as its drawable.

Parameters:
xlabel - String
ylabel - String
title - String
Method Detail

addMenuItems

protected void addMenuItems()
Adds Views menu items on the menu bar.

Overrides:
addMenuItems in class DrawingFrame

setXYColumnNames

public void setXYColumnNames(java.lang.String xlabel,
                             java.lang.String reLabel,
                             java.lang.String imLabel)
Sets the labels on the data table. The xlabel resets the x axis label on the plot.

Parameters:
xlabel - String
reLabel - String
imLabel - String

setDomainType

public void setDomainType(int type)
Sets the units for the FFT output. Domain types are: MODE, FREQ, OMEGA, WAVENUMBER, MOMENTUM

Parameters:
type - int

convertToPostView

public void convertToPostView()

convertToAmpAndPhaseView

public void convertToAmpAndPhaseView()

convertToPhaseBarView

public void convertToPhaseBarView()

doFFT

public void doFFT(Function reF,
                  Function imF,
                  double xmin,
                  double xmax,
                  int n)
Does an FFT of the given real and imaginary function. The function is evaulauted on the interval [xmin, xmax). Note that the endpoint, xmax, is excluded.

Parameters:
reF - function the real part of the function.
imF - function the imaginary part of the function.
xmin - double
xmax - double
n - int number of compelx data points

doRealFFT

public void doRealFFT(double[] data,
                      double xmin,
                      double xmax)
Does an FFT of the given data. The array is assumed to contain real numbers. The given array remains unchanged.

Parameters:
data - double[]
xmin - double
xmax - double

doFFT

public void doFFT(double[] data,
                  double xmin,
                  double xmax)
Does an FFT of the given data array. The data array is assumed to contain complex numbers stored as successive (re,im) pairs. The given array remains unchanged.

Parameters:
data - double[]
xmin - double
xmax - double

getDrawables

public java.util.ArrayList<Drawable> getDrawables()
Gets Drawable objects added by the user to this frame.

Overrides:
getDrawables in class DrawingFrame
Returns:
the list

clearDrawables

public void clearDrawables()
Removes drawable objects added by the user from this frame.

Overrides:
clearDrawables in class DrawingFrame

getDrawables

public <T extends Drawable> java.util.ArrayList<T> getDrawables(java.lang.Class<T> c)
Gets Drawable objects added by the user of an assignable type. The list contains objects that are assignable from the class or interface.

Overrides:
getDrawables in class DrawingFrame
Parameters:
c - the type of Drawable object
Returns:
the cloned list
See Also:
DrawingFrame.getObjectOfClass(Class c)

clearData

public void clearData()
Clears all the stored complex data.

Overrides:
clearData in class OSPFrame

setLogScale

public void setLogScale(boolean xlog,
                        boolean ylog)
Sets the axes to use a logarithmetic scale.

Overrides:
setLogScale in class DrawingFrame

showLegend

public void showLegend()
Shows how phase angle is mapped to color.


showDataTable

public void showDataTable(boolean show)
Shows or hides the data table.

Parameters:
show - boolean