How to remove outliers without using filter?
5 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a measure results and there are some random outliers with a big negative or positive values (jitter of uC), there are just random, single values, outliers have a similar value.
So, I want to eliminate this values (just take the same value from left or linear interpolation value ((k-1)+(k+1))/2).
My question is, how to detect this values without using medfilt or filloutliers?
In this case outlier is by motor 3, at 48. sec (negative peak).
Array is in attachement. Thank you!
![Yellow peak at 4,8 sek](https://www.mathworks.com/matlabcentral/answers/uploaded_files/460090/Yellow%20peak%20at%204,8%20sek.png)
If I use:
FX = gradient(v3);
I get:
0,209265176669710
0,236204049673113
0,549647683628642
-0,0127194313868060
-0,452682745464152
-0,605877560385565
-1,42706647302949
-35,9107931304111
0,321110515084925 -< this is a position of outlier
36,0098773311071
1,55432187084153
0,329500733819600
-1,10153727341736
-0,535656388090509
0,222372662282162
-0,349206720356847
0 个评论
采纳的回答
KALYAN ACHARJYA
2020-12-14
编辑:KALYAN ACHARJYA
2020-12-14
Use diff function, more details
result=diff(data);
You will get a large variation in such cases (Use threshold to get the indecies), hope I understand your question.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!