#c# #audio #naudio
#c# #Аудио #naudio
Вопрос:
Я использую библиотеку NAudio для получения данных с микрофона, и мне это удалось. Теперь я хочу рассчитать эти данные в децибелах.
value = 20* Math.Log10(device.AudioMeterInformation.MasterPeakValue);
Это правильный способ их вычисления?
Комментарии:
1. Вам нужны значения в формуле. Децибелы — это ссылка между двумя значениями (не одним), которая является относительным измерением. Если вам нужно абсолютное значение, то вам нужен dbm, который использует стандартное значение для ссылки. Библиотека NAudio, которая просто считывает значения напряжения с вашего микрофона, и вам нужно будет откалибровать значение по стандарту.
2.@jdweng Так, например. Если я хочу значение dBu, все, что мне нужно сделать, это:
value=20*Math.Log10
(device.AudioMeterInformation.MasterPeakValue/0.775)
; Vo — для dBu равно 0,775, это правильно? Также у меня есть вопрос. Я предполагаю, чтоdevice.AudioMeterInformation.PeakValues[] are Peak Values
сигнала. Но:device.AudioMeterInformation.MasterPeakValue
является ли среднеквадратичное значение?3. 0,775 — это среднеквадратичное значение, поэтому вам нужно сравнить яблоки с яблоками. Как только вы получите среднеквадратичное значение, вы можете сравнить среднеквадратичное значение с пиковым, используя db. Как пик может быть среднеквадратичным значением? Измеритель выдает пик, поэтому вы не выполняете обрезку и не теряете качество. Отсечение из-за отсутствия высокочастотного выхода.