Geçmişte spektral akı kullandım ve iyi çalışıyor gibi görünüyor. Temel fikir, önem verdiğiniz bantlarda sinyalin bir spektrogramını oluşturmaktır. Bize frekans y ekseni üzerinde ve zaman, x ekseni üzerinde olduğunu varsayalım şöyle .
Bu, spektrogramınızın bir matris olduğu anlamına gelir. Her sütun, sinyal zamanınızdaki bir anlık çekimin FFT'sinin mutlak değerini temsil eder ve her satır bir banttan gelen enerjinin zaman içinde nasıl değiştiğini temsil eder.
Şimdi, sütun farkını almanız yeterlidir. Yani, bir sütun alın ve kendisinden önceki sütunu çıkarın ve tüm sütunlar için yapın. (Başlangıç sütunlarını açıkça yalnız bırakmak). Sonra tüm gruplarda toplayın. Yani, tüm satırları bir araya getirin.
Sonuç olarak sinyal başlangıçlarınızı kodlayan bir 1-D sinyali elde edersiniz . Bu size sesinizin nerede başladığını söyleyecektir.
DÜZENLE:
Artık başlangıçları algıladığınıza göre, tam tersini tespit etmek istiyorsanız (yani, bir sinyalin aktiviteye sahip olmasından hiçbirine gitmediğinde), spektral akı aslında size bu bilgileri verir. Nerede bir başlangıç geçirirseniz, pozitif bir zirveye sahip olacaksınız ve nerede daha iyi bir kelimeniz olmadığı için (daha iyi bir kelime olmaması için) negatif bir zirveye sahip olacaksınız.
Sinyalimin toplam başlangıç ve bitiş zamanlarını işaretlemek için ilk pozitif zirveyi ve son negatif zirveyi alırdım.