Bonjour,
Je souhaiterai avoir des conseils pour l’interprétation des résultats à la sortie d'un ADC. J'ai des valeurs suivantes (en pièces ci-joint) issues de l'ADC que je stocke dans un tableau de 128 valeurs, et à l'entrée de mon signal ADC j'ai une sinusoïdale fournit par le GBF à 1 Hz d'amplitude 0.7 V.
acq_03_06_24.txt (856 Bytes)
Et quand je trace la courbe j'ai ce résultat :

Certes ce sont des valeurs numériques et il faut que je fasse la conversion de numérique en analogique pour retrouver mon signal de départ mais vu de loin cela ne ressemble pas à grande chose. Que pensez vous ?
Bonjour,
Qu'il manque certains éléments pour répondre...
Quelle est la fréquence d’échantillonnage ?
Quel est le montage, la carte ?
Quel est le code ?
Bonjour,
C'est uniquement l’interprétation des valeurs (pas de code ni de montage pour l'instant). La formule pour passer les valeurs numériques aux valeurs analogiques c'est bien celle là ?
Oui, mais comme tu l'indique ce n'est qu'une conversion de valeur, cela ne changera pas le trace de ta courbe ![]()
Si tu n'a pas de code, ni montage, comment as tu obtenue le graphique que tu as exposé ?
Si on ne sait pas ce que tu fais et comment tu le fais, on ne peut te répondre qu'au hasard.
Bonjour DOY38
Pour mesurer un signal issu d'un GBF, aussi "bruité", il faut que la liaison GND entre le GND du GBF et celui de l'Arduino soit rompue ou de mauvaise qualité.
Cordialement
jpbbricole
trois bonne questions
- La fréquence échantillonnage est correcte (44.1 kHz)
- Montage, c'est une carte évaluation achetée chez PJRC : PJRC Store
- Le code, justement c'est en analysant la courbe d'acquisition on peut dire que le code est bon ou pas. C'est du STM32 et j'ai posé la question à maintes reprises sur ce site mais je n'ai pas eu de retour ce qui est tout à fait normal puisque c'est un forum sur l'Arduino.
Finalement la courbe de tension a la même forme que la courbe avec les valeurs numériques (échelle en mV) :
. Merci à vous finalement en me posant des questions je la trouve moi même.
Bonne journée
Il y a quand même une incohérence : ce n'est pas du tout une sinusoïde et s'il y a bien tous les échantillons, ton acquisition (125 échantillons) dure moins de 3 ms.
Ça m'arrive souvent aussi...
Je m'en doutais quand même vous ne pensez pas, si j'avais la solution pourquoi venir sur ce forum ?
Mon signal d'entrée est correct :
Je récupère tous les points environ 128 valeurs, mais les données sont incohérentes. Soit l'ADC ne me retourne pas les données comme il faut ou soit il y a des bugs dans le code. On dirait que les données sont hachées, interrompues par quelque chose.
avec quel code garantissez vous cela?
comment générez vous le fichier ? vous faites des print ? à quel débit ? (si vous saturez le port série ça bloque)
En mesurant directement sur la PIN
Je stocke dans un tableau à 128 valeurs pour l'instant et à 1 Hz je ne pense vraiment pas ralentir le µP
confirmez vous que le GND est bien connecté ?
je n'ai pas compris pourquoi une pin montre 44.1Khz
Comme dit par @ProfesseurMephisto 128 échantillons représentent donc 2.9ms de votre signal qui est une sinusoïde à 1Hz donc 1 période complète sur 1s
vous regardez donc une fenêtre très étroite de la sinusoïde - c'est donc normal de ne pas voir une sinusoïde si vous représentez ces échantillons. ce serait un tout petit bout (0.3% du cycle) de cette sinusoïde. On devrait voir quand même un truc un peu cohérent si le signal n'est pas trop bruité.
si vous imprimez les 128 échantillons avant d'aller acquérir les 128 suivants, ça remplit le buffer série et print() devient bloquant ce qui expliquerait le hachage dont vous parlez
pouvez vous poster le code?
Bonjour
Quelles sont les références exactes de la carte d'évaluation que tu as achetée ?
Quelles sont les références exactes du GBF utilisé ?
Comment sont alimentés le GBF et la carte d'évaluation ?
Quelle longueur, quel type de câble et de connecteurs utilises-tu entre ton GBF et l'entrée analogique de ta carte d'évaluation ?
(Des photographies du montage pourraient aider.)
Est-ce que ça veut dire que la sinusoïde de 1Hz générée par ton GBF va de -0.35 V à +0.35 V ?
ou alors de 0V à +0.7V ?
Quelles sont les unités des valeurs données en abcisse et en ordonnées dans l'image de ta courbe ?
Mais le principe du forum est de aussi d'aider les aidants à répondre... C'est pour cela que des infos sur le code, le cablage et le matériel ont été demandés. Sinon https://forum.voyance.com est plus adapté.
A l'entrée de la carte, il y a des 2.2μF alors ton 1Hz il est pas mal atténué A 1Hz, la réactance du condensateur de 2.2μF est de 72kΩ environ. Comme l'impédance d'entrée du SGT5000 est de 29kΩ tu divises ton signal par 3.
Et si c'est une carte d'ancienne génération c'est pire car il y avait des 1.1μF à la place.
Tu récupères tous les points de quoi ?
Si c'est de l'audio que tu veux faire, tu ne devrais pas plutôt avoir une sinusoïde à 1kHz ?
Dans ce cas je vais augmenter le niveau du signal, pourtant si c'est une entrée ligne en principe dans l'audio c'est du 0 dB qu'on entre et cette est équipé pour. Je vais essayer d'augmenter le signal pour voir.
128 mesures consécutives d'un signal échantillonné à une fréquence de 44100Hz correspondent à une durée de 0,002902 secondes <=> environ 3ms
Si le signal est une sinusoïde à 1Hz et que le circuit d'entrée du CAD et sa bande passante permettaient de laisser passer une aussi basse fréquence, alors l'oscillogramme affiché ne ressemblerait pas à une sinusoïde, mais à une ligne presque droite.
C'est exacte, j'ai diminué volontairement la fréquence du signal d'entrée LINE pour pouvoir observer les valeurs à la sortie de l'ADC (mon code j'ai déjà validé par un autre moyen, un peu trop longue à expliquer ici) c'est embêtant de ne pas mettre une sonde à la sortie de l'ADC pour voir si j'ai bien configuré le CODEC, tout est fermé et je récupère uniquement sur la ligne I2S_OUT.
Bien sur pas de soucis (laissez-moi le temps de regarder), je ne voulais pas par ce que ce n'est pas d'Arduino tout simplement. Concernant la PIN, puisque c'est le µP qui est maitre et que vous regardez le schéma

à la PIN 20 du CODEC avec le µP j'ai bien du 44.1 kHz donc ma fréquence échantillonnage est bien réglée.
J'avais pas vu que j’observai sur une portion de fenêtre 0.3% dans ce cas je vais regarder quelle fréquence je dois mettre à mon GBF pour avoir une période complète. Je travaille avec la DMA en mode circulaire donc impossible de louper un échantillon, c'est un transfert direct de I2S_OUT vers la mémoire (ici pour moi juste un tableau pour visu dans un premier temps mais après en réalité je l'écris directement sur la mémoire µSD).



