2016-03-23 48 views
1

gerçekleştirildi Nasıl bir wav dosyası bir FFT yaptım, bunun bir grafik çizilen ve zirveleri almak için pik utils kullandık ve bunları bir sonra dışarı çıktı diğer.BPM bir kez nasıl FFT ve tepe algılama Python

Buradan BPM'leri (dakika başına vuruş) almak için buradan nasıl geçebilirim?

IFFT yapmak zorunda mıyım? Sanırım, bir zaman içeriğine geri dönmem gerekiyor. Yoksa bir zaman içeriğine geri dönmenin başka bir yolu var mı?

Hiçbir kodun peşindeyim, sadece bir sonraki adımın doğru yönünde itmek istiyorum.

teşekkür ederiz Jackie

+1

@Vorsprung, muhtemelen, bilmen gereken ile çarpın bpm dönüştürmek için bu frekans aralığında

tepeler için bakmak cevap ver. =) – Brett

+0

http://dsp.stackexchange.com/questions/1112/detecting-drum-bpm-in-a-noisy-wav-file – Reti43

+0

Linkiniz için teşekkür ederiz, ancak hala ne yapacağımı bilemiyorum. cevabın bana "o zaman işaret sinyalin uzunluğu ile kabaca eşleştirilen bir zaman sabiti ile" zaman etki alanı zarfı ("kayıp tepe" bunu yapmak için en kolay yoludur) hesaplamak gerekiyordu. " bit? Sinyalin zaman alan zarfını nasıl hesaplarım? Zaten tespit ettim ve zirveleri buldum, bu yüzden "kayıplı tepe" ye ihtiyacım var mı? –

cevap

0

saniyede Tepeden tepeye mesafenin ölçün ve bu sayı ile 60 böler. Örneğin, tepeden tepeye = 0,5 saniye tepe = 60/0.5 = 120 bpm. Bu, düzenli dans müziği üzerinde bir ölçüde çalışacak, ancak diğer türlerde o kadar iyi olmayacaktır.

Üzgünüz, sorunuzu tamamen yanlış anladım. Yukarıdakiler, audacity'de gördüğünüz gibi bir dalga formunda nasıl yapılacağıdır.

FFT, frekans etki alanında olduğu gibi. Alt frekans aralığında zirvelere bakın. Müzik 60 ila 180 bpm aralığındaysa, o zaman bu 1 ila 3 Hz'lik frekanslara karşılık gelir. Yani tepe frekansı Bu cevap ise 60. Yani 2 Hz * 60 = 120 bpm

+0

Cevabınız için teşekkür ederiz, zirveden zirve mesafesine saniye cinsinden ölçmek için, bir IFFT mi yapmam gerekiyor? veya FFT verilerinden hala geçerli zaman değerleri var mı? –

+0

Oh lol evet dalgası dalgalanmadı. Tamam, teşekkürler, zaten zirvelerim var, daha sonra BPM'yi bu zirvelerden nasıl hesaplayabilirim? –

+0

tamam teşekkür ederim, ama birden fazla zirveye sahip olduğunuzda ne yapıyorsunuz, bunların ortalamasını alıyorsunuz ve sonra bunu 60'la (BPM) elde etmek için çarpıyorsunuz? –