Analog bir sinyalim var ve kenarları/'dalga formlarını' tespit etmek istiyorum. Tespit edilecek dalga formları, bazen aşağıdaki ilk örnekte olduğu kadar basittir (basit yükselen kenar), fakat aynı zamanda daha karmaşıktır (bir önceki küçük 'blob' ile yükselen bir kenar gibi). Sinyal gürültüye ve istenmeyen küçük sinyallere sahiptir, bu nedenle 'eşleşme notu' 0.0 ile 1.0 arasında bir eşleşme bir eşik belirlemekte yarar olacaktır. Diğer bir gereksinim, algılama süresidir: Algoritma, görüntüdeki kırmızı lekeli daire gibi, 1 'yükselme süresi' içinde 'tetiklenmelidir'. Mümkün olduğunca erken, ancak maksimum ulaşılmadan önce.Sinyal kenarını tespit etmek için desen uydurma?
Her şey bir STM32 ARM kontrol cihazında yürütülür, sinyal saniyede 100 puan alır. Bir kenarın yükselen kenarı 0,5 - 2 saniye sürdüğünden, 'bakılacak' veri aralığı 250 - 500 civarında veri noktası olacaktır.
Korelasyonu ve FFT'leri okudum, ancak konuyu doğru anlarsam, bu sadece periyodik dalga formları için geçerli olacaktır (FFT sinyalin/cos'un parçalarına sinyalleyeceği gibi).
FFT ve korelasyon doğru yolla mı, yoksa gereksinimimiz için daha iyi yöntemler var mı? Yolumuz doğruysa, konuya kolay bir giriş için literatür/arama terimleri öneriliyor mu?
Düzenleme: Gerçek verilerden örnekler ekledim. Picture 2'da algılaması kolay bir kenar görebilirsiniz. Bu kenarlarda, temel bir kenar saptaması kullanarak sorunumuz yoktur.
Picture 3 numaralı yazıcımızda sorunumuz var: Güncel algoritmamız 2565'lerde bir kenar algılıyor, ancak 2574'lerde bir algılama istiyoruz. İlk 'blob' her zaman, algılanacak kenarla karşılaştırıldığında sinyal seviyesinin yaklaşık% 40 -% 85'inde görülür.
Bu sorudan önce mutlaka bir cevap verilebilir: gerçek verileri göster. Deneyimden, gerçek verilerin bir OP skeçleri gibi * asla * olmadığını biliyorum. –
Bunun için bir dalgacık paket dönüşümü atmanızı öneririm, aldığınız şeyi görün ve çıktıdaki kalıpları bulmaya çalışın. Https://en.wikipedia.org/wiki/Wavelet_packet_decomposition dosyasının alt kısmı, denemeniz gereken MATLAB, R, C++ ve Java'daki mevcut uygulamalara bağlantı sağlar. Aşırı pürüzsüz olmasından kaçınmanızı tavsiye ederim. 4 musluk Daubechies dalgacık muhtemelen işe yarayacak. (Haar dalgacık çok serttir - yükselen kenarı çok iyi temsil etmeyecektir.) – btilly