Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: Mucit23 - 19 Ekim 2015, 13:54:53

Başlık: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: Mucit23 - 19 Ekim 2015, 13:54:53
Selamlar.

Aşağıdaki konuda basınç sensörleri üzerinde çalışma yapıyordum. https://www.picproje.org/index.php/topic,58614.msg477195/topicseen.html#msg477195 (https://www.picproje.org/index.php/topic,58614.msg477195/topicseen.html#msg477195)

Sensörden gelen bilgileri ADC'ye giriyorum. Amacım ADC'de 100ms aralıklarla yeni değerler elde etmek.

Ham ADC değerlerini sağlam bir filtreden geçirmek gerekiyor. Çünkü ADC den okunan 12 bitlik ham veri çok değişken. Gelen sinyal çok gürültülü yani 
0-4096 arası aldığım dijital değerin onlar hanesini bile takip etmekte zorlanıyorum.

Benim amacım 100ms aralıklarla yeni veri elde etmek. Bu 100ms içerisinde olabildiğince çok örnek alıp filtreleme algoritmasına sokmam lazım.
Şimdilik STM32'de timer ile ADC'yi 10Khz'de tetikledim. ADC işini bitirdiğinde DMA TC interrupt ile veriyi alıyorum. Saniyede 10000 yeni  örnek geliyor DMA'dan .Bende her 1000 örneği alıp aritmetik ortalamasını alıyorum.

Fakat bu filtreleme çeşidinden memnun değilim. 1000 defa örnek alıp ortalama almak ile 100 defa örnek alıp ortalama almak arasında pek fazla değişen birşey görmüyorum. Arada farklı bir filtreleme algoritması uygulamam gerekir. Bunun için ne önerirsiniz.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: selimkoc - 19 Ekim 2015, 14:09:13
https://www.youtube.com/watch?v=biY7F-tLwE8 (https://www.youtube.com/watch?v=biY7F-tLwE8)
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: vsalma - 19 Ekim 2015, 14:56:08
Gurutluleri suzmek icin mean yerine median alinabilir. Her 10 ornegin medianini alip sonra cikan sonuclari ortalama filtreden gecirebilrisiniz.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: ahmet_zxc - 19 Ekim 2015, 15:22:40
basınçla ilgili konunu da takip ediyorum. benim düşüncem senin problemin adc yada filtrede yada baskıdevrede değil. beslemede.

beslemeyi hassas ve stabil yapmaya çalış. 5.000v üretmeye bak. yada 3,3000 gibi.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: alicavuslu - 19 Ekim 2015, 16:24:05
Öncelikle alçak geçiren süzgeç kullanıp daha sonra aşağı örnekleme işlemi yapmanız gerekmektedir. Ki bu şekilde örnekleme frekansınızıda istediğiniz aralığa çekebilirsiniz.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: muhittin_kaplan - 19 Ekim 2015, 18:19:34
moving average kullan.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: Mucit23 - 19 Ekim 2015, 18:37:43
Çeşitli uygulamalarla biraz yavaşlattım. Şuanda fena değil. Ama yarın sabah farklı algoritmalar için tekrar bakayım
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: engerex - 19 Ekim 2015, 18:59:05
Pil voltajı ölçtüğünde salınım durumu nedir?
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: Okan AKÇA - 19 Ekim 2015, 20:20:22
Besleme, adc nin tipi sensor çıkış dalgalanmasi gibi bircok etken  buna neden olabilir en basit filitre adc 1 veya 2 birim buna siz karar verin fazla olmadıkça gelen bilgiyi işleme almayın zaten  fazla bir dalgalanma oluyorsa farkli nedenlerden kaynaklanmaktadır
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: muhittin_kaplan - 19 Ekim 2015, 20:40:12
12 bit ister istemez çok oynak olur bunun için 128-256 derinlik hatta 1024 derinlikli MA kullan
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: z - 20 Ekim 2015, 07:48:46
Peki ADC ile saniyede 20 bin örnek alıyoruz ve incelemeye aldığımız sinyal 10kHz.

Gürültüden analog tarafta kurtulamıyoruz çünkü sensör çıkışı gürültülü. Ama sensorde sorun yok çünkü ölçtüğümüz büyüklük gürültülü.

Ne yapacağız da gürültünün etkisini en aza indireceğiz?  Sample sayısını artıramıyoruz varsayın.


Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: kartal0689 - 20 Ekim 2015, 08:46:56
Arkadaşlar bunun için DSP işlemcileri var. Ben hiç uygulamasını yapmadım fakat dsPIC serisi işlemci kullandığım için datasheet lerinde okuyordum. Digital Signal Processing bence bu konu size yardım edebilir.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: esensoy - 20 Ekim 2015, 08:56:21
Mesela alınan örnekle bir önceki örneğin farkını alıp 0 < x < 1 gibi bir x ile çarpıp bir önceki örnek e eklesek işe yarar mı? P kontrole benzer bir algoritma yani,

Alıntı yapılan: z - 20 Ekim 2015, 07:48:46
Peki ADC ile saniyede 20 bin örnek alıyoruz ve incelemeye aldığımız sinyal 10kHz.

Gürültüden analog tarafta kurtulamıyoruz çünkü sensör çıkışı gürültülü. Ama sensorde sorun yok çünkü ölçtüğümüz büyüklük gürültülü.

Ne yapacağız da gürültünün etkisini en aza indireceğiz?  Sample sayısını artıramıyoruz varsayın.



Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: bluekid - 20 Ekim 2015, 09:17:18
http://www.mcu-turkey.com/adc-kullanimi-uzerine/ (http://www.mcu-turkey.com/adc-kullanimi-uzerine/)
şöyle güzel bir yazı var konu hakkında
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: iyildirim - 20 Ekim 2015, 11:41:27
Alıntı yapılan: z - 20 Ekim 2015, 07:48:46
Peki ADC ile saniyede 20 bin örnek alıyoruz ve incelemeye aldığımız sinyal 10kHz.

Gürültüden analog tarafta kurtulamıyoruz çünkü sensör çıkışı gürültülü. Ama sensorde sorun yok çünkü ölçtüğümüz büyüklük gürültülü.

Ne yapacağız da gürültünün etkisini en aza indireceğiz?  Sample sayısını artıramıyoruz varsayın.

Üçkağıtçı skopların yaptığını yapıp, 20Khz ADC ile 100-200 Ksps e çıkabiliriz.



Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: boreas - 20 Ekim 2015, 18:00:18
şu tarz bir filitrede yapabilirsin sistemde maksimum yükselme anlık ne mesela 0'dan 100'e kadar yani delta 100 ama gelen birim 0'dan 2000 . Sistemde böyle bir yükselmeye imkan yoksa 2000'i ihmal et bu işlem ard arda 20 kez oluyorsa, 20.yi iptal etmez sistemi kontrol edersin gibi .
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: Erol YILMAZ - 20 Ekim 2015, 19:28:41
Moving Avarage güzel fakat sonuçların çok gecikmemesi için biraz daha akıllı ortalama alırsak güzel sonuçlar çıkabilir.

Netten baktım, borsacıların kullandığı Kaufman's Adaptive Moving Average (KAMA) var imiş...

"Making a moving average responsive to volatility changes results in a dynamic, more accurate indicator."

(http://d.stockcharts.com/school/data/media/chart_school/technical_indicators_and_overlays/kaufman_s_adaptive_moving_average/kama-1-qqqexam.png)
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: muhittin_kaplan - 21 Ekim 2015, 15:42:32
Hocam macd, smwma,sma,lwma hepsi temelinde ma mevcut. Forex le alakali mt4 programlamada epeyce kullandim.
Başlık: Ynt: Yazılımsal ADC filtreme algoritması hakkında
Gönderen: Icarus - 21 Ekim 2015, 18:20:23
$1 daha verip adam gibi bir giriş katı yapsanız daha iyi olmaz mı ?
CPU time'mınıza yazık