类 FastFourierTransformer

java.lang.Object
org.hipparchus.transform.FastFourierTransformer
所有已实现的接口:
Serializable

public class FastFourierTransformer extends Object implements Serializable
实现了一维实数或复数数据集的快速傅立叶变换。参考文献:应用数值线性代数,ISBN 0898713897,第6章。

离散傅立叶变换有几种变体,具有各种规范化约定,由参数DftNormalization指定。

当前的离散傅立叶变换实现作为快速傅立叶变换需要数据集的长度为2的幂。这极大地简化和加快了代码。用户可以用零填充数据以满足此要求。有其他类型的FFT,参考 S. Winograd,On computing the discrete Fourier transform,Mathematics of Computation,32 (1978),175 - 199。

另请参阅:
  • 构造器详细资料

    • FastFourierTransformer

      public FastFourierTransformer(DftNormalization normalization)
      创建此类的新实例,具有各种规范化约定。
      参数:
      normalization - 要应用于变换数据的规范化类型
  • 方法详细资料

    • transformInPlace

      public static void transformInPlace(double[][] dataRI, DftNormalization normalization, TransformType type)
      计算指定复数数据的标准变换。在原地执行计算。输入数据布局如下
      • dataRI[0][i] 是第 i 个数据点的实部,
      • dataRI[1][i] 是第 i 个数据点的虚部。
      参数:
      dataRI - 数据的实部和虚部的二维数组
      normalization - 要应用于变换数据的规范化
      type - 要执行的变换类型(正向、反向)
      抛出:
      MathIllegalArgumentException - 如果指定数组的行数不是两,或数组不是矩形的
      MathIllegalArgumentException - 如果数据点的数量不是2的幂
    • transform

      public Complex[] transform(double[] f, TransformType type)
      返回指定实数数据集的(正向、反向)变换。
      参数:
      f - 要进行变换的实数数据数组
      type - 要执行的变换类型(正向、反向)
      返回:
      复数变换后的数组
      抛出:
      MathIllegalArgumentException - 如果数据数组的长度不是2的幂
    • transform

      public Complex[] transform(UnivariateFunction f, double min, double max, int n, TransformType type)
      返回指定实函数在指定区间上采样的(正向、反向)变换。
      参数:
      f - 要采样和变换的函数
      min - 区间的(包含)下界
      max - 区间的(不包含)上界
      n - 样本点的数量
      type - 要执行的变换类型(正向、反向)
      返回:
      复数变换后的数组
      抛出:
      MathIllegalArgumentException - 如果下界大于或等于上界
      MathIllegalArgumentException - 如果样本点数量 n 为负数
      MathIllegalArgumentException - 如果样本点数量 n 不是2的幂
    • transform

      public Complex[] transform(Complex[] f, TransformType type)
      返回指定复数数据集的(正向、反向)变换。
      参数:
      f - 要进行变换的复数数据数组
      type - 要执行的变换类型(正向、反向)
      返回:
      复数变换后的数组
      抛出:
      MathIllegalArgumentException - 如果数据数组的长度不是2的幂