5

Gnuplot でノイズをフィルタリングして、異なるセットの平均値をプロットすることは可能ですか? プロットは以下で見ることができます。

x 軸が時間、y 軸が温度の 2 x 3 グリッドのノイズ プロット

4

1 に答える 1

5

ノイズの多い曲線を滑らかにするには、少なくとも 2 つの戦略があります。1 つは、ガウス関数などの平滑化カーネルを使用して、局所的な平均を与えることです。もう 1 つは、データの関数形式がわかっている場合に、合計平均または補間関数を計算することです。どちらも gnuplot で実行できます。

$RANDOMデータ ファイルを提供していないため、 bash 変数から取得した 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"

ここに画像の説明を入力

ご覧のとおり、この方法では中央が適切に平滑化されますが、エッジでのデータ ポイントの不足も考慮されます。

これが起こらないようにするために、3 番目の列に帯域幅 (この場合は 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 に答える