C# 如何从FFT傅里叶变换中得到正弦波的频率?

C# 如何从FFT傅里叶变换中得到正弦波的频率?,c#,fft,frequency,C#,Fft,Frequency,所以我有一个浮点数组,其中已经执行了FFT。 现在我有了一个充满值的数组,但是如何从中获得主频呢? 我尝试了在另一个页面()上找到的方法,但它与我的代码不兼容 其中FloatArray是存储FFT过程的所有值的地方,freq是存储每个值的freq的列表 List<float> freq=new List<float>(); for(int i=0;i<FloatArray.Length/2;i++) {

所以我有一个浮点数组,其中已经执行了FFT。 现在我有了一个充满值的数组,但是如何从中获得主频呢? 我尝试了在另一个页面()上找到的方法,但它与我的代码不兼容

其中FloatArray是存储FFT过程的所有值的地方,freq是存储每个值的freq的列表

         List<float> freq=new List<float>();

        for(int i=0;i<FloatArray.Length/2;i++)
        {
            float ja = (i * values.sampleRate) / FloatArray.Length;
            freq.Add(ja);
        }
List freq=new List();

对于(int i=0;i“它不适用于我的代码”-什么不起作用?FFT的输出应该是复值对-它们是如何存储的?或者您是否已经计算了复幅值?我得到的值是0到16383,然后是-16383到-10718。如何从中获得主频?您正在寻找FFT输出中的峰值幅值-计算ea的幅值ch bin,找到最大的bin震级,然后取这个峰值震级的索引并将其转换为一个频率。我找到了峰值震级,但它始终是数组中的第一个,对吗?