# smoothing a graph using matlab

8 views (last 30 days)
Abeer Aboul Azm on 20 Feb 2022
Commented: Star Strider on 20 Feb 2022
how can I smooth data imported from one column (Excel sheet) using Matlab
how to smooth the corners? Star Strider on 20 Feb 2022
A frequency-selective filter can preseerve the essential shape of the signal, eliminating only the high-frequency oscillations in the ‘valleys’.
Try this —
L = numel(V1);
t = linspace(0, L-1, L);
Ts = t(2)-t(1);
Fs = 1/Ts;
Fn = Fs/2;
NFFT = 2^nextpow2(L);
FTV1 = fft(V1,NFFT);
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
figure
plot(Fv, abs(FTV1(Iv))*2)
grid
xlabel('Frequency')
ylabel('Amplitude')
title('Fourier Transform (Detail)')
xlim([0 0.05]) UpperPassband = 0.023;
V1F = lowpass(V1, UpperPassband, Fs, 'ImpulseResponse','iir');
figure
subplot(2,1,1)
plot(t, V1)
grid
title('Original')
subplot(2,1,2)
plot(t, V1F)
grid
xlabel('Time')
title('Filtered') Adjust the ‘UpperPassband’ frequency to produce the desired result.
.
##### 2 CommentsShowHide 1 older comment
Star Strider on 20 Feb 2022
I like the sgolayfilt function and use it to filter broadband noise. However, this is band-limited noise (the reason I did the fft was to determine that) so a frequency-selective filter works best in this instance.

### More Answers (1)

Image Analyst on 20 Feb 2022
You could use sgolayfilt() to fit a sliding window to the data. Window width would be about the width of one of those humps. It looks kind of like a sine or cosine wave thus you can fit it to a 4th or 5th order polynomial. Attach your data if you need more help.
Image Analyst on 20 Feb 2022
Edited: Image Analyst on 20 Feb 2022
If it worked, can you click "Accept this answer" for the best answer? Thanks in advance.