小编Med*_*ath的帖子

使用numpy在重复信号的一部分内绘制抛物线

虽然每个周期的持续时间和内容在某些参数内略有不同,但我有一个重复信号,每个周期大约每秒重复一次.每秒信号数据都有一千个x,y坐标.每个周期内的一小部分但重要的数据部分已损坏,我想用向上的抛物线替换每个损坏的部分.

对于需要由抛物线替换的每个数据段,我有三个点的x,y坐标.顶点/最小值是这些点之一.另外两个点是向上U形的左右顶部,即抛物线.换句话说,左上角是此函数域中最低x值的x,y坐标对,而右上角是此函数域中最高x值的x,y坐标对.左上顶部和右上顶部的y坐标彼此相等,并且是数据段中的两个最高y值.

如何编写代码来绘制这个面向上的抛物线的剩余数据点? 请记住,对于每分钟的数据,此函数需要调用60或70次,并且每次调用此函数时抛物线的形状/公式都需要更改,以便考虑这三对之间的不同关系.每个得到的抛物线中的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 
Run Code Online (Sandbox Code Playgroud)

注意:Xarray和Yarray都是单列向量,每个索引都有数据,将两个数组链接为x,y坐标集.它们都是numpy数组.Xarray包含时间信息并且不会更改,但Yarray包含信号数据,包括将被需要由此函数计算的抛物线数据替换的损坏段.

python signal-processing numpy scientific-computing scipy

2
推荐指数
1
解决办法
2027
查看次数