package fouriertransform;
public class FourierTransformTester {
public static void main(String[] args) {
int nData = 32;
double time = 2.;
double freq = 4.;
double amplitude = 5.;
double[] data = new double[nData * 2];
double[] trData = new double[nData * 2];
for (int i = 0; i< nData; i++){
data[2 * i] = amplitude * Math.cos(freq * 2.0 * Math.PI * i * time / nData);
data[2 * i + 1] = 0.0;
System.out.printf("%s%.2f%s%.2f%s%n" , "[" , data[2 * i] , "," , data[2 * i + 1] , "]");
}
System.out.println("-----------------------------------");
trData = FastFourierTransform.transform(nData, data, false);
for(int i = 0; i < nData/2; i++){
freq = (double)(i) /time;
System.out.printf("%.2f%s%.2f%s%.2f%s%n" , freq, "[" , trData[2 * i] , "," , trData[2 * i + 1] , "]");
}
System.out.println("-----------------------------------");
data = FastFourierTransform.transform(nData, trData, true);
for(int i = 0; i < nData; i++){
double timeSlice = (double)(i + 1) * time / (double)nData;
System.out.printf("%.2f%s%.2f%s%.2f%s%n" , timeSlice, "[" , data[2 * i] , "," , data[2 * i + 1] , "]");
}
}
}