# C# FFT Example

← All NMath Code Examples

```using System;
using System.Globalization;
using System.Text;

using CenterSpace.NMath.Core;

namespace CenterSpace.NMath.Core.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.

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 FFT's 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." );