/* * WaveformToSpectrum.java * * Created on March 25, 2004, 9:09 PM * Translated to QDataSet Oct 11, 2010. */ package org.das2.qds.math.fft; import java.io.IOException; import java.io.PrintWriter; import java.util.logging.Level; import java.util.logging.Logger; import org.das2.datum.Units; import org.das2.datum.DatumVector; import org.das2.datum.UnitsUtil; import org.das2.qds.DDataSet; import org.das2.qds.DataSetUtil; import org.das2.qds.QDataSet; import org.das2.qds.SemanticOps; import org.das2.qds.util.DataSetBuilder; /** * * @author jbf */ public class WaveformToSpectrum { static class UnitsInverter { static Units getInverseUnit( Units unit ) { if ( unit==Units.seconds ) { return Units.hertz; } else if ( unit==Units.dimensionless ) { return Units.dimensionless; } else { throw new IllegalArgumentException( "units not supported: "+unit ); } } } static DatumVector getFrequencyDomainTags( DatumVector timeDomainTags ) { Units timeUnit= timeDomainTags.getUnits(); double[] x= timeDomainTags.toDoubleArray(timeUnit); double[] result= new double[x.length]; result[0]= 0.; double T= x[1]-x[0]; int n= x.length; int n21= n/2+1; for ( int i=0; i 0.01 && rr < 0.09 ) { // try { // PrintWriter fw = new PrintWriter("/tmp/foo.dat"); // for ( int ii=st; ii