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

Bibliothèques, systèmes et outils C Discussion :

Fréquence instantanée d'un signal


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Fréquence instantanée d'un signal
    Bonjour tout le monde,
    après bien des recherches, mon manque de connaissance (et surtout les longues années écoulées depuis mes études) dans ce domaine se fait trop ressentir pour trouver ma réponse seul.

    Je vous explique rapidement :
    Via une carte Analogique je récupère un signal, ce signal est bruité et contient un signal modulé. L'acquisition est continue et par "paquet" de 200 éléments (on respecte largement Shannon pour cette acquisition).
    A présent, je cherche à extraire la fréquence instantanée du signal principal, et pas de la modulation ou du bruit... Je ne sais pas si je suis clair...
    L'objectif étant simplement de soustraire ensuite cette fréquence au signal intial pour obtenir un signal "plat" et par la suite de trouver la valeur UCC du signal modulé.

    J'ai fait des recherches autour de Fourier, d'Hilbert, des filtres machins et tout, mais là je craque, je n'y comprends rien et ne sais plus où chercher

    Pouvez-vous me dire vers quoi je dois me diriger pour obtenir la tension crête-crête du signal final (sur le tableau de 200 points) ou comment soustraire la fréquence la plus basse pour obtenir un signal "plat"?

    Je vous remercie par avance !

    nbrau

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Bonjour,

    Citation Envoyé par nbrau Voir le message
    A présent, je cherche à extraire la fréquence instantanée du signal principal, et pas de la modulation ou du bruit... Je ne sais pas si je suis clair...
    Pas tellement et à mon avis, c'est pour cela que tu as des difficultés : on se sait pas ce qu'il faut chercher.
    Qu'appelles-tu « fréquence instantanée » du signal et surtout, de quelle nature est ce signal ? Plus précisément, est-ce qu'il s'agit simplement d'une porteuse, probablement sinusoïdale ?

    L'objectif étant simplement de soustraire ensuite cette fréquence au signal intial pour obtenir un signal "plat" et par la suite de trouver la valeur UCC du signal modulé.
    Donc, c'est bien une porteuse.

    J'ai fait des recherches autour de Fourier, d'Hilbert, des filtres machins et tout, mais là je craque, je n'y comprends rien et ne sais plus où chercher
    Le problème est que cela dépend beaucoup de la façon dont ta porteuse est modulée. S'il s'agit simplement de modulation d'amplitude, tu pourras suivre ton approche initiale. Si c'est de la modulation de fréquence, il faudra procéder autrement.

    Pouvez-vous me dire vers quoi je dois me diriger pour obtenir la tension crête-crête du signal final (sur le tableau de 200 points) ou comment soustraire la fréquence la plus basse pour obtenir un signal "plat"?
    Sans être un expert, j'imagine que le plus sensé doit rester l'analyse de spectre, avec une transformée de Fourier discrète. Ta porteuse devrait y apparaître comme une barre ou un pic à droite de ton spectre, de fréquence et d'amplitude fixe, amplitude qui, elle-même, devrait être la plus importante de ce que tu mesures. Elle devrait donc être facile à reconnaître. Si tu as déjà une idée de la valeur approximative de la fréquence de cette porteuse, alors tu dois pouvoir appliquer un filtre passe-bande aux alentours de cette fréquence pour éliminer le reste, et considérer ta porteuse comme détectée à partir du moment où l'amplitude de ce que tu mesures à la sortie de ce filtre dépasse un certain seuil.


    Et surtout, ton problème est-il bien en rapport avec le C ou les bibliothèques à choisir, ou souhaites-tu simplement résoudre le problème d'une manière générale ? Dans le deuxième cas, on pourra déplacer ton fil dans la section Algorithme-Mathématiques-Traitement du signal où ce genre de cas est trivial.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci d'avoir répondu, et en effet il est important de mieux préciser le besoin.
    Dans un premier temps je pense qu'il est nécessaire de répondre à ta dernière question :

    Et surtout, ton problème est-il bien en rapport avec le C ou les bibliothèques à choisir, ou souhaites-tu simplement résoudre le problème d'une manière générale ? Dans le deuxième cas, on pourra déplacer ton fil dans la section Algorithme-Mathématiques-Traitement du signal où ce genre de cas est trivial.
    Tu as raison sur ce point, on doit d'abord étudier le problème au niveau "traitement du signal" afin de déterminer ce qu'il faut réaliser comme "filtres et calculs" avant de passer à l'étape développement en C (sur ce point j'ai déjà quelques algo qui seront, je l'espère, utiles).

    Ensuite mon signal suit en effet une sinusoïde, mais celle-ci diffère en offset et en fréquence selon l'acquisition (je parle en temporel sur ce coup). Et pour être précis il s'agit de l'acquisition d'une roue phonique (capteur à effet hall) d'un arbre moteur.

    Sans être un expert, j'imagine que le plus sensé doit rester l'analyse de spectre, avec une transformée de Fourier discrète. Ta porteuse devrait y apparaître comme une barre ou un pic à droite de ton spectre, de fréquence et d'amplitude fixe, amplitude qui, elle-même, devrait être la plus importante de ce que tu mesures. Elle devrait donc être facile à reconnaître. Si tu as déjà une idée de la valeur approximative de la fréquence de cette porteuse, alors tu dois pouvoir appliquer un filtre passe-bande aux alentours de cette fréquence pour éliminer le reste, et considérer ta porteuse comme détectée à partir du moment où l'amplitude de ce que tu mesures à la sortie de ce filtre dépasse un certain seuil.
    J'ai bien essayé un algo avec une transformée rapide de Fourier, mais je crois que mes connaissances et ma compréhension de Fourier limite mon analyse du résultat. Comment trouve-t-on cette fameuse fréquence? Je ne la trouve nulle part dans les résultats, hélas. On revient certainement à un problème d'algo en C, mais avant tout, on va étudier la meilleure approche en traitement du signal.

    La valeur approximative de la fréquence je la connais, mais un nouveau problème se pose : comme c'est dans une phase transitoire (accélération ou décélération du moteur), celle-ci diffère assez rapidement. Et comme je dois faire le calcul du signal crête à crête assez rapidement (sur environ 10ms) je ne peux me baser sur des estimations, d'où l'intérêt d'analyse de fréquence instantanée, enfin je crois...

    En revanche comme tu dis : je peux faire une filtre passe-bande (ou plutôt passe-bas?) sur cette fréquence. L'idée est intéressante.
    Est-ce que si je fais un filtre passe-bas j'obtiens un signal "plat"? Car si c'est le cas, c'est le début de la solution. Je connais la fréquence max de la sinusoïde porteuse et la fréquence min du signal à étudier. L'écart est assez important (4kHz pour la porteuse et 50kHz pour le signal)


    Demain je posterai un dessin de ce qu'on obtient sur 200 échantillons histoire de mieux voir ce dont je parle.

    Encore merci,
    nbrau

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    C'est bon j'ai trouvé après pas mal de recherches et d'essais.
    J'ai utilisé un filtre passe-haut avec comme fréquence de coupure ma fréquence max / 10.
    Au final j'ai un signal avec la composante continue en moins (j'espère qu'on appelle ça comme ça, sinon tant pis ), et du coup la tension crête à crête est maintenant facile à trouver !
    Si jamais du monde est intéressé, je pourrai partager mes sources sans problème.
    Mots clés : IIR Highpass Filter - Butterworth - chebyshev

    nbrau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fréquence fondamentale d'un signal
    Par rochdidz dans le forum Signal
    Réponses: 15
    Dernier message: 04/06/2012, 09h54
  2. Réponses: 7
    Dernier message: 14/02/2009, 10h24
  3. Réponses: 9
    Dernier message: 24/05/2007, 23h34
  4. Déterminer la fréquence fondamentale d'un signal vocal
    Par payetonbob dans le forum Signal
    Réponses: 2
    Dernier message: 30/11/2006, 15h44

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