Hangi filtre daha uygun olur?

Başlatan strom, 23 Haziran 2018, 10:09:48

strom

Herkese iyi günler.
Elimde uzun bir veri kümesi var. 10000 elemanlı filan. Daha da yüksek rakamlara çıkabilir. Sorum şu; bu veri kümesinin minimum değerine göre scaling yapıyorum. Ancak örneğin veri içerisindeki değerler -10 +10 arasında değişirken bu 10000 veri arasında 3-5 tane veri, bazı sorunlardan dolayı -8190 gibi diğer değerlerden çok daha farklı, absürd bir değere sahip oluyor. Dolayısıyla sadece minimum değeri bulup işlem yaptığım için -10 değeri yerine -8192 değeri üzerinden scale ediyorum ve sonuç çok alakasız oluyor.
Böyle bir durumda sizce bu veri kümesinde bu tip bir düzensizliği nasıl yok edebilirim? Belirtmek isterim ki bu küme içerisindeki değerler zaman zaman -8000 civarlarına da çıkabilmektedir. Yani -8190 aslında bu veri kümesi içerisinde alınabilen bir değer. Bu veri kümesi aslında bir adc'den okunan değer. Absürd değerlerde sature olmuş sensörlerden geliyor gibi düşünebilirsiniz?
Böyle bir durumda nasıl bir yol izlerdiniz?

kimlenbu

#1
standart sapmayı bul, artimetik ortalamayı bul. aralık dışında kalanları ele.7

AO : Aritmetik ortalama
SS : Standart sapma

AO-SS < X < AO+SS

yldzelektronik

Aradaki alakasız değerler bütün sonuçları etkileyecektir.

Ben olsam bu durumda, bir önceki ile karşılaştırır, o değerden daha büyük/küçük ise çöpe atardım. Böylece alakasız değerleri tıraşlamış olursunuz.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

Endorfin35+

10 Bit adc den veri okurken sürekli 1 puanlık salınım sorunum vardı. Örneğin analog voltaj sabit olmasına rağmen sonuc bir okunan değerler 853,854,853,853,854 gibi geziyordu sürekli... Bir sürü filitreleme algoritmasına baktıktan sonra çok basit bir yöntem kullandım. Önceki değer ile karşılaştırmak. Okunan değer önceki değerden 1 eksik yada bir fazla ise dikkate almayarak sorunu hallettim.

yldzelektronik arkadaşın da bahsettiği gibi normalde olmaması gereken  +/-10 dan büyük değerleri okuma sırasında basit bir if yapısı  atın...
"İşi bilen yapar, az bilen akıl verir, bilmeyen eleştirir, yapamayan çamur atar."

Zoroaster

Ilk okudugun deger umarim her defasinda dogru degere denk gelir.
Seytan deliginden kacti.

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

Endorfin35+

#6
Alıntı yapılan: Zoroaster - 24 Haziran 2018, 04:20:42Ilk okudugun deger umarim her defasinda dogru degere denk gelir.

Hocam benim yöntemim için yazdıysan; ilk okunan değerin doğru/yanlış olması sorun teşkil etmiyor. 1024 okuma aralığında gerçek değer 500 olsun. ilk okuma 1000 veya 5000 gelsin. Hadi ikinci okumada yanlış olarak 700 gelsin. üçüncü okumada doğru değer gelecektir. ilk çalışmada 1000-700-500 değerleri alarak sistem sonra hep stabil devam ediyor. sadece 4.-5. okumalarda 501-499 u pass geçiyorum.

Fakat okumalar arasi 300-500 geziyorsa filitrelemeden baska care yok.
"İşi bilen yapar, az bilen akıl verir, bilmeyen eleştirir, yapamayan çamur atar."