Ceci est un peu longshoot.
Supposons que je échantillonne le signal à un débit fixe (disons une fois par seconde).
Existe-t-il une bibliothèque Java mathématique que je peux utiliser pour calculer/extraire les métriques suivantes à partir des données échantillonnées?
1) Le taux de variation du signal
2) Une extrapolation/prédiction de ce que la valeur du signal sera en X secondes/minutes Temps
Mercidifférentiation numérique et l'intégration en Java
Répondre
1) Le taux de variation du signal
Vous pouvez facilement calculer le taux de variation du signal par rapport au temps par l'une ou differentiation faire un ajustement polynomiale et la différenciation. Vous pourriez aussi penser à une sorte de moyennage temporel, car la différenciation tend à rendre les fonctions "plus sautillantes", puisque la continuité est inférieure d'un ordre à la fonction à partir de laquelle elle est calculée.
2) Une extrapolation/prédiction de ce que la valeur du signal sera en X secondes/minutes temps
Une fois que vous avez la réponse à la première partie, il est une chose facile d'extrapoler. Méfiez-vous - l'extrapolation est toujours une chose dangereuse, surtout si la dérivée change rapidement dans le temps. Une sorte de lissage, moyennage ou filtrage est votre ami ici.
Une autre approche pourrait être de prendre une FFT et faire une différenciation terme par terme du résultat.
Le taux de variation est juste la pente de la dernière deux points, vous n'avez pas besoin d'une bibliothèque pour cela. La 'prédiction' que vous demandez n'est pas rigoureusement définie, donc je ne peux que deviner ce que vous cherchez. Il existe de nombreuses méthodes parfaitement valables pour ce faire, à partir de l'extrapolation linéaire simple (c'est-à-dire, tracer une ligne en utilisant la pente des deux derniers points, quelle que soit la longueur que vous voulez prévoir), jusqu'à Kalman filter.
OpenCV a des routines pour l'application de filtres de Kalman, mais il est écrit en C. Il y a un certain intérêt à l'utiliser avec traitement, alors vous pourriez avoir la chance suivant ce guide:
http://ubaa.net/shared/processing/opencv/
Je ne veux pas dire pour battre un cheval mort, mais comme beaucoup de questions, il serait utile que vous donniez plus de détails sur ce que vous essayez de faire pour obtenir une meilleure réponse. J'espère que cela t'aides!
Si vous avez besoin d'équations que vous pouvez regarder
Implementatin des méthodes numériques orienté objet par Didier Besset. http://www.amazon.com/Object-Oriented-Implementation-Numerical-Methods-Introduction/dp/1558606793/ref=sr_1_1?ie=UTF8&s=books&qid=1257821447&sr=8-1
Ceci est principalement pour votre deuxième partie, comme, selon la façon dont vous voulez prédire que vous devrez peut-être différentes équations pour obtenir une meilleure idée, si vous essayez de faire un meilleur ajustement, puis étendre.
Pour la première partie, je pense que cela a été suffisamment traité, déterminer la pente.