BGC Tools
|
Support for Fourier Transforms. Borrows heavily from Mathnet.Numerics. More...
Static Public Member Functions | |
static void | Forward (Complex32[] samples) |
static void | Inverse (Complex32[] spectrum) |
static void | Forward (Complex64[] samples) |
static void | Inverse (Complex64[] spectrum) |
Static Private Member Functions | |
static void | Radix2ForwardParallel (Complex32[] data) |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version). More... | |
static void | Radix2InverseParallel (Complex32[] data) |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version). More... | |
static void | Radix2Forward (Complex32[] data) |
Radix-2 generic FFT for power-of-two sized sample vectors. More... | |
static void | Radix2Inverse (Complex32[] data) |
Radix-2 generic FFT for power-of-two sized sample vectors. More... | |
static void | Radix2Reorder (Complex32[] samples) |
Radix-2 Reorder Helper Method More... | |
static void | Radix2Step (Complex32[] samples, int exponentSign, int levelSize, int k) |
Radix-2 Step Helper Method More... | |
static void | BluesteinForward (Complex32[] samples) |
static void | BluesteinInverse (Complex32[] spectrum) |
Bluestein generic FFT for arbitrary sized sample vectors. More... | |
static Complex32 [] | BluesteinSequence32 (int n) |
Generate the bluestein sequence for the provided problem size. More... | |
static void | Radix2ForwardParallel (Complex64[] data) |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version). More... | |
static void | Radix2InverseParallel (Complex64[] data) |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version). More... | |
static void | Radix2Forward (Complex64[] data) |
Radix-2 generic FFT for power-of-two sized sample vectors. More... | |
static void | Radix2Inverse (Complex64[] data) |
Radix-2 generic FFT for power-of-two sized sample vectors. More... | |
static void | Radix2Reorder (Complex64[] samples) |
Radix-2 Reorder Helper Method More... | |
static void | Radix2Step (Complex64[] samples, int exponentSign, int levelSize, int k) |
Radix-2 Step Helper Method More... | |
static void | BluesteinForward (Complex64[] samples) |
static void | BluesteinInverse (Complex64[] spectrum) |
Bluestein generic FFT for arbitrary sized sample vectors. More... | |
static Complex64 [] | BluesteinSequence64 (int n) |
Generate the bluestein sequence for the provided problem size. More... | |
static void | Rescale (Complex32[] samples) |
Fully rescale the FFT result. More... | |
static void | Rescale (Complex64[] samples) |
Fully rescale the FFT result. More... | |
static void | SwapRealImaginary (Complex32[] samples) |
Swap the real and imaginary parts of each sample. More... | |
static void | SwapRealImaginary (Complex64[] samples) |
Swap the real and imaginary parts of each sample. More... | |
Private Attributes | |
const int | BluesteinSequenceLengthThreshold = 46341 |
Sequences with length greater than Math.Sqrt(Int32.MaxValue) + 1 will cause k*k in the Bluestein sequence to overflow (GH-286). More... | |
Support for Fourier Transforms. Borrows heavily from Mathnet.Numerics.
Definition at line 41 of file Fourier.cs.
|
inlinestaticprivate |
Definition at line 250 of file Fourier.cs.
References BGC.Mathematics.Complex32.Conjugate().
|
inlinestaticprivate |
Definition at line 470 of file Fourier.cs.
References BGC.Mathematics.Complex64.Conjugate().
|
inlinestaticprivate |
Bluestein generic FFT for arbitrary sized sample vectors.
Definition at line 304 of file Fourier.cs.
|
inlinestaticprivate |
Bluestein generic FFT for arbitrary sized sample vectors.
Definition at line 524 of file Fourier.cs.
|
inlinestaticprivate |
Generate the bluestein sequence for the provided problem size.
n | Number of samples. |
Definition at line 322 of file Fourier.cs.
|
inlinestaticprivate |
Generate the bluestein sequence for the provided problem size.
n | Number of samples. |
Definition at line 536 of file Fourier.cs.
|
inlinestatic |
Definition at line 43 of file Fourier.cs.
Referenced by BGC.Audio.Filters.CarlileShuffler._Initialize(), BGC.Audio.Filters.ConvolutionFilter._Initialize(), BGC.Audio.Filters.MultiConvolutionFilter._Initialize(), BGC.Audio.Visualization.Spectrogram.Decompose(), BGC.Audio.Filters.PhaseVocoder.Read(), BGC.Audio.Filters.ConvolutionFilter.Read(), BGC.Audio.Filters.FramedPhaseReencoder.Read(), BGC.Audio.Filters.MultiConvolutionFilter.Read(), BGC.Tests.TestOverlapAdd.TestNewFFTs(), and BGC.Audio.Filters.SinglePassPhaseReencoder.TimeShift().
|
inlinestatic |
Definition at line 86 of file Fourier.cs.
|
inlinestatic |
Definition at line 64 of file Fourier.cs.
Referenced by BGC.Audio.Filters.CarlileShuffler._Initialize(), BGC.Audio.Synthesis.NoiseAudioClip._Initialize(), BGC.Audio.Synthesis.STMAudioClip._Initialize(), BGC.Audio.AnalyticStreams.AnalyticNoiseStream.Initialize(), BGC.Audio.Synthesis.FrequencyDomainToneComposer.Read(), BGC.Audio.Filters.PhaseVocoder.Read(), BGC.Audio.Filters.ConvolutionFilter.Read(), BGC.Audio.Filters.FramedPhaseReencoder.Read(), BGC.Audio.Filters.MultiConvolutionFilter.Read(), BGC.Tests.TestOverlapAdd.TestNewFFTs(), and BGC.Audio.Filters.SinglePassPhaseReencoder.TimeShift().
|
inlinestatic |
Definition at line 107 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sized sample vectors.
Definition at line 172 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sized sample vectors.
Definition at line 393 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version).
Definition at line 132 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version).
Definition at line 353 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sized sample vectors.
Definition at line 187 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sized sample vectors.
Definition at line 408 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version).
Definition at line 152 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 generic FFT for power-of-two sample vectors (Parallel Version).
Definition at line 373 of file Fourier.cs.
|
inlinestaticprivate |
|
inlinestaticprivate |
|
inlinestaticprivate |
Radix-2 Step Helper Method
samples | Sample vector. |
exponentSign | Fourier series exponent sign. |
levelSize | Level Group Size. |
k | Index inside of the level. |
Definition at line 233 of file Fourier.cs.
|
inlinestaticprivate |
Radix-2 Step Helper Method
samples | Sample vector. |
exponentSign | Fourier series exponent sign. |
levelSize | Level Group Size. |
k | Index inside of the level. |
Definition at line 454 of file Fourier.cs.
|
inlinestaticprivate |
Fully rescale the FFT result.
Definition at line 566 of file Fourier.cs.
|
inlinestaticprivate |
Fully rescale the FFT result.
Definition at line 578 of file Fourier.cs.
|
inlinestaticprivate |
Swap the real and imaginary parts of each sample.
samples | Sample Vector. |
Definition at line 591 of file Fourier.cs.
|
inlinestaticprivate |
Swap the real and imaginary parts of each sample.
samples | Sample Vector. |
Definition at line 603 of file Fourier.cs.
|
private |
Sequences with length greater than Math.Sqrt(Int32.MaxValue) + 1 will cause k*k in the Bluestein sequence to overflow (GH-286).
Definition at line 315 of file Fourier.cs.