2011-11-06 9 views
7

Aby określić bogactwo dźwięku, chciałbym określić liczbę harmonicznych w próbce muzyki. W tym celu korzystam z biblioteki Processing z biblioteką, która daje mi pełne spektrum z FFT. Zastanawiam się, jak policzyć wszystkie piki w widmie produkowanym przez FFT, nie jestem nawet zainteresowany częstotliwością podstawową.Harmoniczne liczą się w muzycznej próbce

Odpowiedz

3

Istnieje wiele sposobów na osiągnięcie tego w zależności od potrzeb.

Jeśli chcesz policzyć każdy pik, powinieneś przetestować wszystkie częstotliwości w spektrum, pamiętając o tym, czy intensywność wzrasta, czy maleje. Za każdym razem, gdy zauważysz zmianę kierunku od wzrostu do zmniejszenia, zwiększasz licznik pików. Należy jednak pamiętać, że będą to również bardzo słabe wartości szczytowe, które mogą, ale nie muszą być tym, czego potrzebujesz. Możesz określić minimalny limit przyrostu i spadku, który ma zostać zarejestrowany.

Alternatywnie, możesz znaleźć linię bazową dla intensywności sygnału (używając średniej w najprostszym przypadku), a następnie zliczyć liczbę dodatnich wartości odstających (z pewnym konfigurowalnym minimalnym odchyleniem od linii podstawowej). Prawdopodobnie uzyskasz lepsze wyniki, jeśli zmodyfikujesz to podejście, wykorzystując linię bazową zależną od częstotliwości i minimum, aby uwzględnić stopniowy spadek intensywności przy wyższych częstotliwościach (ponownie, zależy to od konkretnego sygnału i potrzeb, czy byłoby to przydatne). Prostym sposobem na to jest podzielenie widma na pasma (wystarczająco małe, aby móc przyjąć mniej lub bardziej płaską dystrybucję energii w każdym paśmie) i użyć innej linii podstawowej i minimalnej dla każdego pasma.

Powiązane problemy