正しい方法で曲線を滑らかにする方法は?

| | |

データセットがあると仮定しましょう。

  import numpy as np x = np.linspace(0,2 * np.pi、100)y = np.sin (x)+ np.random.random(100)* 0.2  

したがって、データセットの20%のバリエーションがあります。私の最初のアイデアはscipyのUnivariateSpline関数を使用することでしたが、問題は、これが小さなノイズを適切に考慮していないことです。周波数を考慮すると、バックグラウンドは信号よりもはるかに小さいため、カットオフのみのスプラインが考えられますが、これには前後のフーリエ変換が含まれ、動作が悪くなる可能性があります。別の方法は移動平均ですが、これには遅延の正しい選択も必要です。

この問題に取り組むためのヒント/本またはリンクはありますか?

example