Remove evenly distributed spikes from curve

조회 수: 5 (최근 30일)
Jan Heinsoth
Jan Heinsoth 2021년 4월 27일
댓글: Star Strider 2021년 4월 29일
Hi, I got some data from the lab giving the height data of holes in a sample I put under a microscope, so I could get a profile of the sample. Since I expect regularly occurring holes in the sample i tried to find the places with the steepest slope, by maxima and minima of the gradient of the data. I found that the gradient curve has many evenly distributed spikes on top of a function that is otherwise really good looking. I tried a smoothing spline to get rid of the spikes, but it also replicates them. I'll give you my code and the graph below. Please help me to get rid of those spikes. Thanks in advance.
% reading in the data from the file
calib5 = importdata(['C:\Users\jan\OneDrive - Carl von Ossietzky Univers',...
'ität Oldenburg\UniShit\Engineering Physics\Semester III - winter 20',...
'20-2021\Laboratory Project I\Data from the Lab\5_100x_zStapelBericht.xlsx']);
% calculating the gradient
c5_1_dDx = gradient(calib5.data.Profil1(:,2))./gradient(calib5.data.Profil1(:,1));
hold on
% creation of the plot above
plot(calib5.data.Profil1(:,1),sum([[diff(calib5.data.Profil1(:,2));0],...
[0;diff(calib5.data.Profil1(:,2))]],2)) % plot of the gradient replicated using diff()
plot(calib5.data.Profil1(:,1),c5_1_dDx) % plot of the gradient
hold off
PS: I really need to find the prominent local maxima and minima of this and not just the spikes.
  댓글 수: 4
Jonas
Jonas 2021년 4월 27일
편집: Jonas 2021년 4월 27일
maybe a moving median is also a good alternative, looks like the peaks you want to remove are only one sample long, so you can try a moving median with a window length of 3
Rik
Rik 2021년 4월 29일
Comment posted as flag by @Jan Heinsoth:
The proposed lowpass worked as well.

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2021년 4월 27일
See if the filloutliers function will do what you want.
  댓글 수: 2
Jan Heinsoth
Jan Heinsoth 2021년 4월 29일
편집: Jan Heinsoth 2021년 4월 29일
Thank you, It did not perfectly smooth the signal, but now it is smooth enough for my purposes.
But the lowpass filter proposed by @Jonas did also work for me.
Star Strider
Star Strider 2021년 4월 29일
As always, my pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by