MATLAB: How to make a plot smooth

interpolationMATLABplot

i have a plot. Now i want to make it smooth using interpolation. How shoud i do it? Moreover, the peak should be at same point.
figure,plot(f,2*abs(res));
xlabel('frequency(GHz)'); ylabel('standarddev(%)');
grid

Best Answer

It sounds like you want a kind of interpolation, because "smoothing" usually trims the values of the extreme points of a curve, whereas interpolation fits those points exactly (as per your requirement that "the peak should be at same point").
Because I do not have your data here is a simple example using pchip.There are other 1D interpolation functions to choose from, so you should take a look and pick one that best suits your needs.
>> Y = [1,1,2,1,1];
>> X = [0,1,3,4,5];
>> Xi = 0:0.1:5;
>> Yi = pchip(X,Y,Xi);
>> plot(Xi,Yi,X,Y)