/* * FFTUtil.java * * Created on December 1, 2004, 9:11 PM */ package org.das2.qds.math.fft; import org.das2.datum.Units; import org.das2.datum.UnitsUtil; import org.das2.qds.AbstractDataSet; import org.das2.qds.DDataSet; import org.das2.qds.QDataSet; import org.das2.qds.util.DataSetBuilder; /** * * @author Jeremy */ public class FFTUtil { public static QDataSet fftPower( GeneralFFT fft, final QDataSet vds ) { return fftPower( fft, vds, getWindowUnity( vds.length()) ); } public static QDataSet getWindowUnity( final int size ) { QDataSet unity= new AbstractDataSet() { public int rank() { return 1; } @Override public double value(int i) { return 1.0; } @Override public int length() { return size; } }; return unity; } public static QDataSet 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; ifft.n) vds= vds.trim(0,fft.n); double [] yreal= new double[ fft.n ]; for ( int i=0; i