IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

FFT avec changement de variable t ==> exp(at+b)


Sujet :

Traitement du signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    métrologie
    Inscrit en
    Mars 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : métrologie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2019
    Messages : 4
    Par défaut FFT avec changement de variable t ==> exp(at+b)
    Bonjour,

    Je cherche à établir une fonction de transfert (pour bande passante) d'un ensemble d'acquisition en y entrant un sinus balayé de 1000 Hz à 1 MHz par exemple avec f en progression exponentielle sur 1 s (par exemple). J'utilise soit la détection des passages par zéro, soit une FFT glissante. Dans ce dernier cas, il est problématique de figer une fenêtre qui soit adaptée depuis les basses fréquences jusqu'aux hautes. J'ai l'idée de changer de variable t par exp(at+b) pour que cette fenêtre puisse rester constante. Mon problème c'est que je ne sais pas à la fin du calcul transformer la fréquence trouvée (le max dans la fenêtre) correspondant à la nouvelle variable vers ma variable d'origine (t). Vous avez une idée du calcul ?

    Merci d'avance.

    Cordialement.

  2. #2
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Si tu balaies en fréquence, tu as directement la fonction de réponse, en amplitude.
    Pourquoi chercher plus compliqué ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    métrologie
    Inscrit en
    Mars 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : métrologie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2019
    Messages : 4
    Par défaut
    Bonjour Nebulix,

    "Si je balaie en fréquence" je vais par exemple prendre 2 ms pour analyser le début (proche de 1 kHz), OK. Sauf que plus la fréquence du sinus balayé va augmenter jusqu'à 1 MHz plus je vais moyenner sur des fréquences différentes (2 ms c'est alors beaucoup trop long) et donc le résultat de fréquence est faux pour les fréquences élevées et inversement si je prends une fenêtre plus courte ce sont les fréquences basses que je ne peux analyser.

    Pour ce qui est des méthodes alternatives à la FFT (c'est vrai que balayer 1 million de points, voire 10 millions si on veut éviter le repliement, c'est sinon "compliqué" du moins très très long) j'utilise d'habitude plutôt les passages par zéro, mais là j'ai un cas particulier avec un signal bruité car la carte d'acquisition a une entrée 1400 V alors que bien sûr mon géné BF ne fournit que du 10 V. Tout ça fait que mes passages par zéro sont très bruités aussi, de même que la fréquence calculée.

    NB : ce n'est pas l'amplitude que je cherche, ça marche pas terrible par FFT, je fais autrement pour l'amplitude (genre détection glissante de max/min), c'est la fréquence que je cherche.

    Merci de ta réponse.

    A plus.

  4. #4
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Désolé mais je ne comprends plus rien. Il faudrait que tu expliques plus en détail ton problème ( mesurer une courbe de réponse ? ) et les outils dont tu disposes ( générateur, système de mesure )

  5. #5
    Futur Membre du Club
    Homme Profil pro
    métrologie
    Inscrit en
    Mars 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : métrologie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2019
    Messages : 4
    Par défaut
    Nous sommes un centre d'essai. Nous utilisons en particulier des chaines de mesures du type capteur + conditionneur + numériseur. Nous avons un laboratoire qui préalablement à nos essais de spécimens, essaie de "caractériser" nos cartes d'acquisition (numériseur), soit seule, soit avec la carte de conditionnement. "Caractériser" cela désigne plein de vérifications différentes comme la linéarité et la bande passante. Personnellement je voudrais remplacer la méthode qu'on utilise historiquement de mettre en entrée un signal sinus de fréquence connue et fixe de noter la réponse, puis etc. changement de fréquence, etc. par une méthode que je voudrais automatiser de rentrer un seul signal en 1 seule fois. Il faut qu'il présente toutes les fréquences que je veux tester. Plutôt que de considérer un bruit blanc ou rose, j'ai préféré commencer par un signal balayé. J'ai l'impression que c'est cette expression qui pose problème (?). Le signal de durée 1 s tout compris (par exemple) a une amplitude constante commence à 1000 Hz (par exemple) et finit à 1 MHz (par exemple) avec une progression de fréquence logarithmique que j'écris ln(f)=a.t+b.

    Dans le cas général des cartes d'acquisition que j'ai traitées jusqu'à présent je faisais numériser le signal par la carte à tester à la cadence de 100 kHz, 500 kHz ou 1 MHz (ou 10 MHz pour certaines cartes plus rapides). L'objectif est de fournir la fonction de transfert (module et phase en fonction de la fréquence). Mais en phase intermédiaire il peut être intéressant de caractériser la fréquence de sortie en fonction de celle d'entrée, non seulement pour mettre en évidence le repliement (s'il y en a ou s'il y a en a un peu) mais aussi pour détecter certains pb de linéarité (c'est rare).

    La méthode la plus rapide que j'ai trouvée c'est 1. de dater tous les passages à zéro (plusieurs centaines de milliers, mais j'ai un outil miracle qui fait ça en une seule fois) cela donne accès à la fréquence f = 1/2/Dt et à la phase (là j'ai des progrès à faire) et 2. de déterminer l'amplitude du sinus par une détection glissante de max (et de min car certaines cartes soit présentent un offset soit ne traitent pas rigoureusement les + comme les -.

    Là je dois dire qu'il serait bien mieux de disposer du signal d'entrée, mais j'ai pas. Soit que le généBF ne le fournit pas (?), soit qu'on sache pas l'en extraire, soit qu'on ne veuille pas faire une acquisition en parallèle avec une carte de référence (sans défaut elle...). Mais bon je sais reconstituer assez facilement le signal d'entrée numériquement à partir de la formule du sinus balayé, ça marche bien, y compris sur la phase a priori.

    Sauf que, patatrac, j'ai une carte d'acquisition pour laquelle ça marche plus (passages par zéro multiples par période à cause du bruit, je répète pas j'ai expliqué pourquoi dans ma réponse précédente, entrée 1400 V acquisition 10 V). Donc j'essaie une autre méthode : fenêtrage temporel couvrant plusieurs périodes, puis FFT, puis max de FFT (module) ==> fréquence du max (et amplitude si on veut mais... bref), puis fenêtre suivante avec ou sans recoupement, et idem détermination de f. Si on procède à largeur de fenêtre constante on ne peut pas être adapté à la fois en hautes et basses fréquences (que ce soit pour déterminer la fréquence du max ou pour son amplitude). Si on est adapté en basse fréquence (disons sur quelques périodes, en supposant que le temps est suffisamment court pour que f ne varie pas beaucoup) alors on ne l'est plus tout en hautes fréquences (1000 fois plus de périodes à 1 MHz qu'à 1 kHz pendant lesquelles la fréquence varie largement). On ne cherche plus un max sur 2 ou 3 raies mais sur un "patatoïde" ==> f faux et amplitude encore plus fausse que d'hab.

    Donc pour éviter cet inconvénient l'idée est de transformer logarithmiquement l'échelle en abscisse mais j'ai besoin du mathématicien qui va bien pour corriger en conséquence l'échelle des ordonnées.

    Voilà voilà. Je ne pense pas que je peux expliquer bien mieux sauf à mettre des petits dessins mais pour l'instant je ne suis pas sur la bonne machine.

    Merci de l'intérêt porté à ma question (même si pour l'instant on tourne autour, mais je suppose que c'est nécessaire).

    Cordialement.

  6. #6
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Je ne comprends pas ce que tu souhaites, ni toutes tes contraintes. Le repliement se produit quand tu échantillonnes à moins de 2 fois la fréquence d'entrée, nul besoin de mesure. La non linéarité intervient pour des grands signaux, alors que tu as du mal à sortir du bruit. Y a-t-il des contraintes sur le temps de mesure ou de calcul ? Une FFT sur 10^6 points ne me parait pas infaisable. Peux tu injecter une rampe par paliers, ce qui te ramène au cas classique ? Une fonction pseudo-aléatoire ? Est il vraiment économique d'utiliser du matériel bas de gamme ?
    etc, etc.

Discussions similaires

  1. [MySQL] affichage aleatoire d'une variable avec changement au bout d'un temps donné
    Par spokito dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/07/2011, 20h02
  2. [complexité algo] recurrence avec changement de variable
    Par rvfranck dans le forum Algorithmes et structures de données
    Réponses: 26
    Dernier message: 13/10/2007, 19h15
  3. Evenement avec changement d'enregistrement
    Par SegmentationFault dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 15h30
  4. Probleme avec changement du mot de passe utilisateur
    Par Davenico dans le forum Outils
    Réponses: 2
    Dernier message: 19/12/2003, 14h42
  5. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo