J'ai un signal que j'échantillonne à 500 kHz. J'essaie de détecter une hausse, une chute et le pic des données entrantes. La base du pic pourrait être de 250 usec ou 2,5 ms, l'amplitude pourrait être de 6 dB ou 15 dB au-dessus du plancher de bruit. Je n'ai malheureusement pas de bons snr. Le niveau continu du signal n'est pas constant mais se déplace beaucoup plus lentement que la composante alternative.
Au point de décision, j'ai besoin de connaître la pente de la montée et de la chute. C'est un système difficile en temps réel et j'ai vraiment besoin de prendre une décision dans le 100usec après que la pente descendante atteigne le niveau DC.
Je recherche des suggestions sur la façon de mettre en œuvre efficacement un algorithme décent.
Actuellement, je fais une moyenne mobile (les 25 derniers points de données ajoutés ensemble) et j'essaie de détecter la tendance. Une fois que je détecte la tendance à la hausse, je commence à rechercher une tendance à la baisse et une fois que je le fais, je recueille peut-être 50 autres échantillons et commence à calculer.
Le bruit visse désormais facilement cet algorithme, d'où la question.
Mise à jour
Pour le bien des autres, j'ai fini par implémenter une moyenne mobile suivie d'un intégrateur. La moyenne mobile des 64 dernières données s'est suffisamment lissée mais a perdu une hausse d'un degré, en intégrant les 8 dernières valeurs, j'ai récupéré la hausse et je recherche simplement la montée et la chute, puis j'ai fait une régression linéaire pour la pente. Fonctionne bien, pas génial mais ok.
la source
Réponses:
Vous devez commencer par un différenciateur à bande limitée (équivalent à un différenciateur suivi d'un filtre passe-bas). Le différenciateur supprimera la tendance des basses fréquences et répondra fortement à vos pics et pentes. Le composant passe-bas supprimera le bruit au-delà de la fréquence de coupure.
Vous devez concevoir votre fréquence de coupure de manière à obtenir des impulsions propres pour vos pentes.
Les pentes positives ralentiront sous forme d'impulsions positives; les pentes négatives sous forme d'impulsions négatives, et le pic correspondra au passage par zéro entre positif et négatif.
Ce type de filtre est normalement implémenté en tant que filtre FIR. Le nombre d'échantillons pour votre filtre dépendra alors de vos contraintes en temps réel, de la netteté à la fréquence de coupure et de la fréquence de coupure elle-même.
la source