ほぼ毎秒繰り返されるプロセスの各サイクルで少し変化する繰り返し信号がありますが、各サイクルの期間と内容は、いくつかのパラメーター内で互いに少し異なります。私の信号データの1秒ごとに1000のx、y座標があります。各サイクル内のデータの小さいが重要なセグメントが破損しているため、破損した各セグメントを上向きの放物線に置き換えたいと思います。
放物線で置き換える必要のあるデータセグメントごとに、3点のx、y座標があります。頂点/最小値はそれらのポイントの1つです。そして、他の2つのポイントは、放物線である上向きのU字型の左右の上部です。つまり、左上はこの関数の定義域内の最小のx値のx、y座標ペアであり、右上はこの関数の定義域内の最大のx値のx、y座標ペアです。左上と右上のy座標は互いに等しく、データセグメントで最も高い2つのy値です。
この上向きの放物線に残りのデータポイントをプロットするコードをどのように記述できますか? この関数は、データの1分ごとに60回または70回呼び出す必要があり、放物線の形状/式は、これら3つのペア間の異なる関係を説明するために、この関数が呼び出されるたびに変更する必要があることに注意してください。結果として得られる各放物線のx、y座標。
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
注:XarrayとYarrayはそれぞれ単一列のベクトルであり、各インデックスにデータがあり、2つの配列をx、y座標のセットとしてリンクします。どちらもNumpy配列です。Xarrayには時間情報が含まれており、変更されませんが、Yarrayには、この関数で計算する必要のある放物線データに置き換えられる破損したセグメントを含む信号データが含まれています。