smoothing a graph using matlab

2 vues (au cours des 30 derniers jours)
Abeer Aboul Azm
Abeer Aboul Azm le 20 Fév 2022
Commenté : Star Strider le 20 Fév 2022
how can I smooth data imported from one column (Excel sheet) using Matlab
how to smooth the corners?

Réponse acceptée

Star Strider
Star Strider le 20 Fév 2022
A frequency-selective filter can preseerve the essential shape of the signal, eliminating only the high-frequency oscillations in the ‘valleys’.
Try this —
V1 = readmatrix('https://www.mathworks.com/matlabcentral/answers/uploaded_files/900720/data.xlsx');
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 commentaires
Image Analyst
Image Analyst le 20 Fév 2022
This looks like it maintains the shape of the "good" part better than the Savistky-Golay filter.
Star Strider
Star Strider le 20 Fév 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 20 Fév 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.
  6 commentaires
Abeer Aboul Azm
Abeer Aboul Azm le 20 Fév 2022
Thank you so much
Image Analyst
Image Analyst le 20 Fév 2022
Modifié(e) : Image Analyst le 20 Fév 2022
If it worked, can you click "Accept this answer" for the best answer? Thanks in advance.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by