/* * FFTUtil.java * * Created on December 1, 2004, 9:11 PM */ package org.das2.math.fft; import org.das2.dataset.QuickVectorDataSet; import org.das2.dataset.VectorDataSetBuilder; import org.das2.dataset.ClippedVectorDataSet; import org.das2.dataset.VectorDataSet; import org.das2.dataset.DataSetUtil; import org.das2.datum.Units; import org.das2.datum.DatumVector; import org.das2.datum.UnitsUtil; /** * * @author Jeremy */ public class FFTUtil { public static VectorDataSet fftPower( GeneralFFT fft, final VectorDataSet vds ) { return fftPower( fft, vds, getWindowUnity(vds.getXLength()) ); } public static VectorDataSet getWindowUnity( final int size ) { VectorDataSet unity= new QuickVectorDataSet() { public double getDouble(int i, Units units) { return 1.0; } public int getXLength() { return size; } public double getXTagDouble(int i, Units units) { return i; } public Units getXUnits() { return Units.dimensionless; } public Units getYUnits() { return Units.dimensionless; } }; return unity; } public static VectorDataSet getWindow10PercentEdgeCosine( final int size ) { final int n= size; int maxlim= 410; int lim= Math.min( n/10, maxlim ); final double[] ww= new double[n]; double step = Math.PI / lim; for ( int i=0; i