Repository navigation
Module_SignalProcessing_Transforms
Location: Home / Signal processing / Transforms
The Vorcyc.Mathematics.SignalProcessing.Transforms namespace contains Dct1, Dct2, Dct3, Dct4, FastDct2, FastDct3, FastDct4, FastMdct, and Mdct for discrete cosine transform (DCT) types I–IV and modified DCT (MDCT), including FFT-based fast implementations. Each class provides direct, normalized, inverse, and normalized inverse transforms.
0.10.1: The real-input FFT types
RealFft/RealFft64and the short-time Fourier transformStfthave moved from this namespace toVorcyc.Mathematics.SignalProcessing.Fourier; see Fourier transforms. This page documents the DCT / MDCT family and mode decomposition.
0.10.7: Mode decomposition lives under
Vorcyc.Mathematics.SignalProcessing.Transforms.ModeDecomposition(see Mode decomposition below).
0.10.8: Z / Laplace / bilinear helpers — see Z and Laplace.
0.10.18: Mode decomposition keeps sample buffers in
TviaFft<T>/HilbertTransform<T>/NaturalCubicSpline<T>(EEMD / CEEMDAN still average indouble). The non-genericHilbertTransform(float) remains.
All types below are in namespace:Vorcyc.Mathematics.SignalProcessing.Transforms
📒 Contents
- 🔖 Mode decomposition
- 🔖 Z and Laplace
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct1 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct2 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct3 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Dct4 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct2 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct3 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastDct4 class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.FastMdct class
- 🔖 Vorcyc.Mathematics.SignalProcessing.Transforms.Mdct class
All types below are in Vorcyc.Mathematics.SignalProcessing.Transforms namespace。
Namespace: Vorcyc.Mathematics.SignalProcessing.Transforms.ModeDecomposition
Adaptive / variational / spectral mode separation for real signals (float / double). Prefer the facade ModeDecomposer from apps. Every algorithm accepts optional options, CancellationToken, and IProgress<ModeDecompositionProgress>. CPU policy is set via options’ ComputingContext? (or ambient ComputingScope). From 0.10.18 VMD / MVMD / EWT / HHT / SSA / EMD / MEMD stay in T (FFT, Hilbert analytic signal, and envelope spline); they no longer promote the whole buffer to double just to call Fft64. Details: ComputingContext.
| Type | Role |
|---|---|
EmpiricalModeDecomposition |
Classical EMD (sifting → IMFs + residual) |
EnsembleEmpiricalModeDecomposition |
EEMD — noise ensemble average of EMD |
CompleteEnsembleEmd |
CEEMDAN (Torres 2011): noise-mode–assisted stage-wise IMFs, exact reconstruction |
VariationalModeDecomposition |
VMD — band-limited modes in the frequency domain |
MultivariateEmpiricalModeDecomposition |
MEMD — multi-channel EMD |
MultivariateVariationalModeDecomposition |
MVMD — multi-channel VMD |
SingularSpectrumAnalysis |
SSA — trajectory matrix + SVD + grouping |
EmpiricalWaveletTransform |
EWT — adaptive wavelet filter bank |
HilbertHuangTransform |
Instantaneous amplitude / frequency via HilbertTransform<T> + optional sparse Hilbert spectrum |
ModeDecomposer |
Static facade: Emd / Eemd / Ceemdan / Vmd / Hht / Instantaneous / Memd / Mvmd / Ssa / Ewt
|
-
HilbertHuangTransform.Analyzealways runs EMD first (there is noRunEmdswitch). - For existing modes (e.g. after VMD), use
AnalyzeModesorModeDecomposer.Instantaneous. -
HhtOptions.AnalyzeResidualis honored by bothAnalyzeandAnalyzeModes.
using Vorcyc.Mathematics;
using Vorcyc.Mathematics.SignalProcessing.Transforms.ModeDecomposition;
using (ComputingScope.Enter(ComputingContext.Parallel))
{
var emd = ModeDecomposer.Emd(signal.AsSpan());
var ceemdan = ModeDecomposer.Ceemdan(signal.AsSpan(), new CeemdanOptions { EnsembleSize = 50 });
var hht = ModeDecomposer.Hht(signal.AsSpan(), samplingRate: 1000f);
}Namespace: Vorcyc.Mathematics.SignalProcessing.Transforms
| Type | Role |
|---|---|
ZTransform |
Finite-length DTFT (Dtft), rational H(z) evaluate / FR, discrete stability (IsStable, MaxPoleRadius) |
LaplaceTransform |
Rational H(s) (ascending powers of s), H(jω), analog stability, bilinear + inverse bilinear maps |
AnalogDigitalTransform |
Analog poles/zeros → discrete TransferFunction (Bilinear / BilinearLowpass); InverseBilinear
|
Dtft / Transform / multi-ω EvaluateFrequencyResponse / LaplaceTransform.FrequencyResponse honor ComputingContext?: parallel via ForEach when the shared work gate fires; otherwise explicit Simd (or Auto→Simd) uses frequency-lane SIMD, Normal uses scalar. Explicit modes bypass Auto’s 1K/16K ladders. Single-point evaluate / stability / bilinear maps stay serial (filter order). Details: ComputingContext.
Discrete TF coefficients match TransferFunction: b0 + b1·z⁻¹ + …. Analog polys use ascending s: b0 + b1·s + …. Pre-warp cutoff is normalized frequency in (0, 0.5) (same as DesignFilter.IirLpTf).
using Vorcyc.Mathematics.SignalProcessing.Filters.Butterworth;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
var X = ZTransform.Dtft(signal, numPoints: 1024);
var tf = AnalogDigitalTransform.BilinearLowpass(0.1f, PrototypeButterworth.Poles(4));
bool ok = ZTransform.IsStable(tf.Poles);Prefer
TransferFunction.Poles/Zerosfor pole-zero extraction.ZTransform.GetPolesAndZeroswas removed (inferring poles/zeros from DTFT samples is incorrect).
Vorcyc.Mathematics.SignalProcessing.Transforms.Dct1 represents discrete cosine transform type I (DCT-I).
-
public int Size { get; }- Gets DCT-I size.
-
public Dct1(int dctSize)- Constructs Dct1 for given
dctSizeand precomputes DCT matrix. - Parameters:
-
dctSize: DCT-I size.
-
- Constructs Dct1 for given
-
public void Direct(float[] input, float[] output)- Performs DCT-I.
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Performs normalized DCT-I.
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Performs inverse DCT-I.
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Performs normalized inverse DCT-I.
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses Dct1 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct1Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create Dct1 instance
var dct = new Dct1(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-I
dct.Direct(input, output);
Console.WriteLine("DCT-I Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-I
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-I Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-I
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-I Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-II.
-
public int Size { get; }- Gets DCT-II size.
-
public Dct2(int dctSize)- Constructs Dct2 for given
dctSizeand precomputes DCT matrix. - Parameters:
-
dctSize: DCT-II size.
-
- Constructs Dct2 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses Dct2 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct2Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create Dct2 instance
var dct = new Dct2(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-II
dct.Direct(input, output);
Console.WriteLine("DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-II
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-II
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-III.
-
public int Size { get; }- Gets DCT-III size.
-
public Dct3(int dctSize)- Constructs Dct3 for given
dctSizeand precomputes DCT matrix. - Parameters:
-
dctSize: DCT-III size.
-
- Constructs Dct3 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses Dct3 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct3Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create Dct3 instance
var dct = new Dct3(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-III
dct.Direct(input, output);
Console.WriteLine("DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-III
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-III
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-IV.
-
public int Size { get; }- Gets DCT-IV size.
-
public Dct4(int dctSize)- Constructs Dct4 for given
dctSizeand precomputes DCT matrix. - Parameters:
-
dctSize: DCT-IV size.
-
- Constructs Dct4 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses Dct4 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class Dct4Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create Dct4 instance
var dct = new Dct4(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-IV
dct.Direct(input, output);
Console.WriteLine("DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-IV
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-IV
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-II.FFT-based DCT-II; faster for large DCT sizes.
-
public int Size { get; }- Gets DCT-II size.
-
public FastDct2(int dctSize)- Constructs FastDct2 for given
dctSize. - Parameters:
-
dctSize: DCT-II size.
-
- Constructs FastDct2 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-II。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses FastDct2 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct2Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create FastDct2 instance
var dct = new FastDct2(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-II
dct.Direct(input, output);
Console.WriteLine("DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-II
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-II Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-II
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-II Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-III.FFT-based DCT-III; faster for large sizes.
-
public int Size { get; }- Gets DCT-III size.
-
public FastDct3(int dctSize)- Constructs FastDct3 for given
dctSize. - Parameters:
-
dctSize: DCT-III size.
-
- Constructs FastDct3 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-III。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses FastDct3 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct3Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create FastDct3 instance
var dct = new FastDct3(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-III
dct.Direct(input, output);
Console.WriteLine("DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-III
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-III Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-III
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-III Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents DCT-IV.FFT-based DCT-IV; faster for large sizes.
-
public int Size { get; }- Gets DCT-IV size.
-
public FastDct4(int dctSize)- Constructs FastDct4 for given
dctSize. - Parameters:
-
dctSize: DCT-IV size.
-
- Constructs FastDct4 for given
-
public void Direct(float[] input, float[] output)- Perform DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void DirectNorm(float[] input, float[] output)- Perform normalized DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Perform inverse DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void InverseNorm(float[] input, float[] output)- Perform normalized inverse DCT-IV。
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses FastDct4 with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastDct4Example
{
public static void Main()
{
// Define DCT size
int dctSize = 8;
// Create FastDct4 instance
var dct = new FastDct4(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform DCT-IV
dct.Direct(input, output);
Console.WriteLine("DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized DCT-IV
dct.DirectNorm(input, output);
Console.WriteLine("Normalized DCT-IV Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse DCT-IV
dct.Inverse(output, input);
Console.WriteLine("Inverse DCT-IV Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 represents modified discrete cosine transform (MDCT).FFT-based MDCT; faster for large sizes.
-
public FastMdct(int dctSize)- Constructs FastMdct for given
dctSize. - Parameters:
-
dctSize: MDCT size.
-
- Constructs FastMdct for given
The following example uses FastMdct with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class FastMdctExample
{
public static void Main()
{
// Define MDCT size
int dctSize = 8;
// Create FastMdct instance
var mdct = new FastMdct(dctSize);
// Define input data
float[] input = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f };
float[] output = new float[dctSize];
// Perform MDCT
mdct.Direct(input, output);
Console.WriteLine("MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse MDCT
mdct.Inverse(output, input);
Console.WriteLine("Inverse MDCT Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
}
}Vorcyc.Mathematics.SignalProcessing.Transforms.Mdct represents modified discrete cosine transform (MDCT).
-
public int Size { get; }- Gets MDCT size.
-
public Mdct(int dctSize, IDct dct = null)- Constructs Mdct for given
dctSize. - Parameters:
-
dctSize: MDCT size. -
dct: Internal DCT transformer (defaultDct4).
-
- Constructs Mdct for given
-
public void Direct(float[] input, float[] output)- Performs MDCT.
inputlength must be 2 *Mdct.Size;outputlength must beMdct.Size. - Parameters:
-
input: Input data. -
output: Output data.
-
- Performs MDCT.
-
public void DirectNorm(float[] input, float[] output)- Performs normalized MDCT. Same length constraints.
- Parameters:
-
input: Input data. -
output: Output data.
-
-
public void Inverse(float[] input, float[] output)- Performs inverse MDCT.
inputlength must beMdct.Size;outputlength must be 2 *Mdct.Size. - Parameters:
-
input: Input data. -
output: Output data.
-
- Performs inverse MDCT.
-
public void InverseNorm(float[] input, float[] output)- Performs normalized inverse MDCT. Same length constraints.
- Parameters:
-
input: Input data. -
output: Output data.
-
The following example uses Mdct with comments:
using System;
using Vorcyc.Mathematics.SignalProcessing.Transforms;
public class MdctExample
{
public static void Main()
{
// Define MDCT size
int dctSize = 8;
// Create Mdct instance
var mdct = new Mdct(dctSize);
// Define input data
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];
// Perform MDCT
mdct.Direct(input, output);
Console.WriteLine("MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform normalized MDCT
mdct.DirectNorm(input, output);
Console.WriteLine("Normalized MDCT Output:");
foreach (var value in output)
{
Console.WriteLine(value);
}
// Perform inverse MDCT
mdct.Inverse(output, input);
Console.WriteLine("Inverse MDCT Output:");
foreach (var value in input)
{
Console.WriteLine(value);
}
// Perform normalized inverse 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 扩展
-
📒 示例