Каковы линейные значения PCM - PullRequest
1 голос
/ 24 июля 2010

Я работаю со звуком в iPhone OS и немного растерялся.

В настоящее время я получаю данные из моего аудио буфера в виде значений pcm в диапазоне от От -32767 до 32768. Я надеюсь выполнить преобразование dbSPL по формуле 20LOG10 (p / pref).

Мне известно, что pRef - это 0,00002 паскаля, и я хотел бы преобразовать значения pcm в паскали.

Мой вопрос а) что именно представляют эти значения pcm. б) как превратить эти значения в паскали.

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 24 июля 2010

Вы не можете сделать это преобразование без дополнительной информации. Сопоставление значений PCM с физическими единицами давления (паскалями) зависит от настройки громкости, характеристик устройства вывода (вкладыши? Система PA) и положения наблюдателя относительно устройства вывода (прямо рядом с динамик? 100 метров?).

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

1 голос
/ 16 октября 2016

Позволяет получить некоторую интуицию на вопрос

что именно представляют эти значения pcm (в диапазоне от -32767 до 32768)

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

Звук в дикой природе, который слышит ваш слух, является аналоговым ... для оцифровки звука эта аналоговая кривая должна быть преобразована в двоичные данные ... основной цифровой формат для звука - это PCM, который просто отображает эту непрерывную непрерывную аналоговую кривую в отдельные точки на графике ... звук PCM по-прежнему отображается в виде кривой, но при увеличении его отдельных точек на кривой ... каждая точка кривой имеет свои значения X и Y, где X представляет время (слева направо), а Y представляет амплитуда (идет вверх и вниз)

Количество измерений Х в секунду, которое мы называем Частота дискретизации (часто 44,100 в секунду) ... количество бит, используемых для записи точности Y, которое мы называем Битовая глубина ... если мы выделяем 3 бита вселенную возможных Значения Y должны помещаться в одну из этих строк

0  0  0
0  0  1
0  1  0
0  1  1
1  0  0
1  0  1
1  1  0
1  1  0

поэтому для 3 битов число возможных значений Y равно 2 ^ 3 или 8 различным значениям, которые звучат очень искаженно, поскольку кривая звука далека от непрерывной, поэтому для звука качества CD используются два байта ( 16 бит) информации для записи значения высоты кривой Y, которое дает 2 ^ 16 различных значений Y, что соответствует шкале, которую вы нам даете (от -32767 до 32768) ... 2 ^ 16 == 65536 различных значений Y. ... исходная непрерывная непрерывная аналоговая звуковая кривая теперь оцифрована в 2 ^ 16 вариантов значений высоты в диапазоне от верха до низа звуковой кривой, которые для человеческого уха становятся неотличимыми от исходной звуковой кривой ... при выполнении аудио вычислений часто Y значение нормализуется ... в диапазоне от -1 до +1 ... вместо (от -32767 до 32768)

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

1 голос
/ 24 июля 2010

Ваш вопрос не является ни "iphone", ни "target-c", ни "jective-c ++ ".Но на это можно ответить очень просто: http://en.wikipedia.org/wiki/Pulse-code_modulation

Привет

...