5

是否可以过滤 Gnuplot 中的噪声并获得具有不同集合平均值的图?情节可以在下面看到。

2 x 3 网格噪声图,x 轴为时间,y 轴为温度

4

1 回答 1

5

要平滑噪声曲线,您至少有两种策略:一种是使用平滑内核,例如高斯函数,它可以为您提供局部平均值。如果您知道数据的函数形式,另一种是计算总平均值或插值函数。两者都可以用 gnuplot 完成。

由于您没有提供数据文件,因此我生成了以下文件,其中填充了从$RANDOMbash 变量中获得的 1000 个随机值:

for i in `seq 1 1 1000`; do echo $RANDOM >> data; done

这应该会生成 0 - 32767 范围内的随机数据,也就是说,对于具有足够代表性的数据样本,平均值应该是 16383.5。让我们绘制它以查看原始数据的外观:

plot "data" t "data", 16383.5 t "theoretical average"

在此处输入图像描述

第一种策略是使用高斯核来平滑数据 ( smooth kdensity):

plot "data" smooth kdensity t "data", 16383.5 t "theoretical average"

在此处输入图像描述

如您所见,此方法在中间提供了很好的平滑,但也考虑到了边缘缺少数据点。

为了防止这种情况发生,我可以通过为第三列提供带宽(在这种情况下等于 10)来增加平滑的“局部性”:

plot "data" u 0:1:(10) smooth kdensity t "data", 16383.5 t "theoretical average"

在此处输入图像描述

拟合的平均需要fit

fit a "data" via a
plot "data" t "data", a t "calculated average"

在此处输入图像描述

于 2015-02-06T07:31:42.777 回答