32 lines
858 B
C#
32 lines
858 B
C#
using MathNet.Numerics;
|
|
using MathNet.Numerics.IntegralTransforms;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace KLHZ.Trader.Core.Tests
|
|
{
|
|
public class FFTTests
|
|
{
|
|
[Test]
|
|
public static void Test()
|
|
{
|
|
var da = new List<float>();
|
|
for (int i = 0; i < 100; i++)
|
|
{
|
|
da.Add((float)System.Math.Sin(0.5 * i) + (float)(RandomNumberGenerator.GetInt32(0, 100)) / 300);
|
|
}
|
|
|
|
var start = da.ToArray();
|
|
var arrv = da.Select(d => new Complex32(d, 0)).ToArray();
|
|
Fourier.Forward(arrv);
|
|
|
|
Fourier.Inverse(arrv);
|
|
var res = arrv.Select(a => a.Real).ToArray();
|
|
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
var d = res[i] - start[i];
|
|
}
|
|
}
|
|
}
|
|
}
|