using System; using System.Globalization; using System.Threading; using System.Text; using CenterSpace.NMath.Core; namespace CenterSpace.NMath.Examples.CSharp { /// <summary> /// A .NET example in C# showing how to use the basic Fast Fourier Transform (FFT) classes. /// </summary> class FFTExample { static void Main( string[] args ) { Console.WriteLine(); # region forward 1D real 1024 point FFT // // Simple example to compute a forward 1D real 1024 point FFT // // Create some random signal data. RandomNumberGenerator rand = new RandGenMTwist( 4230987 ); var data = new DoubleVector( 1024, rand ); // Compute the FFT // This will create a complex conjugate symmetric packed result. var fft1024 = new DoubleForward1DFFT( 1024 ); DoubleVector fftresult = fft1024.FFT( data ); // Ask the FFT instance for the correct reader, to unpacked the result. DoubleSymmetricSignalReader reader = fft1024.GetSignalReader( data ); // The reader provides random access to any element in the pack fft result. DoubleComplex thirdelement = reader[2]; Console.WriteLine(); Console.WriteLine( "1D real forward 1024 point FFT computed." ); Console.WriteLine( "-----------------------------------\n" ); #endregion #region backward 1D complex 1000 point FFT // // Simple example to compute a backward 1D complex 1000 point FFT // // Create some new random signal data. var cdata = new DoubleComplexVector( 1000, rand ); // Create the 1D backward complex FFT instance var fft1000 = new DoubleComplexBackward1DFFT( 1000 ); // Compute the FFT // Complex FFTs generated unpacked results. fft1000.FFTInPlace( cdata ); Console.WriteLine( "1D complex backward 1000 point FFT computed." ); Console.WriteLine( "-----------------------------------\n" ); #endregion Console.WriteLine(); Console.WriteLine( "Finished. Press Enter Key." ); Console.Read(); } } }← All NMath Code Examples