60 votes

Détection de pic du signal mesuré

Nous utilisons une carte d'acquisition des données pour la lecture des valeurs à partir d'un dispositif qui augmente son signal à un pic et puis revient à près de la valeur d'origine. Pour trouver la valeur de crête nous avons actuellement une recherche dans le tableau de la valeur la plus élevée et l'utilisation de l'indice pour déterminer le moment de la valeur de crête qui est utilisé dans nos calculs.

Cela fonctionne bien si la valeur la plus élevée est le pic nous sommes à la recherche pour, mais si l'appareil ne fonctionne pas correctement, nous pouvons voir un second pic qui peut être plus élevé que le pic initial. Nous prenons 10 lectures une deuxième à partir de 16 appareils de plus de 90 seconde période.

Mes premières pensées sont pour faire défiler les lectures de la vérification pour voir si le précédent et suivant points de moins que le courant de trouver un pic et de construire un tableau de sommets. Peut-être que nous devrions être à la recherche au moyen d'un certain nombre de points de chaque côté de la position actuelle afin de permettre de bruit dans le système. Est-ce la meilleure manière de procéder, ou il y a de meilleures techniques?


Nous ne l'utilisation de LabVIEW et j'ai vérifié le LAVE forums et il y a un certain nombre d'exemples intéressants. Cela fait partie de notre logiciel de test et nous essayons d'éviter d'utiliser trop grand nombre de non-standard VI bibliothèques de sorte que je m'attendais à des commentaires sur le processus d'/algorithmes plutôt que de code spécifique.

87voto

Thomas Kammeyer Points 2743

Il y a beaucoup de classique de pointe des méthodes de détection, de tout ce qui pourrait fonctionner. Vous aurez à voir ce qui, en particulier, les limites de la qualité de vos données. Voici description de base:

  1. Entre deux points dans vos données, (x(0),y(0)) et (x(n),y(n)), ajoutez-y(i+1)-y(i) pour 0 <= i < n et d'appeler cet T ("voyage") et le jeu de R ("lieu") y(n)- y(0) + k pour suffisamment petit k. T/R > 1 indique un pic. Cela fonctionne bien si grand voyage, à cause du bruit est peu probable ou si le bruit distribue de façon symétrique autour d'une base de forme de la courbe. Pour votre demande, accepter le plus tôt de pointe avec un score supérieur à un seuil donné, ou d'analyser la courbe de voyage par augmentation des valeurs pour plusieurs propriétés intéressantes.

  2. Utilisation correspondant aux filtres à score de similarité à un standard en forme de pointe (essentiellement, l'utilisation normalisées produit scalaire contre une certaine forme pour obtenir un cosinus-métrique de similarité)

  3. Donne contre une norme forme de pic et vérifier pour des valeurs élevées (bien que je trouve souvent de 2 à être moins sensibles au bruit pour une simple instrumentation de sortie).

  4. Lisse les données et vérifier les triplets de points également espacés où, si x0 < x1 < x2, y1 > 0.5*(y0+y2), ou vérifier les distances Euclidiennes comme ça: D((x0,y0),(x1,y1)) + D((x1,y1),(x2,y2)) > D((x0,y0),(x2,y2)), qui s'appuie sur le triangle de l'inégalité. À l'aide de simples ratios seront à nouveau de vous fournir un mécanisme de notation.

  5. Ajustement très simple 2-modèle de mélange gaussien de vos données (par exemple, les chiffres des Recettes a une belle ready-made morceau de code). Prenez le précédent sommet. Cela permettra de traiter correctement avec chevauchement des pics.

  6. Trouver la meilleure correspondance dans les données à un simple Gauss, Cauchy, Poisson, ou quoi avez-vous de la courbe. L'évaluation de cette courbe sur une large gamme et de la soustraire une copie des données après notant le pic de l'emplacement. Répétez. Prendre le plus tôt de pointe dont les paramètres du modèle (écart-type sans doute, mais certaines applications peuvent se soucient aplatissement ou d'autres caractéristiques) répondent à un certain critère. Watch out pour les artefacts laissés lors de pics sont déduites à partir des données. Meilleur match pourrait être déterminée par le genre de match de notation proposé en #2 ci-dessus.

J'ai fait ce que vous êtes en train de faire avant: trouver les pics dans la séquence d'ADN de données, de trouver des pics dans les dérivés estimée à partir de la mesure des courbes, et de trouver des pics dans les histogrammes.

Je vous encourage à assister soigneusement la bonne référence. Le filtrage de Wiener ou d'autres filtrage ou de la simple analyse de l'histogramme est souvent un moyen facile de référence en présence de bruit.

Enfin, si vos données sont généralement bruyants et vous êtes l'obtention de données sur la carte en tant que non référencées de sortie unipolaire (ou même référencé, tout simplement pas de différentiel), et si vous êtes à la moyenne de beaucoup d'observations dans chaque point de données, essayez de tri de ces observations et de jeter le premier et le dernier quartile, et en moyenne, ce qui reste. Il y a un grand nombre de ces valeurs aberrantes élimination des tactiques qui peuvent être vraiment utiles.

10voto

Brendan Points 7674

Vous pouvez essayer de la moyenne du signal, c'est à dire pour chaque point, la moyenne de la valeur avec les environs de 3 points ou plus. Si le bruit soubresauts sont énormes, alors même cela peut ne pas aider.

Je me rends compte que c'était la langue agnostique, mais devinant que vous êtes en utilisant LabView, il y a beaucoup de pré-emballés, traitement du signal VIs qui viennent avec le logiciel LabView que vous pouvez utiliser pour faire le lissage et la réduction du bruit. Le NI les forums sont un endroit idéal pour obtenir de plus spécialisées de l'aide sur ce genre de chose.

6voto

dmckee Points 50318

Ce problème a été étudié en détail.

Il y a un ensemble de très up-to-date de mise en œuvre à l' TSpectrum* classes de RACINE (nucléaire/physique des particules outil d'analyse). Le code fonctionne en trois dimensions des données.

La RACINE code source est disponible, de sorte que vous pouvez récupérer cette mise en oeuvre si vous le souhaitez.

À partir de la TSpectrum de documentation de classe:

Les algorithmes utilisés dans cette classe ont été publiés dans les références suivantes:

[1] M. Morhac et al.: Arrière-plan l'élimination méthodes pour multidimensionnelle coïncidence gamma-ray les spectres. Les Instruments nucléaires et Méthodes de Recherche en Physique 401 (1997) 113- 132.

[2] M. Morhac et al.: Efficace à une et deux dimensions de l'Or déconvolution et de son application à gamma-ray spectres de décomposition. Nucléaire Instruments et de Méthodes La Recherche En Physique 401 (1997) 385-408.

[3] M. Morhac et al.: L'Identification des pics de multidimensionnelle coïncidence gamma-ray les spectres. Les Instruments nucléaires et Méthodes de Recherche en Physique Un 443(2000), 108-125.

Les documents sont liés à partir de la documentation de classe pour ceux d'entre vous qui n'ont pas de NIM abonnement en ligne.


La version courte de ce qui est fait est que l'histogramme aplatie pour éliminer le bruit, et puis les maxima locaux sont détectés par la force brute dans la aplati histogramme.

4voto

Tim Williscroft Points 2889

Cette méthode est essentiellement tirée du livre "Vision" de David Marr

Le flou gaussien de votre signal correspond à la largeur attendue de vos pics. cela élimine les pointes de bruit et vos données de phase ne sont pas endommagées.

Puis détection de bord (LOG fera l'affaire)

Ensuite, vos bords étaient les bords des entités (comme les pics). cherchez les pics entre les arêtes, triez les pics par taille et vous avez terminé.

J'ai utilisé des variantes à ce sujet et elles fonctionnent très bien.

2voto

Anthony Cramp Points 1665

Je pense que vous souhaitez établir une corrélation croisée entre votre signal et un signal attendu, exemplaire. Mais, cela fait si longtemps que je n’ai pas étudié le traitement du signal et même alors, je n’y ai pas fait très attention.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X