在当前的应用中,我们有1000个数据点用于使用Cairo库绘制图形。它正在生成图形文件,但它在图形中有过冲。我需要从图表中删除这个过冲或下冲。我听说人们使用采样定理来消除下冲或过冲。 该应用程序是用C ++编写的。如果我需要提供更多信息,请告诉我。 我尝试使用以下代码来消除这种过冲(我无法理解下面的代码更好)
int samplesize = 4;
double prevSample = 0;
double prevslope = 0;
int thePoint = 0;
for (unsigned int i = samplesize, j = startXIndex; i < endXIndex; i++, j++) {
double sample = 0;
for (unsigned int k = j; k <= i; k++) {
sample += (xvals[k]*xvals[k]);
}
sample /= (i-j);
sample = sqrt(sample);
double slope = atan(prevSample-sample);
if (((prevslope <= 0 && slope > 0) || (prevslope >= 0 && slope < 0))) {
thePoint = j;
}
prevslope = slope;
prevSample = sample;
}
lowX = xvals[thePoint];
任何人都可以提供修改此问题的输入。