J'ai un problème lors du calcul de la FFT de mon ensemble de données, en utilisant Math.NET avec .NET4.0.FFT avec Math.NET 4.0 - Complex32 [] et Complex []
I utilisé .NET 3.5 avec Math.NET comme celui-ci sans aucune erreur:
public Ergebnisse_FFT_Abs_PSD_MNF FFT_Abs_PSD_MNF(double[] data)
{
Complex[] samples = new Complex[data.Length];
double[] FFT_abs_1d = new double[data.Length/2];
int zaehler = 0;
foreach(double val in data)
{
samples[zaehler] = new Complex(val, 0);
Fenster[zaehler] = Math.Exp(-0.5 * Math.Pow(((zaehler - (samples.Length - 1)/2)/(sigma * (samples.Length - 1)/2)), 2)); // Gauß
samples[zaehler] = samples[zaehler].Real * Fenster[zaehler];
zaehler++;
}
MathNet.Numerics.IntegralTransforms.Fourier.BluesteinForward(samples, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
}
Maintenant, je veux utiliser .NET 4.0 et complexe [] n'est plus connu - que Complex32. Quand je change maintenant complexe [] pour Complex32 []:
public Ergebnisse_FFT_Abs_PSD_MNF FFT_Abs_PSD_MNF(double[] data)
{
Complex32[] samples = new Complex32[data.Length];
double[] FFT_abs_1d = new double[data.Length/2];
int zaehler = 0;
foreach(double val in data)
{
samples[zaehler] = new Complex32((float)val, 0);
Fenster[zaehler] = Math.Exp(-0.5 * Math.Pow(((zaehler - (samples.Length - 1)/2)/(sigma * (samples.Length - 1)/2)), 2)); // Gauß
samples[zaehler] = samples[zaehler].Real * (float)Fenster[zaehler];
zaehler++;
}
MathNet.Numerics.IntegralTransforms.Fourier.BluesteinForward(samples, MathNet.Numerics.IntegralTransforms.FourierOptions.Matlab);
}
ce message d'erreur se produit:
Erreur 7 Le match de la meilleure méthode surchargée pour « MathNet.Numerics.IntegralTransforms.Fourier.BluesteinForward (System.Numerics.Complex [], MathNet.Numerics.IntegralTransforms.FourierOptions) » a des arguments invalides
est-ce que quelqu'un a une idée, comment résoudre ce problème dans .NET 4.0?
Ajout d'une référence à System.Numerics –
La référence d'assembly manquait. Merci beaucoup – MomooomoM