2014-06-06 13 views
7

Dokumentacja dla obu tych metod jest bardzo ogólna wszędzie tam, gdzie wyglądam. Chciałbym wiedzieć, na co dokładnie patrzę ze zwróconymi tablicami, które otrzymuję z każdej metody.zrozumienie getByteTimeDomainData i getByteFrequencyData w web audio

Dla getByteTimeDomainData, z jakim przedziałem czasowym pokrywa się każde przejście? Wierzę, że większość oscyloskopów obejmuje rozpiętość 32 milisekund dla każdego przejścia. Czy to również jest objęte tutaj? W przypadku rzeczywistych wartości samych elementów zakres wydaje się wynosić 0-255. Czy odpowiada to wartości -1 - +1 woltów?

Dla getByteFrequencyData częstotliwości objęte są oparte na częstotliwości próbkowania, więc każdy indeks jest faktyczną częstotliwością, ale co z rzeczywistymi wartościami elementów? Czy istnieje zakres dB, który jest równoważny wartościom zwróconym w zwróconej tablicy?

Odpowiedz

13

getByteTimeDomainData (i nowszych getFloatTimeDomainData) zwracają tablicę do żądanego rozmiaru - jego frequencyBinCount, która jest obliczana jako połowę żądanej fftSize. Ta tablica jest oczywiście na obecnym sampleRate wyeksponowanym na AudioContext, więc jeśli jest to domyślne 2048 fftSize, frequencyBinCount będzie 1024, a jeśli twoje urządzenie pracuje z częstotliwością 44.1 kHz, to będzie to równało około 23 ms danych.

Wartości bajtów mieszczą się w przedziale 0-255, a tak, że odwzorowują od -1 do +1, więc 128 oznacza zero. (Nie jest to wolt, ale wartości bez jednostek w pełnym zakresie).

Jeśli używasz getFloatFrequencyData, zwrócone wartości są podane w dB; jeśli używasz wersji Bajt, wartości są mapowane na podstawie minDecibels/maxDecibels (patrz opis minDecibels/maxDecibels).

+0

jak otrzymałeś 2,3 ms z częstotliwościBinCountCount z 1024 i częstotliwością próbkowania 44,1 kHz? –

+0

Ooops, dziesięciokrotnie! Powinienem był powiedzieć 23 milisekundy. 1024 próbki podzielone przez 44100 próbek na sekundę (aka Hertz) są równe 0,023219 ... sekund. – cwilso

+0

Dlaczego "frequencyBinCount" jest używane jako szerokość danych domeny czasu? Czy istnieje jakiś związek między oknem w dziedzinie czasu a licznikiem częstotliwości dla fft, którego tu brakuje? – JoeRocc

Powiązane problemy