Gerçek zamanlı eğim ve tepe saptama ve hesaplama


9

500 khz'de örneklediğim bir sinyal var. Gelen verilerdeki yükselişi, düşüşü ve zirveyi tespit etmeye çalışıyorum. Zirvenin tabanı 250 usec veya 2.5msn olabilir, genlik gürültü zemininin üstünde 6db veya 15db olabilir. Ne yazık ki iyi snr yok. Sinyalin dc seviyesi sabit değildir, ancak ac bileşeninden çok daha yavaş hareket eder.  

Karar noktasında, yükseliş ve düşüşün eğimini bilmem gerekiyor. Bu zor bir gerçek zamanlı sistemdir ve aşağı eğim dc seviyesine ulaştıktan sonra 100usec'de gerçekten bir karar vermeliyim. 

Nasıl verimli bir algoritma verimli bir şekilde uygulamak için öneriler arıyorum.  

Şu anda bir koşu ortalama (son 25 veri noktası birlikte eklendi) yapmak ve eğilim tespit etmeye çalışın. Eğilimi tespit ettikten sonra eğilimi azaltmaya başladım ve bunu yaptıktan sonra belki başka bir 50 örnek daha toplayıp hesaplamaya başladım. 

Gürültü artık bu algoritmayı kolayca vidalıyor, dolayısıyla soru. 

Güncelleme

Başkalarının yararı için, Hareketli Ortalama ve ardından entegratör uyguladım. Son 64 veriyi ortalama olarak hareket ettirmek yeterince yumuşattı, ancak yükselişi bir dereceye kadar kaybetti. Tamam, büyük değil ama Tamam çalışıyor.


Mevcut algoritmanızın başarısız olduğu bir veri dizisinin çizimini gönderebilir misiniz?
Jim Clay

Bu tür şeyleri önemli gürültüye rağmen yapmak oldukça zordur. Juancho'nun farklılaştırıcı önerisi muhtemelen iyidir.
Daniel R Hicks

Yanıtlar:


5

Sınırsız bir farklılaştırıcı ile başlamalısınız (farklılaştırıcıya eşdeğer ve ardından düşük geçişli bir filtre). Farklılaştırıcı, düşük frekans eğilimini kaldıracak ve piklerinize ve eğimlerinize keskin bir şekilde cevap verecektir. Alçak geçiren bileşen, kesme frekansının ötesindeki gürültüyü kaldıracaktır.

Kesim frekansınızı, eğimleriniz için temiz darbeler elde edecek şekilde tasarlamalısınız.

Pozitif eğimler, pozitif darbeler olarak yavaşlar; negatif eğimler olarak negatif eğimler ve tepe noktası pozitif ve negatif arasındaki sıfır geçişine karşılık gelecektir.

Bu tip filtre normalde FIR filtresi olarak uygulanır. Daha sonra filtreniz için örnek sayısı, gerçek zamanlı kısıtlamalarınıza, kesim frekansındaki keskinliğe ve kesim frekansının kendisine bağlı olacaktır.


DSP konusunda çok bilgili değilim. Beni olası bir uygulamaya yönlendirebilir misiniz? Cevabınıza ve sınırlı bilgime dayanarak, bağlantının ( holoborodko.com/pavel/numerical-methods/numerical-derivative/… ) tam olarak bahsettiğiniz şeyi yaptığını düşünüyorum . Eğer böyle bir yaklaşım kullanacaksam, bilmiyorum 1) Frekanslarımı nasıl belirlerim? 2) Filtre katsayıları nasıl seçilir?
Ktuncer

Ayrıca aşağıdaki bağlantı benzer bir sorunu çözer ve iyi bağlantılar içerir. dsprelated.com/showmessage/123740/1.php
Ktuncer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.