1.前言
本函数完全是基于Java语言及其相关计算工具包完成,已经应用与实际。
众所周知,当我们需要对信号进行分析时,基本都会用到傅里叶变化函数,但是基于Java平台缺少相关的傅里叶函数,或者有的工具包里面虽然有包,但是在实际计算的时候却出现问题。因此需要自己根据傅里叶变换的原理写出相关函数,这样更加靠谱。傅里叶变换作用就是将时域波形转换到频域以观察信号的规律。
本函数首先包含一个计算工具类Complex类,这个类里面包含一些傅里叶变换需要用到的计算工具,其次就是傅里叶变换的类FFT,该类包含傅里叶变换的具体实现方法getFFT()。
废话少说,下面具体看算法的代码以及详解。
2.Complex类
具体代码:
public class Complex {
public double i;
public double j;// 虚数
public Complex(double i, double j) {
this.i = i;
this.j = j;
}
public double getMod() {
// 求复数的模
return Math.sqrt(i * i + j * j);
}
public static Complex Add(Complex a, Complex b) {
return new Complex(a.i + b.i, a.j + b.j);
}
public static Complex Subtract(Complex a, Complex b) {
return new Complex(a.i - b.i, a.j - b.j);
}
public static Complex Mul(Complex a, Complex b) {
// 乘法
return new Complex(a.i * b.i - a.j * b.j, a.i * b.j +