2010-07-23 4 views
1

iPhone OS에서 오디오로 작업 중이며 조금 혼란 스럽습니다.선형 PCM 값은 무엇입니까

현재 오디오 버퍼의 입력은 -32767에서 32768까지의 pcm 값 형식입니다. 20LOG10 (p/pref) 수식을 사용하여 dbSPL 변환을 수행하고 싶습니다.

pRef가 .00002 파스칼이고 pcm 값을 파스칼로 변환하고 싶습니다.

제 질문은 입니다. a) 정확하게 나타내는 pcm 값은 무엇입니까? b)이 값을 파스칼로 바꾸려면 어떻게해야합니까?

감사합니다.

답변

1

질문에 대한 약간의 직관을 얻을 수 있습니다 정확히

(-32767에서 32768까지)를 나타내는 이러한 PCM 값이 무엇인지

오디오는 단순히 제로 라인의 위아래로 변동하는 커브입니다. 커브가 제로 라인 근처 또는 너무 오랜 시간 동안 앉아 있으면 소리가 나지 않게됩니다. 당신의 고막이 흔들리는 경우 ... 오디오 커브가 최대 값에서 최소값으로 격렬하게 흔들리는 경우 최대 볼륨이 있으므로 파스칼의 값이 더 큽니다.

귀에 들리는 것은 아날로그입니다 ... 오디오를 디지털화하려면이 아날로그 커브를 바이너리 데이터로 변환해야합니다 ... 오디오의 기본 디지털 형식은 연속적인 끊어짐없는 아날로그 곡선을 그래프의 별개의 점으로 매핑하는 PCM입니다. PCM 오디오 곡선의 뚜렷한 점을 확대 할 때 여전히 곡선으로 나타납니다. 각 곡선 점의 X와 Y 값은 X입니다 (왼쪽에서 오른쪽으로 이동). Y는 진폭 (위아래로 이동)을 나타냅니다.

초당 X 측정 횟수 우리는 샘플 레이트 (종종 44,100/초)를 호출합니다 ... 비트 깊이라고 부르는 Y의 충실도를 기록하는 데 사용되는 비트 수 ...우리는 3 개 비트를 할애하는 경우 오디오 곡선까지 연속 발이기 때문에 가능한 Y 값 우주 이유는 CD의 음질되는 이러한 행 매우 왜곡 된 소리 3 bits the number of possible values of Y is 2^3 8 고유 값이므로

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

중 하나에 적합해야 곡선 높이 Y의 값을 기록하기 위해 2 바이트 (16 비트)의 정보를 사용합니다.이 값은 Y의 2^16 고유 값을 제공합니다.이 값은 사용자가 지정한 크기 (-32767 ~ 32768)와 같습니다. 2^16 == 65536 별개의 Y 값 ... 원래 연속적으로 끊어지지 않은 아날로그 오디오 곡선이 오디오 곡선의 위에서 아래까지의 높이 값의 2^16 선택으로 디지털화되어 인간의 귀는 원본 오디오 곡선과 구분할 수 없게됩니다 ... 오디오를 할 때 Y 값이 정규화되면 ... -1에서 +1의 범위로 계산됩니다. ... 대신 (-32767 ~ 32768)

이제 파스칼 (압력 단위)에 관한 질문의 핵심은 Y 값 범위 (비트 심도)와 직각을 이루며 그 대신에 스피커 표면의 깎아 지른 영역과 함께 오디오 곡선의 모양 ... 주어진 주파수 선택에 대해 가능한 전체 범위를 소비하면서 해당 주파수의 표준 사인 곡선에 오디오 곡선이 점착하는 정도 Y 값은 파스칼 값을 최대화하는 진폭 (부피)을 최대화합니다.

+0

Hey Scott, 답장을 보내 주셔서 감사합니다. 나는이 질문에 대해 오랫동안 생각해 보지 못했다. 당신의 대답은 완벽합니다. PCM scale == 진폭을 측정하는 Bit Depth. 감사합니다. – richsoni

2

추가 정보 없이는이 변환을 수행 할 수 없습니다. 물리적 인 압력 단위 (파스칼)에 대한 PCM 값의 매핑은 볼륨 설정, 출력 장치 (이어폰, PA 시스템)의 특성 및 출력 장치에 대한 관찰자의 위치 (스피커? 100 미터 떨어져 있니?).

당신의 질문의 첫 부분에 대답하기 : 당신은, 1 kHz의 사인파 톤을 말에 대한 음압 대 시간을 그래프로했다 경우 샘플 시간에 선형 양자화 된 PCM 값은 대략 비례 할 것 그 순간에 주위의 음압 편차는 입니다. 입력 및 출력 장치가 거의 전체 오디오 주파수 범위에 대해 응답 곡선을 가지지 않기 때문에 "대략"입니다.

1

"iphone", "objective-c"또는 "objective-C++"가 아닙니다. 그러나 그것은 매우 간단한 답변을 얻을 수 있습니다 : http://en.wikipedia.org/wiki/Pulse-code_modulation

인사말

+1

노력에 감사하지만 자신이 모르는 질문에 답변하지는 않을 것입니다. 나는 위키피디아를 여러 번 읽었으며 그 대답은 "간단하다". 하드웨어가이 계산에서 역할을하기 때문에 iPhone과 관련이 있습니다. – richsoni

관련 문제