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'};

 Accepted Answer

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

6 Comments

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

Sign in to comment.

More Answers (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')

Categories

Products

Release

R2020a

Community Treasure Hunt

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

Start Hunting!