package bladejapan.com;
import java.math.*;
public class dft {
private static int NUM = 4;
private int m_dnum;
private double m_sampling;
private double m_basic_frq;
private double[] m_sfr;
private double[] m_sfi;
private double[] m_fr;
private double[] m_fi;
public dft(double a_smpling, double[][] a_x){
m_sfr = new double[NUM];
m_sfi = new double[NUM];
m_fr = new double[NUM];
m_fi = new double[NUM];
m_dnum = NUM;
m_sampling = a_smpling;
m_sfr[0] = 5.9;
m_sfi[0] = 0.0;
m_sfr[1] = 0.5;
m_sfi[1] = 0.0;
m_sfr[2] = -6.1;
m_sfi[2] = 0.0;
m_sfr[3] = 0.5;
m_sfi[3] = 0.0;
/* for(int i = 0; i < m_dnum; i++){
m_sfr[i] = 1.0 + Math.sin(2.0 * Math.PI / m_dnum * i);
m_sfi[i] = 0.0;
}
*/
dft_calc();
System.out.println("bye");
}
public double[] get_real(){
return m_fr;
}
public double[] get_img(){
return m_fi;
}
private void dft_calc(){
double omega;
for(int i = 0; i < m_dnum; i++){
m_fr[i] = 0.0;
m_fi[i] = 0.0;
for (int k = 0; k < m_dnum; k++){
omega = 2.0 * Math.PI * i * k / m_dnum;
m_fr[i] += m_sfr[k] * Math.cos(omega) + m_sfi[k] * Math.sin(omega);
m_fi[i] += m_sfi[k] * Math.cos(omega) - m_sfi[k] * Math.sin(omega);
}
}
}
}
dftTest.java
package bladejapan.com;
import java.lang.*;
public class dftTest{
static public void main(String args[]) {
double []real;
double []img;
double [][]datum;
datum = new double[8][2];
long start = System.currentTimeMillis();
dft dft = new dft(0.001, datum);
real = dft.get_real();
img = dft.get_img();
long stop = System.currentTimeMillis();
System.out.println("Ԃ " + (stop - start) + " ~błB");
}
}