2016-10-30 2 views
0

나는 다음과 같은 딜레마에 직면하고있다.MATLAB에서 cscvn을 사용한 부드러운 스플라인 커브?

"Natural" or periodic interpolating cubic spline curve (cscvn)을 사용하면 모든 제어점을 통과하는 보간 스플라인 곡선에 맞출 수 있습니다. 그러나 내 문제는 데이터 포인트에 시끄 럽기 때문에 보간 스플라인 곡선에 많은 지그재그가 있습니다.

enter image description here

그래서 나는 내가 반드시 모든 지점을 통과하지 않습니다 스플라인 곡선 (대신 보간)에 가까운 필요가 어쩌면 생각했다. 다음 나는 cubic smoothing spline (csaps)를 우연히 만났다.

enter image description here

이제 곡선 실로 원활하지만 I은 X 값 주위에 다수 (Y) 값을 가질 때 문제가있다. 따라서 피팅 결과가 실제로 "정확하지"않습니다.

어떻게 부드럽고 "올바른"부속품을 가지고 있습니까?

답변

2

최대 값을 가져야합니다.

또는 잡음이 많은 부분이 정확하다고 생각되면 bin 크기 (가변 빈 크기)를 확대해야합니다. 이것은 좋은 스플라인으로 연결되지만 커브는 떨어집니다.

당신이 옳다고 생각하는 것에 달려 있습니다. 어쨌든 커브의 "매끄러운"부분에서도 빈 크기를 확대하면 (< 200) 스플라인의 매끄러움이 향상됩니다.

+0

감사합니다. 끝 부분은 정확하므로 y 값의 최대 값을 취할 수 없습니다. bin 크기에 대해서는'csaps'의 매개 변수입니까? 나는 그것을 얻지 못한다. –

+0

잠시 동안 생각한 후에, 나는 그것이 왜 효과가 있는지 보지 못 하느냐? 커브 끝에서 빈 크기를 확대해도 x가 작은 값에서 큰 값으로 바뀌면 커브는 여전히 y에서 "진동"합니다. 내가 놓친 게 있니? –

+0

빈 크기를 진동의 "파장"(또는 그 이상)으로 확대하면 더 이상 진동을 볼 수 없습니다. 커브가 낮아지고 두 개의 y 값이있는 스플라인의 상하 밴드 가운데에 커브가 있어야합니다. - 더 낮은 x 값 범위에서 용지함 크기를 확대하면 통계를 확대하기 때문에 더 부드러운 곡선이 나타납니다. –

관련 문제