Repository navigation
Module_SignalProcessing_Transforms
Vorcyc.Mathematics.SignalProcessing.Transforms 命名空间包含多种变换操作类,包括 Dct1、Dct2、Dct3、Dct4、FastDct2、FastDct3、FastDct4、FastMdct 和 Mdct。这些类提供了离散余弦变换(DCT)和修正离散余弦变换(MDCT)的实现,支持不同类型的 DCT 变换(I、II、III、IV)以及基于 FFT 的快速实现。每个类都提供了直接变换、归一化变换、逆变换和归一化逆变换的方法,适用于各种信号处理需求。
以下类型均位于命名空间 :Vorcyc.Mathematics.SignalProcessing.Transforms
📒目录
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct1 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct2 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct3 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct4 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct2 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct3 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct4 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastMdct 类
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Mdct 类
以下类型均位于 Vorcyc.Mathematics.SignalProcessing.Transforms 命名空间。
Vorcyc.Mathematics.SignalProcessing.Transforms.Dct1 表示离散余弦变换的类型-I (DCT-I)。
-
public int Size { get; }- 获取 DCT-I 的大小。
-
public Dct1(int dctSize)- 构造给定
dctSize的Dct1并预计算 DCT 矩阵。 - 参数:
-
dctSize: DCT-I 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-I。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-I。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-I。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-I。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 Dct1 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct1Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 Dct1 实例
var dct = new Dct1(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-I
dct.Direct(input, output);
Console.WriteLine("DCT-I Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-I
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-I Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-I
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-I Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-I
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-I Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.Dct2 表示离散余弦变换的类型-II (DCT-II)。
-
public int Size { get; }- 获取 DCT-II 的大小。
-
public Dct2(int dctSize)- 构造给定
dctSize的Dct2并预计算 DCT 矩阵。 - 参数:
-
dctSize: DCT-II 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 Dct2 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct2Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 Dct2 实例
var dct = new Dct2(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-II
dct.Direct(input, output);
Console.WriteLine("DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-II
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-II
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-II
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.Dct3 表示离散余弦变换的类型-III (DCT-III)。
-
public int Size { get; }- 获取 DCT-III 的大小。
-
public Dct3(int dctSize)- 构造给定
dctSize的Dct3并预计算 DCT 矩阵。 - 参数:
-
dctSize: DCT-III 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 Dct3 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct3Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 Dct3 实例
var dct = new Dct3(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-III
dct.Direct(input, output);
Console.WriteLine("DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-III
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-III
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-III
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.Dct4 表示离散余弦变换的类型-IV (DCT-IV)。
-
public int Size { get; }- 获取 DCT-IV 的大小。
-
public Dct4(int dctSize)- 构造给定
dctSize的Dct4并预计算 DCT 矩阵。 - 参数:
-
dctSize: DCT-IV 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 Dct4 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct4Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 Dct4 实例
var dct = new Dct4(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-IV
dct.Direct(input, output);
Console.WriteLine("DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-IV
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-IV
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-IV
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct2 表示离散余弦变换的类型-II (DCT-II)。这种基于 FFT 的 DCT-II 实现对于较大的 DCT 尺寸更快。
-
public int Size { get; }- 获取 DCT-II 的大小。
-
public FastDct2(int dctSize)- 构造给定
dctSize的FastDct2。 - 参数:
-
dctSize: DCT-II 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-II。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 FastDct2 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct2Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 FastDct2 实例
var dct = new FastDct2(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-II
dct.Direct(input, output);
Console.WriteLine("DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-II
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-II
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-II
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct3 表示离散余弦变换的类型-III (DCT-III)。这种基于 FFT 的 DCT-III 实现对于较大的 DCT 尺寸更快。
-
public int Size { get; }- 获取 DCT-III 的大小。
-
public FastDct3(int dctSize)- 构造给定
dctSize的FastDct3。 - 参数:
-
dctSize: DCT-III 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-III。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 FastDct3 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct3Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 FastDct3 实例
var dct = new FastDct3(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-III
dct.Direct(input, output);
Console.WriteLine("DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-III
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-III
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-III
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct4 表示离散余弦变换的类型-IV (DCT-IV)。这种基于 FFT 的 DCT-IV 实现对于较大的 DCT 尺寸更快。
-
public int Size { get; }- 获取 DCT-IV 的大小。
-
public FastDct4(int dctSize)- 构造给定
dctSize的FastDct4。 - 参数:
-
dctSize: DCT-IV 的大小。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void Inverse(float[] input, float[] output)- 执行逆 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 DCT-IV。
- 参数:
-
input: 输入数据。 -
output: 输出数据。
-
以下是一个使用 FastDct4 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct4Example
{
public static void Main()
{
// 定义 DCT 大小
int dctSize = 8;
// 创建 FastDct4 实例
var dct = new FastDct4(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 DCT-IV
dct.Direct(input, output);
Console.WriteLine("DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 DCT-IV
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 DCT-IV
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 DCT-IV
dct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.FastMdct 表示修正离散余弦变换 (MDCT)。这种基于 FFT 的 MDCT 实现对于较大的 DCT 尺寸更快。
-
public FastMdct(int dctSize)- 构造给定
dctSize的FastMdct。 - 参数:
-
dctSize: MDCT 的大小。
-
- 构造给定
以下是一个使用 FastMdct 类的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastMdctExample
{
public static void Main()
{
// 定义 MDCT 大小
int dctSize = 8;
// 创建 FastMdct 实例
var mdct = new FastMdct(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// 执行 MDCT
mdct.Direct(input, output);
Console.WriteLine("MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 MDCT
mdct.Inverse(output, input);
Console.WriteLine("Inverse MDCT Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.Mdct 表示修正离散余弦变换 (MDCT)。
-
public int Size { get; }- 获取 MDCT 的大小。
-
public Mdct(int dctSize, IDct dct = null)- 构造给定
dctSize的Mdct。 - 参数:
-
dctSize: MDCT 的大小。 -
dct: 内部 DCT 变换器(默认使用Dct4)。
-
- 构造给定
-
public void Direct(float[] input, float[] output)- 执行 MDCT。
input的长度必须等于 2 *Mdct.Size,output的长度必须等于Mdct.Size。 - 参数:
-
input: 输入数据。 -
output: 输出数据。
-
- 执行 MDCT。
-
public void DirectNorm(float[] input, float[] output)- 执行归一化的 MDCT。
input的长度必须等于 2 *Mdct.Size,output的长度必须等于Mdct.Size。 - 参数:
-
input: 输入数据。 -
output: 输出数据。
-
- 执行归一化的 MDCT。
-
public void Inverse(float[] input, float[] output)- 执行逆 MDCT。
input的长度必须等于Mdct.Size,output的长度必须等于 2 *Mdct.Size。 - 参数:
-
input: 输入数据。 -
output: 输出数据。
-
- 执行逆 MDCT。
-
public void InverseNorm(float[] input, float[] output)- 执行归一化的逆 MDCT。
input的长度必须等于Mdct.Size,output的长度必须等于 2 *Mdct.Size。 - 参数:
-
input: 输入数据。 -
output: 输出数据。
-
- 执行归一化的逆 MDCT。
以下是一个使用 Mdct 类中多个方法的示例,并在示例中加入了注释:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class MdctExample
{
public static void Main()
{
// 定义 MDCT 大小
int dctSize = 8;
// 创建 Mdct 实例
var mdct = new Mdct(dctSize);
// 定义输入数据
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f };
float[] output = new float[dctSize];
// 执行 MDCT
mdct.Direct(input, output);
Console.WriteLine("MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行归一化的 MDCT
mdct.DirectNorm(input, output);
Console.WriteLine("Normalized MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// 执行逆 MDCT
mdct.Inverse(output, input);
Console.WriteLine("Inverse MDCT Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// 执行归一化的逆 MDCT
mdct.InverseNorm(output, input);
Console.WriteLine("Normalized Inverse MDCT Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}-
- 🔖 ArrayExtension class
- 🔖 BaseConverter class
- 🔖 BitMathExtension class
- 🔖 Combinatorics class
- 🔖 ConstantsFp32 class
- 🔖 NumberMapper class
- 🔖 PinnableArray<T> class
- 🔖 SimpleRNG_Fp32 and SimpleRNG_Fp64 classes
- 🔖 TrigonometryHelper class
- 🔖 VMath class
- 🔖 Pinned buffers (Buffers)
- 🔖 IPinnedBuffer<T> interface
- 🔖 POHBuffer<T> class
- 🔖 NativeBuffer<T> class
-
- 🔖 0.9 classifier walkthrough
- 🔖 KNN<T> class
- 🔖 MultipleLinearRegression<T> class
- 🔖 SimpleLinearRegression<T> class
- 🔖 SupportVectorMachine<TSelf> class
- 🔖 DBSCAN<T> class
- 🔖 ExpectationMaximization<T> class
- 🔖 GMM<T> class
- 🔖 HierarchicalClustering<T> class
- 🔖 KMeansClusterer<T> class
- 🔖 VectorQuantization<T> class
- 🔖 FactorAnalysis<T> class
- 🔖 PCA<TSelf> class
- 🔖 TSNE<T> class
- 🔖 Distance metric classes
-
📒 Examples
-
📒 GPU 策略说明
- 🔖 为何放弃主包 GPU
- 🔖 当前性能路径
- 🔖 若仍需要更强算力
-
📒 计算上下文模块
-
📒 核心模块
-
📒 深度学习模块
-
📒 线性代数模块
-
📒 机器学习模块
- 🔖 0.9 分类器完整示例
- 🔖 KNN<T> 类
- 🔖 MultipleLinearRegression<T> 类
- 🔖 SimpleLinearRegression<T> 类
- 🔖 SupportVectorMachine<TSelf> 类
- 🔖 DBSCAN<T> 类
- 🔖 ExpectationMaximization<T> 类
- 🔖 GMM<T> 类
- 🔖 HierarchicalClustering<T> 类
- 🔖 KMeansClusterer<T> 类
- 🔖 VectorQuantization<T> 类
- 🔖 FactorAnalysis<T> 类
- 🔖 PCA<TSelf> 类
- 🔖 TSNE<T> 类
- 🔖 距离度量类
-
📒 信号处理模块
-
📒 数值模块
-
📒 统计模块
- 🔖 基础统计函数
- 🔖 高级统计函数
- 🔖 稳健统计 / RunningMoments
- 🔖 其它统计函数
- 🔖 分布相关函数
- 🔖 时间序列分析
- 🔖 IComparable 扩展
- 🔖 ExtremeValueFinder
- 🔖 INumber 扩展
-
📒 FFTW 扩展
-
📒 示例