2011-11-06 23 views
7

Bir sesin zenginliğini belirlemek için, bir müzik örneğindeki harmonik sayısını belirlemek istiyorum. Bunun için FFT ile tam bir spektrum veren Minim Kitaplığı ile İşleme işleme kullanıyorum. FFT tarafından üretilen spektrumdaki tüm zirvelerin nasıl sayılacağını merak ediyorum, temel frekansla bile ilgilenmiyorum.Bir müzik örneğinde harmonikler sayılır

cevap

3

İhtiyaçlarınıza bağlı olarak bunu gerçekleştirmenin birçok yolu vardır.

Her zirveyi saymak isterseniz, yoğunluğun arttığını veya azaldığını hatırlayarak spektrumdaki tüm frekansları yinelemelisiniz. Her zamankinden arttıkça artma doğrultusundaki değişimi fark ettiğinizde tepe sayacı artırın. Bununla birlikte, bunun ihtiyacınız olan veya olmayabilecek olan çok zayıf zirveleri de içereceğini unutmayın. Bir pikin kaydedilebilmesi için bir artış ve azalışın ne kadar olacağı konusunda bir minimum sınır koyabilirsiniz.

Alternatif olarak, sinyalinizin yoğunluğu için bir taban çizgisi bulabilirsiniz (en basit durumda ortalamayı kullanarak) ve sonra pozitif sapmaların sayısını (temel çizgiden bazı yapılandırılabilir minimum sapma ile) hesaplayabilirsiniz. Bu yaklaşımı, frekansa bağımlı taban çizgisi kullanmak için değiştirirseniz ve muhtemelen daha yüksek frekanslarda yoğunluğun kademeli olarak düşmesini hesaba katarsanız, daha iyi sonuçlar elde edersiniz (yine, bu sizin özel sinyaline ve bunun kullanışlı olup olmayacağına bağlıdır). Bunu yapmanın basit bir yolu, spektrumunuzu bantlara bölmektir (her bantta az ya da çok düz enerji dağılımını üstlenebilecek kadar küçüktür) ve her bir bant için farklı taban çizgisi ve minimum kullanır.