Значения амплитуды звука PCM?

Я начинаю с аудиозаписи на своем смартфоне Android.

Я успешно сохранил голосовые записи в файл PCM. Когда я анализирую данные и распечатываю 16-битные значения со знаком, я могу создать график, подобный приведенному ниже. Однако мне не известны значения амплитуды по оси Y.

  1. В каких именно единицах измерения амплитуды? Значения подписаны 16-битными, поэтому они должны находиться в диапазоне от -32K до +32K. Но что представляют собой эти ценности? Децибелы?

  2. Если я использую 8-битные значения, тогда значения должны находиться в диапазоне от -128 до +128. Как это будет отображаться на громкость / «громкость» 16-битных значений? Вы бы просто использовали отображение квантования 16: 1?

  3. Почему есть отрицательные значения? Я бы подумал, что полная тишина приведет к значениям 0.

Если кто-то может указать мне на веб-сайт с информацией о том, что записывается, я был бы признателен. Я нашел веб-страницы в формате файла PCM, но не то, что значения данных .

введите описание изображения здесь


person stackoverflowuser2010    schedule 04.05.2011    source источник
comment
гнида: 16-битное значение со знаком +/- 32K.   -  person AShelly    schedule 05.05.2011
comment
Исправлено, спасибо, что указали на это.   -  person stackoverflowuser2010    schedule 05.05.2011


Ответы (5)


Подумайте о поверхности микрофона. Когда он молчит, поверхность неподвижна в нулевом положении. Когда вы говорите, воздух вокруг вашего рта начинает вибрировать. Вибрации похожи на пружины и имеют движение в обоих направлениях, например, вперед и назад, или вверх и вниз, или внутрь и наружу. Вибрации в воздухе заставляют поверхность микрофона также вибрировать, а также двигаться вверх и вниз. Когда он движется вниз, это может быть измерено или получено положительное значение. Когда он движется вверх, это может быть выбрано как отрицательное значение. (Или может быть наоборот.) Когда вы прекращаете говорить, поверхность возвращается в нулевое положение.

Какие числа вы получите из данных записи PCM, зависит от коэффициента усиления системы. Для обычных 16-битных выборок диапазон составляет от -32768 до 32767 для максимально возможного отклонения вибрации, которое может быть записано без искажений, отсечения или переполнения. Обычно усиление устанавливается немного ниже, чтобы максимальные значения не находились на грани искажения.

ДОБАВЛЕН:

8-битный звук PCM часто является беззнаковым типом данных с диапазоном от 0 до 255, со значением 128, указывающим на «тишину». Таким образом, вам нужно добавить / вычесть это смещение, а также масштабировать примерно на 256 для преобразования между 8-битными и 16-битными звуковыми сигналами PCM.

person hotpaw2    schedule 04.05.2011
comment
Так безразмерна ли ось Y (амплитуда)? Если это так, то может ли приложение воспроизведения интерпретировать значение и воспроизводить сигнал с заданной громкостью? - person stackoverflowuser2010; 05.05.2011
comment
@ stackoverflowuser2010: Если у вас нет откалиброванного микрофона и канала записи с известным усилением, значения амплитуды считаются безразмерными. например при воспроизведении кто-то будет играть с ручкой регулировки громкости на произвольную настройку (независимо от того, что звучит хорошо), и AGC, вероятно, также добавит неизвестное усиление к пути записи. - person hotpaw2; 05.05.2011
comment
Я до сих пор не понимаю, что происходит в конце записи. Кажется, есть много переменных с микрофоном и аналого-цифровым преобразователем (АЦП) для сопоставления шумов с диапазоном PCM (будь то от +1 до -1 или от + 32K до -32K). Рассмотрим два источника звука: нормальная речь около 40 дБ и реактивный двигатель около 120 дБ. Кто решит, что значение PCM + 32K соответствует 120 дБ или 40 дБ? Это настройка решена звукорежиссером или блоком АЦП, что ли? Есть ли способ в Android / iPhone установить это сопоставление диапазона? - person stackoverflowuser2010; 05.05.2011
comment
Да, есть много переменных. Коэффициент усиления может определяться недокументированным алгоритмом AGC (автоматическая регулировка усиления). - person hotpaw2; 05.05.2011
comment
@ stackoverflowuser2010 Вы путаете цифровой мир и аналоговый мир. Нет корреляции с выборочным значением и уровнем децибел. В основном, если микрофон и схема записи предназначены для записи до 40 дБ, то уровень дискретизации + 32k (или -32k) будет близок к пиковому уровню звука 40 дБ. Переместите микрофон подальше от источника, и тот же пик будет оцифрован ниже, чем + 32k. И это по-прежнему игнорирует влияние схемы АРУ! - person staticsan; 05.05.2011
comment
@ stackoverflowuser2010 Точно так же цифровой сигнал, колеблющийся между + 32k и -32k, может быть 25 дБ в моих наушниках, но я легко могу сделать его 90 дБ, используя мощный аудиоусилитель. Но он все еще достигает максимума в 32k. - person staticsan; 05.05.2011
comment
Отлично! Спасибо за это. Меня не так беспокоят единицы измерения, но я не понимал, что означает отрицательное значение. Объяснение с точки зрения вибрации имеет смысл. Значит, значение -1.0f так же громко, как значение + 1.0f? Но с точки зрения частоты вибрации, если вы попытаетесь смешать два значения, они компенсируются и дадут вам (по сути) тишину. - person Bob C; 29.04.2016

Необработанные числа являются артефактом процесса квантования, используемого для преобразования аналогового аудиосигнала в цифровой. Имеет смысл думать об аудиосигнале как о вибрации около 0, простирающейся до +1 и -1 для максимального отклонения сигнала. В остальном вы получаете клиппинг, который искажает гармоники и звучит ужасно.

Однако компьютеры не очень хорошо работают с дробями, поэтому для отображения этого диапазона используются дискретные целые числа от 0 до 65536. В большинстве подобных случаев +32767 считается максимальным положительным отклонением диафрагмы микрофона или динамика. Не существует корреляции между точкой отсчета и уровнем звукового давления, если только вы не начнете учитывать характеристики схем записи (или воспроизведения).

(Кстати, 16-битный звук является очень стандартным и широко используется. Это хороший баланс отношения сигнал / шум и динамического диапазона. 8-битный звук является шумным, если вы не выполните какое-то необычное нестандартное масштабирование.)

person staticsan    schedule 05.05.2011

Здесь много хороших ответов, но они не дают прямого ответа на ваши вопросы в удобной для чтения форме.

В каких именно единицах измерения амплитуды? Значения подписаны 16-битными, поэтому они должны находиться в диапазоне от -32K до +32K. Но что представляют собой эти ценности? Децибелы?

В значениях нет единицы измерения. Они просто представляют собой число, полученное аналого-цифровым преобразователем. Показатели аналого-цифрового преобразователя зависят от характеристик микрофона и предварительного усилителя.

Если я использую 8-битные значения, тогда значения должны находиться в диапазоне от -128 до +128. Как это будет отображаться на громкость / «громкость» 16-битных значений? Вы бы просто использовали отображение квантования 16: 1?

Я не понимаю этого вопроса. Если вы записываете 8-битный звук, ваши значения будут 8-битными. Вы конвертируете 8-битный звук в 16-битный?

Почему есть отрицательные значения? Я бы подумал, что полная тишина приведет к значениям 0

Диафрагма микрофона вибрирует в обоих направлениях и в результате создает положительное и отрицательное напряжение. Значение 0 означает тишину, поскольку это означает, что диафрагма не движется. См. как работают микрофоны

Дополнительные сведения о том, как звук представлен в цифровом виде, см. здесь.

person Error 454    schedule 11.05.2011
comment
Что касается моего вопроса о 8-битном звуке, я хотел спросить, как истинный слышимый уровень отображается на 8-битный диапазон. Если газонокосилка на 80 дБ выдает 16-битное значение амплитуды +20K, будет ли тот же шум 80 дБ производить 8-битное значение амплитуды, скажем, +78? - person stackoverflowuser2010; 12.05.2011
comment
В идеале - да (в зависимости от того, подписан / не подписан звук). Ответ зависит от указанного диапазона микрофона, который вы используете, и от того, насколько хорошо они настроили предварительный усилитель для отображения динамического диапазона уровней выходящего из него напряжения. - person Error 454; 12.05.2011

Why are there negative values? I would think that complete silence

приведет к значениям 0

Диафрагма микрофона вибрирует в обоих направлениях и в результате создает положительное и отрицательное напряжение. Значение 0 означает тишину, поскольку это означает, что диафрагма не движется. Посмотрите, как работают микрофоны

Небольшое уточнение: фиксируется положение диафрагмы. Молчание возникает, когда нет вибрации, когда нет изменения положения. Таким образом, вибрация, которую вы видите, толкает воздух и создает изменения давления воздуха с течением времени. Воздух больше не выталкивается на верхние и нижние пики какой-либо вибрации, поэтому пики приходятся на тишину. Самая громкая часть сигнала - это когда позиция изменяется быстрее всего, то есть где-то посередине пиков. Скорость, с которой диафрагма перемещается от одного пика к другому, определяет величину давления, создаваемого диафрагмой. Когда верхний и нижний пики уменьшены до нуля (или какого-то другого общего числа), тогда нет никакой вибрации и звука вообще. Кроме того, когда диафрагма замедляется, так что между пиками остается больше времени, создается или записывается меньшее звуковое давление.

Я рекомендую Справочник по звукоусилению Yamaha для получения дополнительной информации чтение глубины. Понимание идеи исчисления также поможет понять звук и вибрацию.

person aeriform    schedule 26.08.2011

16-битные числа - это значения аналого-цифрового преобразователя с вашего микрофона (вы это знали). Также знайте, что усилитель между вашим микрофоном и аналого-цифровым преобразователем имеет автоматическую регулировку усиления (AGC). АРУ будет активно изменять усиление микрофонного сигнала, чтобы предотвратить попадание слишком высокого напряжения на аналого-цифровой преобразователь (обычно <2 В постоянного тока). Кроме того, имеется развязка постоянного напряжения, которая устанавливает входной сигнал в середине диапазона аналого-цифрового преобразователя (скажем, 1 В постоянного тока).

Таким образом, когда в микрофон нет звука, усилитель AGC отправляет на аналого-цифровой преобразователь ровный линейный сигнал 1,0 В постоянного тока. Когда звуковые волны попадают в микрофон, он создает соответствующую волну переменного напряжения. Усилитель AGC принимает волну переменного напряжения, центрирует ее на уровне 1,0 В постоянного тока и отправляет на аналого-цифровой преобразователь. A / D выборки (измеряет напряжение постоянного тока, скажем, 44000 в секунду) и выдает +/- 16-битные значения напряжения. Итак, -65 536 = 0,0 В постоянного тока и +65 536 = 2,0 В постоянного тока. Значение +100 = 1,00001529 В постоянного тока и -100 = 0,99998474 В постоянного тока на АЦП.

+ Значения выше 1,0 В постоянного тока, -Значения ниже 1,0 В постоянного тока.

Обратите внимание, что большинство аудиосистем используют логарифмическую формулу для логарифмической кривой звуковой волны, чтобы человеческое ухо могло лучше ее слышать. В цифровых аудиосистемах (с АЦП) цифровая обработка сигнала накладывает эту кривую на сигнал. Чипы DSP - это большой бизнес, TI заработала состояние, используя их для всех видов приложений, а не только для обработки звука. DSP могут обрабатывать очень сложные математические операции с потоком данных в реальном времени, который подавит процессор ARM7 iPhone. Предположим, вы отправляете импульсы 2 МГц на массив из 256 ультразвуковых датчиков / приемников - вы поняли.

person user3523897    schedule 11.04.2014