Smooth data to get the best approximation.

Hello everyone, I was wondering if anyone knows how I could process the input data in such a way as to obtain something similar to what I show in smooth data. The points marked in red and blue correspond to the change points when using the ischange tool
cI = ischange(YY,'MaxNumChanges',1);
scatter(XX(cI),YY(cI),'filled')
I include an attached data with the points shown in the graph being XX and YY the input data (the ones I intend to modify) and the XSmooth, YSmooth data the ones I intend to get.
I've tried with the methods include in the smoothdata function but i couldn't get the result i expected
methods = {'movmean','movmedian','gaussian','lowess','loess','rlowess','rloess','sgolay'};

 采纳的回答

I used curve fitting app you can workaround and change settings to get your result.

6 个评论

The result remains unapproached regardless of the parameter you use to calculate the spline.
But thanks for your comment :D
there is a sharp spike at x=120. you can apply curve fitting to each interval seperately that does not affect the whole interval. This surely is it.
another method I'm thinking that your signal is full of noise. instead of curve fitting you can refer to signal processing toolbox see if there is a tool for cleaning up and denoising signals. consult with a communication expert. they can help you with frequency analysis. hope that helped.
Ok, thank you so much for all your help :D

请先登录,再进行评论。

更多回答(1 个)

Here is what my ftting tool gives
load('InputData_SmoothData.mat')
pp=BSFK(XX,YY); % FEX file
plot(XX,YY);
plot(XX,ppval(pp,XX),'r');
legend('raw data','BSFK fitting')

类别

帮助中心File Exchange 中查找有关 Time Series Objects 的更多信息

产品

版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by