LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

peak detector

Bonjour,

J'espère que quelqu'un pourra m'aider. Je veux détecter tous les pics de mon signal analogique. Le signal provient d'un Arduino. Je souhaite détecter ces pics ainsi que leurs coordonnées x et y correspondantes. Je ne sais pas comment lire ces valeurs pour identifier les pics. Si quelqu'un peut m'aider, je lui serais très reconnaissant.

Merci beaucoup.

Capture d’écran 2024-05-18 184734.png

0 Kudos
Message 1 of 17
(672 Views)

(We can help much better if you would attach a VI instead of a picture.)

 

An xy graph accepts many types of data (array of points, cluster of two arrays, 1D complex array, and higher structures for multiple plots, etc.)

.

Your data is spaced equally in time, so all you need is a plain chart to display the last N scalars as they arrive.

 

Of course to detect peaks, you need to define how to recognize a peak. A single value is never a peak, it can only be identified in relation to the surrounding points and some assumptions about peak width and amplitude. (for a noisy signal, ever other point is  "peak" by some poor definitions!)

 

Maybe the ptbypt peak detector could help if used correctly. See how far you get. How does the signal look like?

Message 2 of 17
(647 Views)

Bonjour , 

voilà le vi correspondant et j'apprécierai vivement  toute aide.

Merci.

 

0 Kudos
Message 3 of 17
(629 Views)

Tout d'abord merci pour votre réponse

À mesure que la tension augmente, elle atteint généralement une valeur maximale puis commence à diminuer. Il n’y a généralement pas de seuil fixe, car il est difficile de prédire où s’arrêtera la chute de tension. Lors de cette chute de tension, des impulsions apparaissent. Je souhaite détecter la première tension correspondant à la première impulsion, qui se produit juste après le pic de tension. Ensuite, je veux détecter la tension immédiatement après la dernière impulsion. Pour cela, j'ai prévu d'utiliser un détecteur de peak puis d'essayer de déterminer les impulsions dont j'ai besoin.

je vous joint le signal analogique.

Capture d’écran 2024-05-16 010903.png

0 Kudos
Message 4 of 17
(623 Views)

Turning a scalar into a 1D array by using a coerced "from DTT" will just give you an array with exactly one element. Not enough food for the peak detector!

 

All you probably need is built the data into a initially empty 1D array kept in a shift register and analyze once all data has been collected.

0 Kudos
Message 5 of 17
(594 Views)

Bonjour M. 

Merci pour votre réponse.

Normalement, la taille du tableau que je doit  définir doit s'incrémenter en fonction du nombre d'échantillons acquis.

J'ai une question à propos de l'exportation des données. si j' enregistre les données dans un registre à décalage, ce qui me donnera plusieurs échantillons. Cependant, comme cela prend beaucoup de place, je voudrais savoir si c'est pratique de transférer les données vers un grand registre sous Excel la chose que j'ai vu est qui m'a témoigné le nombre élevé des échantions . Est-il efficace d'exporter toutes les données du graphe vers Excel, puis de les importer à nouveau pour effectuer des calculs et détecter les pics dans les données ?

Merci infiniment pour votre aide.

0 Kudos
Message 6 of 17
(578 Views)

Bonjour;

 En effet J'utilise finalement une fonction d'initialisation de tableau pour initialiser le tableau à 200 éléments de chaînes vides. J'utilise ensuite "Replace Array Subset" pour insérer les données au fur et à mesure que j'obtiens les données. Je garde un compteur connecté à l'index du tableau et lorsque celui-ci atteint 200, je le réinitialise à zéro. Cela entraînera l'écrasement des données pour une nouvelle acquisition mais ca fonctionne pas.

je serai génial si vous pouver m'aider.Merci

Capture d’écran 2024-05-19 134458.png

0 Kudos
Message 7 of 17
(564 Views)

Bonjour;

 En effet, j'utilise finalement une fonction d'initialisation de tableau pour initialiser le tableau à 200 éléments de chaînes vidéo. J'utilise ensuite "Replace Array Subset" pour insérer les données au fur et à mesure que j'obtiens les données. Je garde un compteur connecté à l'index du tableau et lorsque celui-ci atteint 200, je le réinitialise à zéro. Cela entraînera l'écrasement des données pour une nouvelle acquisition mais ca fonctionne pas.

je serai génial si vous pouver m'aider.

je me suis tromper dans le Vi précedent voilà celui correspondant.

Encore une fois, Merci.

Capture d’écran 2024-05-19 134458.png

Capture d’écran 2024-05-19 134122.png

0 Kudos
Message 8 of 17
(561 Views)

You need to keep your array in a shift register, else you always start with an array of all 10 and forget all the old elements. You can also star with an empty array and append the new data.

 

Here are two examples. One starts with an empty array and appends new data. The other starts with a 200 element array of NaN (does not show on graphs!) and replaces with valid data as it arrives. We use a graph instead of  chart, of course.

 

Now the main issues is how to find the interesting peaks. Can you collect a dataset and attach it here?

 

 

Download All
Message 9 of 17
(538 Views)

Je vous remercie infiniment pour vos efforts.

Voici les données que j'ai exportées en Excel. Maintenant, j'ai besoin d'un traitement numérique si l'acquisition est finalisée et que le mode est true.

Capture d’écran 2024-05-19 173200.png

 

0 Kudos
Message 10 of 17
(531 Views)