FFT与Math.NET 4.0 - Complex32 []与复杂[]

问题描述:

我有一个问题,从我的数据集使用Math.NET .NET4.0计算FFT。FFT与Math.NET 4.0 - Complex32 []与复杂[]

我所使用的.NET 3.5 Math.NET像这样没有任何错误:

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); 
    } 

现在我想用.NET 4.0和复杂的[]不再知道 - 只有Complex32。 当我现在变更配合物[]至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); 
    } 

发生该错误消息:

错误7关于“MathNet.Numerics.IntegralTransforms.Fourier.BluesteinForward最好重载方法匹配(System.Numerics.Complex [],MathNet.Numerics.IntegralTransforms.FourierOptions)”有一些无效参数

有没有人有一个想法,如何解决在.NET 4.0这个问题?

+1

添加对System.Numerics的引用 –

+0

程序集引用丢失。非常感谢 – MomooomoM

Hans Passant的评论是正确的 - 只需添加对System.Numerics的引用即可。从技术上讲,这是在NuGet包中声明的,一旦包被重新安装(在更改项目的目标框架时这是必需的),应自动添加到项目中。

.Net 3.5中没有System.Numerics,这就是为什么Math.NET Numerics在那里带来自己的实现,但对于.Net 4.0和更新版本,它使用System.Numerics的内置类型来兼容与生态系统。