ideas to smooth a sharpe corner of a graph?
Ältere Kommentare anzeigen
I'm trying to smooth a sharpe corner of a graph similar to what I've shown in the image below:

Can anyone give me some ideas how to handle this case? Should I use specific filters? interpolation techniques? etc,...
If it helps, my original case is 2D and for simplification I've drawn a 1D case above. Thanks
Akzeptierte Antwort
Weitere Antworten (3)
Thomas Koelen
am 22 Mai 2015
Bearbeitet: Thomas Koelen
am 22 Mai 2015
Maybe construct splines?
example:
x=1:10;
y=rand(1,10);
cs = csapi(x,y);
fnplt(cs,2);
Image Analyst
am 22 Mai 2015
One way is to use conv() to smooth/blur the signal:
windowWidth = 9; % Some odd number.
kernel = ones(1, windowWidth) / windowWidth;
smoothedSignal = conv(signal, kernel, 'same');
That is basically fitting the output element to the mean of elements in the sliding window. If you want it to follow the signal less closely, you can use a wider window.
Or you can use a Savitzky-Golay filter, done by sgolayfilt() in the Signal Processing Toolbox. I'm attaching a demo for you Mona. This is similar to conv() in that it does a fit in a sliding window, but you can specify some order of polynomial to fit to data in the window. For example, you can fit a quadratic or cubic function to the data in the window and assign the middle element to the fitted value. So with this filter, it's still a local filter but you have more control over how much you want to smooth or follow the original signal.
Mona Mahboob Kanafi
am 25 Mai 2015
0 Stimmen
1 Kommentar
shmng
am 21 Dez. 2016
Hallo Mona, Could you please share the command to achieve this. I am not able to reteive as per your solution. How can we edit 2D settings in cftool. I am also looking for similar solution to smoothen the curve at sharp edges.
Any help shall be thankful.
Regards, Shwetha
Kategorien
Mehr zu Smoothing and Denoising finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!