I ont un signal de répétition qui varie un peu avec chaque cycle d'un processus qui se répète à peu près tous les deux, bien que la durée et le contenu de chaque cycle varient les uns des autres un peu dans certains paramètres. Il y a mille coordonnées x, y pour chaque seconde de mes données de signal. Un petit segment, mais important, des données dans chaque cycle est corrompu, et je veux remplacer chaque segment corrompu par une parabole tournée vers le haut.tracé d'une parabole dans une partie d'un signal de répétition en utilisant numpy
Pour chaque segment de données qui doit être remplacée par la parabole, je les coordonnées x, y de trois points. Le sommet/minimum est l'un de ces points. Et les deux autres points sont les sommets gauche et droit de la forme en U orientée vers le haut qui est la parabole. En d'autres termes, le sommet gauche est la paire de coordonnées x, y de la valeur x la plus basse dans le domaine de cette fonction, tandis que le sommet supérieur est la paire de coordonnées x, y de la valeur x la plus élevée du domaine de cette fonction. Les coordonnées y du haut gauche et du haut droit sont les mêmes et sont les deux valeurs y les plus élevées dans le segment de données.
Comment puis-je écrire le code pour tracer les points de données restant dans cette parabole tournée vers le haut? Rappelez-vous que cette fonction doit être appelée 60 ou 70 fois pour chaque minute de données, et que la forme/formule de la parabole devra changer chaque fois que cette fonction est appelée, afin de tenir compte des différentes relations entre ces trois paires des coordonnées x, y dans chaque parabole résultante.
def ReplaceCorruptedDataWithParabola(Xarray, Yarray, LeftTopX, LeftTopY
, LeftTopIndex, MinX, MinY, MinIndex
, RightTopX, RightTopY, RightTopIndex):
# Step One: Derive the formula for the upward-facing parabola using
# the following data from the three points:
LeftTopX,LeftTopY,LeftTopIndex
MinX,MinY,MinIndex
RightTopX,RightTopY,RightTopIndex
# Step Two: Use the formula derived in step one to plot the parabola in
# the places where the corrupted data used to reside:
for n in Xarray[LeftTopX:RightTopX]:
Yarray[n]=[_**The formula goes here**_]
return Yarray
Note: Xarray et Yarray sont chacun des vecteurs à une seule colonne avec des données à chaque index qui relie les deux réseaux comme des ensembles de coordonnées x, y. Ils sont tous les deux des tableaux chiffrés. Xarray contient des informations de temps et ne change pas, mais Yarray contient des données de signal, y compris le segment corrompu qui sera remplacé par les données paraboliques qui doivent être calculées par cette fonction.
+ 1 belle réponse. – zellus