C#中的快速傅里叶变换

时间:2010-10-06 14:44:48

标签: c# audio signal-processing fft

  

可能重复:
  Fast fourier transform in c#

我正在寻找在C#中执行线路输入或麦克风音频数据的实时FFT(快速傅里叶变换)的示例。我的目标是实时确定音频数据中是否存在特定音符。任何例子都赞赏。

1 个答案:

答案 0 :(得分:7)

AForge.NET是一个支持快速傅里叶变换的开源库 ExocortexDSP也是另一种选择。

ExocortexDSP示例如下所示:

   Exocortex.DSP.ComplexF[] complexData = new Exocortex.DSP.ComplexF[512];
   for (int i = 0; i < 512; ++i)
   {
      // Fill the complex data
      complexData[i].Re = 1; // Add your real part here
      complexData[i].Im = 2; // Add your imaginary part here
   }

   // FFT the time domain data to get frequency domain data
   Exocortex.DSP.Fourier.FFT(complexData, Exocortex.DSP.FourierDirection.Forward);

   float[] mag_dat_buffer = new float[complexData.Length];
   // Loop through FFT'ed data and do something with it
   for (int i = 0; i < complexData.Length; ++i)
   {
      // Calculate magnitude or do something with the new complex data
      mag_data_buffer[i] = ImaginaryNumberMagnitude(complexData[i].Im, complexData[i].Re);
   }
相关问题