一次线性插值C语言代码
rstime=ORTIME;rsvalue=ORVALUE;
int rst=1;
int rsv=1;
int ornum=lengthlrs;
if (resampfz!=0&&ornum>=1)
{
double addtime=(double)1/(resampfz);
double lineReSampleX;
double lineReSampleY;
lineReSampleX=0;
lineReSampleX=0;
lineReSampleY=0;
lineReSampleY=0;
lineReSampleX=ORTIME;
lineReSampleX=ORTIME;
lineReSampleY=ORVALUE;
lineReSampleY=ORVALUE;
//}
double lineReSampleX0=lineReSampleX+addtime;
int lj=1;
while(lj<ornum)
{
while(lineReSampleX0>lineReSampleX&&lj<ornum)
{
lj=lj+1;
lineReSampleX=lineReSampleX;
lineReSampleY=lineReSampleY;
lineReSampleX=ORTIME;
lineReSampleY=ORVALUE;
}
rstime=lineReSampleX0;
rst++;
double b=(lineReSampleY-lineReSampleY)/(lineReSampleX-lineReSampleX);
double a=lineReSampleY-b*lineReSampleX;
rsvalue=b*lineReSampleX0+a;
rsv++;
lineReSampleX0=lineReSampleX0+addtime;
if (rst==ornum+1&rsv==ornum+1)
{
break;
}
}
}
页:
[1]