2016-10-30 6 views
0

私は次のジレンマに直面しています。MATLABでcscvnを使用した滑らかなスプライン曲線?

"Natural" or periodic interpolating cubic spline curve (cscvn)は、すべてのコントロールポイントを通過する補間スプライン曲線に適合させることができます。しかし、私の問題ではデータポイントにノイズがあり、補間スプライン曲線には多くのジグザグがあります。

enter image description here

だから私は多分、私が近似(代わりの補間)必ずしもすべてのポイントを通過しないスプライン曲線が必要と思いました。それから私はcubic smoothing spline (csaps)を見つけました。

enter image description here

今曲線は確かに滑らかであるが、私はx値の周りに複数のyの値を持っている場合、それは問題を抱えています。したがって、フィッティングの結果は本当に「正しい」わけではありません。

どのように滑らかで「正しい」継手を使用できますか?

答えて

2

あなたはy値の最大値をとる必要があります。

また、ノイズの多い部分が正しいと思われる場合は、ビンサイズ(可変ビンサイズ)を大きくする必要があります。これは良好なスプラインにつながりますが、カーブは下がります。

これは正しいと思われるものによって異なります。とにかく、ビンのサイズを曲線の「滑らかな」部分(< 200)にも拡大すると、スプラインの滑らかさが向上します。

+0

ありがとうございます。最後の部分は正しいので、私はyの値の最大値を取ることができません。ビンサイズについては、これは 'csaps'のパラメータですか?私はそれを得ていません –

+0

しばらくそれを考えた後、なぜそれは動作しないのですか?ビンサイズを大きくしても、カーブの終わりに、xが小さい値から大きな値に変化するとき、カーブは依然としてyで「振動」します。私は何か不足していますか? –

+0

ビンのサイズを振動の「波長」(またはそれ以上)に拡大すると、振動がもう表示されなくなります。曲線は下がり、2つのy値を持つスプラインの上下の中央に位置するはずです。 - ビンサイズをxの値の小さい方の値に拡大すると、統計が拡大されるため、より滑らかな曲線になります。 –

関連する問題