List of usage examples for org.apache.commons.math3.transform FastFourierTransformer transform
public Complex[] transform(final Complex[] f, final TransformType type)
From source file:com.mycompany.semconsolewebapp.FFT.java
public static double[] forward(double[] data) { FastFourierTransformer f = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] fftC = f.transform(data, TransformType.FORWARD); for (int i = 0; i < data.length; i++) { data[i] = fftC[i].abs();// ww w. ja v a 2 s . c om if (Double.isNaN(data[i])) { System.out.println("C " + fftC[i].getReal() + " + i" + fftC[i].getImaginary()); System.out.println("D " + data[i]); break; } } return data; }
From source file:com.bleedobsidian.datawave.utils.Sinewave.java
/** * Calculate the frequency of sine wave from sound data. * //www . j a va 2s .c o m * @param sampleRate Sample rate. * @param samples Samples. * * @return Frequency. */ public static double calculateFrequency(double sampleRate, double[] samples) { FastFourierTransformer transformer = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] complex = transformer.transform(samples, TransformType.FORWARD); double real; double im; double mag[] = new double[complex.length]; for (int i = 0; i < complex.length; i++) { real = complex[i].getReal(); im = complex[i].getImaginary(); mag[i] = Math.sqrt((real * real) + (im * im)); } double peak = 0.2; int index = -1; for (int i = 0; i < complex.length; i++) { if (peak < mag[i]) { index = i; peak = mag[i]; } } return ((sampleRate * index) / Audio.SAMPLE_BUFFER_SIZE) * 2; }
From source file:com.fpuna.preproceso.util.Util.java
public static double[] transform(double[] input) { //double[] tempConversion = new double[input.length]; double[] tempConversion = new double[2048]; FastFourierTransformer transformer = new FastFourierTransformer(DftNormalization.STANDARD); try {//from w ww . j a v a 2 s . com Complex[] complx = transformer.transform(input, TransformType.FORWARD); for (int i = 0; i < complx.length; i++) { double rr = (complx[i].getReal()); double ri = (complx[i].getImaginary()); tempConversion[i] = Math.sqrt((rr * rr) + (ri * ri)); } } catch (IllegalArgumentException e) { System.out.println(e); } return tempConversion; }
From source file:br.prof.salesfilho.oci.util.OCIUtils.java
public static Complex[] fft(double[] input, TransformType type) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] resultComplex = fft.transform(input, type); return resultComplex; }
From source file:br.prof.salesfilho.oci.util.OCIUtils.java
public static Complex[] fft(Complex[] input, TransformType type) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] resultComplex = fft.transform(input, type); return resultComplex; }
From source file:br.prof.salesfilho.oci.util.OCIUtils.java
public static double[] fft_forward_double(double[] input) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] complexTransInput = fft.transform(input, TransformType.FORWARD); double[] result = new double[complexTransInput.length]; for (int i = 0; i < complexTransInput.length; i++) { result[i] = (complexTransInput[i].getReal()); }//www . j a v a2 s . co m return result; }
From source file:br.prof.salesfilho.oci.util.OCIUtils.java
public static double[] fft_magnitude(double[] input) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] complexTransInput = fft.transform(input, TransformType.FORWARD); for (int i = 0; i < complexTransInput.length; i++) { double real = (complexTransInput[i].getReal()); double img = (complexTransInput[i].getImaginary()); input[i] = (Math.pow(real, 2) + Math.pow(img, 2)); }/*from w w w . j a v a 2 s . co m*/ return input; }
From source file:net.sf.dsp4j.octave.packages.signal_1_0_11.Freqz.java
public Freqz(double[] b, int n) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] hb = fft.transform(Arrays.copyOf(b, 2 * n), TransformType.FORWARD); H = Arrays.copyOfRange(hb, 0, n); w = new double[n]; for (int i = 0; i < H.length; i++) { w[i] = Math.PI / n * i;//from ww w . j a v a 2 s . com } }
From source file:net.sf.dsp4j.octave.packages.signal_1_0_11.Freqz.java
public Freqz(double[] b, double[] a, int n) { FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] hb = fft.transform(Arrays.copyOf(b, 2 * n), TransformType.FORWARD); Complex[] ha = fft.transform(Arrays.copyOf(a, 2 * n), TransformType.FORWARD); H = new Complex[n]; w = new double[n]; for (int i = 0; i < H.length; i++) { H[i] = hb[i].divide(ha[i]);// w w w . jav a 2 s. co m w[i] = Math.PI / n * i; } }
From source file:br.prof.salesfilho.oci.service.ImageDescriptorService.java
/** * @param signal/* w w w . ja v a 2 s . c om*/ * @param channel RGB and grayscale (1 = RED, 2 = GREEN, 3 = BLUE and 4 = * GRAYSCALE, diferent value GRAYSCALE is returned) * @return array of abs FFT */ public double[] fft(double[] signal, int channel) { double[] result = new double[signal.length]; FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); Complex[] complexTransInput = fft.transform(signal, TransformType.FORWARD); for (int i = 0; i < complexTransInput.length; i++) { result[i] = complexTransInput[i].getReal() + complexTransInput[i].getImaginary(); } return result; }