Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmes et tests... » Série de Fourier (8 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Invité Ecrit le: Mardi 12 avril 2005 à 16:47 Déconnecté(e)    
 
[message de départ supprimé à la demande de l'utilisateur]
-Edité le Lundi 28 décembre 2015 à 18:18 par Kevin Kofler-
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 12 avril 2005 à 19:06 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


La TI-89 ne fait pas les séries de Fourier d'office, il faut bel et bien un programme.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°2   Marquer comme non lu.
Jfg Ecrit le: Mardi 12 avril 2005 à 20:29 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Ha bon ?
Mille excuses dans ce cas :s
Kill Mario
    
./Post n°3   Marquer comme non lu.
Onur Ecrit le: Mercredi 13 avril 2005 à 16:16 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


ca doit pas etre tres chaud à faire une fonction. Par contre, le calcul de chaque coefficient doit prendre un temps pas trop raisonnable je pense..
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°4   Marquer comme non lu.
Folco Ecrit le: Mercredi 13 avril 2005 à 18:02 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


A faire en asm ou C alors ;)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°5   Marquer comme non lu.
Onur Ecrit le: Mercredi 13 avril 2005 à 22:45 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Ca sera pareil. Il faut appeler le TIOS avec des flottants de la TI...

sauf s'il veut le faire dans un programme en asm ou C, ou il pourra le faire autrement. Par exemple la transformée de fourrier rapide, etc.. mais ca commence à devenir de la prog de bon niveau déjà.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°6   Marquer comme non lu.
geogeo Ecrit le: Jeudi 14 avril 2005 à 00:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Y a une source de FFT en C dans mon PPE Reconnaissance vocale.

unsigned char NumberOfBitsNeeded (long PowerOfTwo)
{
  for (unsigned char i=0; i<=16; i++) {
    if (PowerOfTwo==(1UL<<i)) return i;}
  return 0;
}

bool IsPowerOfTwo (long x)
{
  if (x<2) return false;
  if (!(x&(x-1))) return true;
  return false;
}

long ReverseBits (long Index, unsigned char NumBits)
{
  long Rev = 0;
  for (unsigned char i=0; i<NumBits; i++)
  {
    Rev = (Rev*2)|(Index&1);
    Index = Index/2;
  } 
  
  return Rev;
}

//bool FFTAudio (long NumSamples, short *RealIn, float *RealOut, float *ImagOut)
bool FFTAudio (long NumSamples, float *RealIn, float *RealOut, float *ImagOut)
{
  /* In this case, NumSamples isn't included (since it's always the same),
     and the imaginary components are left out since they have no meaning here.
     
     I've use Signles instead of Doubles pretty much everywhere. I think this
     makes it faster, but due to type conversion, it actually might not. I should
     check, but I haven't.
     
     The imaginary components have no meaning in this application. I just left out
     the parts of the calculation that need the imaginary input values (which is a
     big speed improvement right there), but we still need output array because
     it's used in the calculation. It's static so that it doesn't get reallocated. 
  */ 
  
  unsigned char NumBits;
  long i, j, k, n;
  long BlockSize, BlockEnd;
  float DeltaAngle, DeltaAr;
  float Alpha, Beta;
  float TR, TI, AR, AI;
  
  /*if ((!IsPowerOfTwo (NumSamples)) || NumSamples<2) {
    printf ("Error in procedure Fourier: NumSamples is %ld, which is not a positive integer power of two.\n", NumSamples);
    return false;}*/
  
  NumBits = NumberOfBitsNeeded (NumSamples);

  for (i=0; i<NumSamples; i++)
  {
    j = ReverseBits (i, NumBits); //I saved time here by pre-calculating all these values
    RealOut [j] = RealIn [i];
    ImagOut [j] = 0;
  }
  
  BlockEnd = 1; BlockSize = 2;
  
  while (BlockSize<=NumSamples)
  {
    DeltaAngle = AngleNumerator/BlockSize;
    
    Alpha = sin(0.5*DeltaAngle);
    Alpha = 2*Alpha*Alpha;
    Beta = sin(DeltaAngle);
    
    i = 0;
    while (i<NumSamples)
    {
      AR = 1; AI = 0;
      
      j = i;
      for (n=0; n<BlockEnd; n++)
      {
        k = j+BlockEnd;
        TR = AR*RealOut [k]-AI*ImagOut [k];
        TI = AI*RealOut [k]+AR*ImagOut [k];
        
        RealOut [k] = RealOut [j]-TR;
        ImagOut [k] = ImagOut [j]-TI;
        RealOut [j] = RealOut [j]+TR;
        ImagOut [j] = ImagOut [j]+TI;
        DeltaAr = Alpha*AR+Beta*AI;
        AI = AI-(Alpha*AI-Beta*AR);
        AR = AR-DeltaAr;
        j++;
      }
      
      i += BlockSize;
    }
    
    BlockEnd = BlockSize;
    BlockSize = BlockSize*2;
  }
  
  return true;
}


Sinon FFT sans flottant c'est possible mais alors vive la galère :D
-Edité le Jeudi 14 avril 2005 à 00:57 par geogeo-
-Edité le Jeudi 14 avril 2005 à 00:58 par geogeo-

[EDIT par Kevin Kofler: Le problème usuel du [i]...]
-Edité le Jeudi 14 avril 2005 à 10:50 par Kevin Kofler-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°7   Marquer comme non lu.
Benjy Ecrit le: Dimanche 2 octobre 2005 à 09:53 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Et geogeo le code que tu a donner ici il fait quoi exactement?
Le langage C y'a pas mieux!!!
    
./Post n°8   Marquer comme non lu.
geogeo Ecrit le: Dimanche 2 octobre 2005 à 12:39 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah applique une FFT sur une série d'achantillons (de valeurs). Bref fait correspondre une courbe en une série de fréquences avec amplitude.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Programmes et tests... » Série de Fourier (8 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 36.32ms avec 19 requetes