Почему значения, возвращаемые из getFloatFrequencyData, отрицательные?

Я хочу получить данные с микрофона и передать их узлу анализатора для извлечения частотных данных. Я некоторое время изучал Web Audio Api и GetUserMedia, но не мог понять, почему все значения в консоли отрицательны. Разве не должны быть и положительные значения? Каково значение этих отрицательных значений?

navigator.mediaDevices.getUserMedia({audio: true, video:false}).then(function(stream){               
              aContext = new AudioContext();
              analyser = aContext.createAnalyser();
              microphone = aContext.createMediaStreamSource(stream);
              microphone.connect(analyser);
              analyser.connect(aContext.destination);
              LoopFunc();
          });                    

     var LoopFunc = function (){
          setInterval(function(){
              frequencyData = new Float32Array(analyser.frequencyBinCount);
              analyser.getFloatFrequencyData(frequencyData);
              console.log(frequencyData);                  
          },100);
      }

person Amit Makashir    schedule 14.06.2017    source источник


Ответы (1)


из спецификации

getFloatFrequencyData

Копирует текущие данные о частоте в переданный массив с плавающей запятой. Если в массиве меньше элементов, чем FrequencyBinCount, лишние элементы будут удалены. Если в массиве больше элементов, чем FrequencyBinCount, лишние элементы будут проигнорированы.

Данные о частоте представлены в дБ.

что затем приводит к вопросу: Что означает отрицательный означают цифры на шкале децибел?

person gman    schedule 16.06.2017