AForge.NET est une bibliothèque open-source avec un support de transformée de Fourier rapide.
ExocortexDSP est également une autre option.
ExocortexDSP exemple ressemblerait à quelque chose comme ceci:
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);
}
double: http://stackoverflow.com/questions/170394/fast-fourier-transform-in-c –
En fait, cette question ne couvre pas exactement le même motif, comme déterminer si une note musicale présente dans les données audio peut impliquer un post-traitement significatif des résultats FFT, ou même l'utilisation d'une méthode complètement différente d'estimation de hauteur de note (autocorrélation, ondelettes, etc.). Note pitch! = FFT fréquence de pointe bin – hotpaw2