- public double[] Calcul_TFD(double[] donnees)
- {
- // calcul de Omega qui ne bouge pas selon les termes
- omega_tfd= (2*Math.PI)/donnees.Length;
- an = new double[donnees.Length]; // tableau de la partie Réelle
- bn = new double[donnees.Length]; // tableau de la partie Imaginaire
- en = new double[donnees.Length]; // tableau résultat de la TFD
-
- // Calcul du Fondamental (premier terme, seulement en a0, une bête somme
- for(int t = 0 ; t < donnees.Length; t++) {
- an[0] += donnees[t];
- }
-
- en[0] = an[0]/1024; // Résultat du Fondamental
- bn[0] = 0; // premier terme de la suite B(n)
-
- // Calcul de la TFD... plutôt court comme algo ! ici, n est le niveau de la TFD
- for(int n = 1 ; n < donnees.Length ; n++)
- {
- an[n] = bn[n] = 0; // initialisation des termes à 0
-
- // on fait les sommes qui suivent sur les 1024 termes du tableau
- for(int t = 0 ; t < donnees.Length ; t++)
- {
- an[n] += donnees[t]*Math.Cos(n*omega_tfd*t); // Partie Réelle
- bn[n] += donnees[t]*Math.Sin(n*omega_tfd*t); // Partie Imaginaire
- }
-
- // et finalement, le calcul de l'amplitude en = an² + bn²
- en[n] = Math.Pow(an[n], 2) + Math.Pow(bn[n], 2); }
-
- return en; // on renvoie le tableau, et c'est dans la poche !
- }
public double[] Calcul_TFD(double[] donnees)
{
// calcul de Omega qui ne bouge pas selon les termes
omega_tfd= (2*Math.PI)/donnees.Length;
an = new double[donnees.Length]; // tableau de la partie Réelle
bn = new double[donnees.Length]; // tableau de la partie Imaginaire
en = new double[donnees.Length]; // tableau résultat de la TFD
// Calcul du Fondamental (premier terme, seulement en a0, une bête somme
for(int t = 0 ; t < donnees.Length; t++) {
an[0] += donnees[t];
}
en[0] = an[0]/1024; // Résultat du Fondamental
bn[0] = 0; // premier terme de la suite B(n)
// Calcul de la TFD... plutôt court comme algo ! ici, n est le niveau de la TFD
for(int n = 1 ; n < donnees.Length ; n++)
{
an[n] = bn[n] = 0; // initialisation des termes à 0
// on fait les sommes qui suivent sur les 1024 termes du tableau
for(int t = 0 ; t < donnees.Length ; t++)
{
an[n] += donnees[t]*Math.Cos(n*omega_tfd*t); // Partie Réelle
bn[n] += donnees[t]*Math.Sin(n*omega_tfd*t); // Partie Imaginaire
}
// et finalement, le calcul de l'amplitude en = an² + bn²
en[n] = Math.Pow(an[n], 2) + Math.Pow(bn[n], 2); }
return en; // on renvoie le tableau, et c'est dans la poche !
}