类 FastCosineTransformer
java.lang.Object
org.hipparchus.transform.FastCosineTransformer
- 所有已实现的接口:
-
Serializable
,RealTransformer
实现了用于一维实数数据集变换的快速余弦变换。有关参考,请参阅James S. Walker的快速傅立叶变换第3章(ISBN 0849371635)。
离散余弦变换有几种变体。当前实现对应于DCT-I,具有各种规范化约定,这些约定由参数DctNormalization
指定。
DCT-I等效于数据系列的偶数扩展的DFT。更准确地说,如果x0,…,xN-1是要进行余弦变换的数据集,则扩展的数据集x0#,…,x2N-3#定义如下
- xk# = xk,如果0 ≤ k < N,
- xk# = x2N-2-k,如果N ≤ k < 2N - 2。
然后,实数数据集x0,…,xN-1的标准DCT-I等于扩展数据集x0#,…,x2N-3#的DFT的前N个元素的一半
yn = (1 / 2) ∑k=02N-3 xk# exp[-2πi nk / (2N - 2)] k = 0, …, N-1。
将离散余弦变换实现为快速余弦变换需要数据集的长度为2的幂加一(N = 2n + 1)。此外,它隐含地假定采样函数是偶数的。
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明protected double[]
fct
(double[] f) 执行FCT算法(包括反向)。double[]
transform
(double[] f, TransformType type) 返回指定实数数据集的(正向、反向)变换。double[]
transform
(UnivariateFunction f, double min, double max, int n, TransformType type) 返回指定间隔上采样的指定实函数的(正向、反向)变换。
-
构造器详细资料
-
FastCosineTransformer
创建此类的新实例,具有各种规范化约定。- 参数:
-
normalization
- 要应用于变换数据的规范化类型
-
-
方法详细资料
-
transform
返回指定实数数据集的(正向、反向)变换。- 指定者:
-
transform
在接口中RealTransformer
- 参数:
-
f
- 要转换(信号)的实数数据数组 -
type
- 要执行的变换类型(正向、反向) - 返回:
- 实数变换后的数组(频谱)
- 抛出:
-
MathIllegalArgumentException
- 如果数据数组的长度不是2的幂加一
-
transform
public double[] transform(UnivariateFunction f, double min, double max, int n, TransformType type) throws MathIllegalArgumentException 返回指定间隔上采样的指定实函数的(正向、反向)变换。- 指定者:
-
transform
在接口中RealTransformer
- 参数:
-
f
- 要采样和变换的函数 -
min
- 区间的(包含)下界 -
max
- 区间的(不包含)上界 -
n
- 采样点数 -
type
- 要执行的变换类型(正向、反向) - 返回:
- 实数变换后的数组
- 抛出:
-
MathIllegalArgumentException
- 如果下界大于或等于上界 -
MathIllegalArgumentException
- 如果采样点数为负 -
MathIllegalArgumentException
- 如果采样点数不是2的幂加一
-
fct
执行FCT算法(包括反向)。- 参数:
-
f
- 要变换的实数数据数组 - 返回:
- 实数变换后的数组
- 抛出:
-
MathIllegalArgumentException
- 如果数据数组的长度不是2的幂加一
-