Gnuplot でノイズをフィルタリングして、異なるセットの平均値をプロットすることは可能ですか? プロットは以下で見ることができます。
質問する
4756 次
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 に答える