Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

FFT avec signaux DAQmx

Bonjour,

 

J'utilise un module analogique NI 9205 pour lire des signaux sinusoidaux. J'aimerais pouvoir effectuer une FFT sur ces signaux afin de les comparer avec mon signal d'émission et ainsi vérifier que l'on reçoit le bon signal.

 

J'ai essayé plusieurs méthodes, ici j'utilise un VI Express sur mon signal émis et sur mon signal reçu afin que vous voyiez la différence.

 

En effet, pour mon signal reçu, je n'arrive pas à avoir d'indicateur graphe mais uniquement un tableau en chaine qui en plus est compliqué à déchiffrer.

 

Pourriez vous me donner une astuce soit pour pouvoir obtenir en sortie du VI Express de calcul de la FFT, pour mon signal reçu, le même type de données que pour le calcul de la FFT de mon signal émis, 

soit un moyen de déchiffrer le tableau afin de pouvoir visualiser les différentes fréquences.

 

A savoir qu'il y a du bruit à la reception, et la FFT est le meilleur moyen pour moi d'isoler mon signal.

 

 

J'ai mis une capture des signaux obtenus pour que vous visualisiez mieux ce que j'obtiens.

 

Merci pour vos réponse.

Mehdi

Tout télécharger
0 Compliments
Message 1 sur 19
4 616 Visites

Bonjour,

il suffit juste de cabler un graph pour pouvoir le visualiser (j'ai fait un ctrl-c, ctrl-v du graph existant et cablé c'est tout)

 

Pour ce qui est de déchifrer, utilise l'aide, en plassant la sourie sur le cable tu as toutes les informations pour obtenir les données.

J'ai commenté le code, le flux rose est un tableau il faut le désassemblé pour acceder à un cluster qui lui même contient les données... et j'ai réassemblé ca dans une wavefrom pour être homogene;

0 Compliments
Message 2 sur 19
4 606 Visites

Bonjour Fanka.m

 

Merci de ta réponse, j'ai trouvé une autre solution qui m'a permit de convertir mon tableau en flux dynamique que j'ai pu utiliser directement sur le VI Express de la FFT. 

 

J'ai un autre soucis maintenant, je faisait mes tests avec des petites fréquences. Je suis donc monté à 800 Hz mais l'application ne fonctionne pas aussi bien. 

Je m'explique, mon module d'acquisition à l'air de ne pas aller au dela de 500 Hz, en effet, une fois que je dépasse cette valeur, mon signal reçus reste bloqué à un peu moins de 500Hz, puis quand je baisse la fréquence d'émission, la fréquence de recepetion baisse également mais avec un delta, qui correspond à la différence entre 500Hz et la dernière fréquence max que j'ai émise.

 

Du coup, quand j'envoi 800Hz, je reçoit 400Hz, et si je descend à 400 Hz, je reçoit 200 Hz. Ce qui est un peu génant sachant que je dois monter à un peu plus de 1kHz.

 

Merci de ton aide

0 Compliments
Message 3 sur 19
4 599 Visites

Quel est la fréquence d'échantillonnage ?

As tu une protection contre le repliement de spectre ?

 

"Du coup, quand j'envoi 800Hz, je reçoit 400Hz, et si je descend à 400 Hz, je reçoit 200 Hz. Ce qui est un peu génant sachant que je dois monter à un peu plus de 1kHz."

envoie = simulé ou aquisition par le DAQmx ?

est ce que le df est le bon ?

0 Compliments
Message 4 sur 19
4 596 Visites

Bonjour,

 

Pour le signal envoyé, il est créé par le VI Express 'signal sinus", échantillonné à 2000Hz pour pouvoir envoyer une fréquence de 800Hz. Il est ensuite envoyé via mes sorties analogiques.

 

Pour ma réception, j'utilise le cadencement Daqmx pour échantillonné à la même fréquence. 

 

Au début, on voit notre signal, mais la fréquence detectée est incorrect, puis au bout d'un moment, j'ai une erreur me disant que l'application n'a pas pu suivre l'acquisition du matériel et qu'il faut augmenter la taille du buffer.

 

Je mettrai une image de l'erreur que j'obtiens dans la matinée.

 

Merci

0 Compliments
Message 5 sur 19
4 577 Visites

Bonjour,

 

Personnellement, losque je souhaites mettre en place le cnotrôle d'une forme d'onde que je génère précédemment, je mets un échantillonnage au moins 1,5 fois plus rapide sur l'acquistion afin d'être sur de ne pas détériorer mon signal.


Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 6 sur 19
4 575 Visites

Bonjour,

 

J'ai essayé votre solution, le signal reçu est plus stable, cependant j'ai toujours le même problème, en échantillonnant plus vite pour pouvoir utiliser une plus grande fréquence, j'ai cette erreur qui apparait (image en pièce jointe).

 

Au bout de 30 sec, l'acquisition s'arrête et génère cette erreur. mais je ne comprends pas de quelle application il s'agit. Est ce mon module d'entrées analogique qui ne suit pas ?

 

Merci de vos réponse

 

Tout télécharger
0 Compliments
Message 7 sur 19
4 560 Visites

J'ai résolu le problème de lecture en utilisant une fonction daqmx me permettant de changer la valeur du buffer, j'ai mis 200 000 et ça fonctionne correctement.

 

Vous trouverez ma face avant en pièce jointe.

J'envoi un signal à 800 Hz, on peut voir au niveau de la FFT reception que j'ai une fréquence à 300 Hz et une à 700 Hz. 

On remarque également qu'à 800 Hz, je n'obtiens pas de FFT pour le signal fournit par le VI Express "simuler signal sinus".

 

Je vous avoue que ce sont des incohérences que je n'arrive pas à comprendre. Comment se fait il qu'avec des fréquences en dessous de 100Hz, tout fonctionne correctement, et autour de 800Hz, ça ne fonctionne pas ?

Mon but est de monter jusqu'à 2400 Hz mais ça va être difficile si Labview ne suit pas..

 

Merci de votre aide, si vous pouvez m'éclairer un peu svp

0 Compliments
Message 8 sur 19
4 557 Visites

Pourquoi générer deux fois la meme fonction sinus avec 2 vi different ? surtout que le nombre d'éhantillons n'est pas le même.

La fréquence déchantillonnage est de 1 kHz, selon la fonction FFT la fréquence max que vous pourez visualiser est Fech/2 soit 500 Hz.

 

Or votre horloge d'échantillonage en lecture est 500Hz, faire une FFT sur un fignal échantilloné à 500 Hz il ne reste plus que 250Hz de spectre....

étudier plus en détail les matématique de la FFT et vous comprendrez vos erreurs. 

 

 

La structure séquence est superflux, labview travail en flux de donnée....

Le VI DACmx ecrire demande une wavefrom en entré est non un tableau 1D, 

Dès qu'il y a un points rouge sur un VI c'est signe que le format de donnée n'est pas respecté mais que LABVIEW arrive quand même à travailler. 

 

0 Compliments
Message 9 sur 19
4 554 Visites

Bonjour Fanka,

 

En réalité, j'ai voulu tester la fonction sinus sans passer par le VI Express, ensuite je l'ai retiré puisqu'il n'y a aucun changement.

Sinon, ma fréquence d'échantillonnage est à 2000 Hz pour pouvoir émettre 800 Hz, Fe>2Fmax. je ne pense pas m'être trompé sur ce sujet.

 

En sortie du VI Express, j'ai un tableau dynamique, Labview m'a convertit ce tableau tout seul lorsque je l'ai connecté au VI Daqmx écrire. 

Si je change la conversion pour une waveform simple, ça ne marche pas car c'est une  waveform double qu'il faut, et je ne trouve pas de convertisseur pour cela.

 

Mes fréquences sont bonnes, par contre, Labview ne suit pas, je peux mettre une freq d'échantillonnage à 10kHz ça ne change rien, la FFT en reception ne suit pas. Je pense plutôt que le VI Daqmx lire ne lit pas assez vite, bien que cadencé à 3kHz. 

 

Pour la structure séquence, je l'ai mis car la simulation du signal fait que le VI Daqmx lire démarre avant le vi daqmx ecrire, du coup, le début de mon signal est à 0, donc je lis après l'émission pour éviter d'avoir cette constante.

 

 

0 Compliments
Message 10 sur 19
4 544 Visites