时间:2010-07-23 21:31:11

标签: iphone objective-c audio objective-c++ decibel

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

答案 2 :(得分:1)

让我们对这个问题有一些直觉

  

这些pcm值到底是什么(范围从-32767到32768)

音频只是一条在零线上下波动的曲线......如果曲线位于零线附近或者太靠近零线这段足够长的时间,这会映射到沉默......既不是你的扬声器表面也不是你的耳膜做任何摆动...或者如果音频曲线猛烈地从最大值摆动到最小值更频繁地在一段时间内摆动你有最大音量因此更大的帕斯卡值

你的耳朵听到的野外音频模拟...数字化音频这个模拟曲线必须转换成二进制数据...音频的基本数字格式是PCM,它简单地将连续不间断的模拟曲线映射到不同的点在图表上... PCM音频仍然显示为曲线但是当你放大它在曲线上的不同点时...每个曲线点都有它的X和Y值,其中X代表时间(从左到右),Y代表振幅(上升和下降)

我们称之为采样率的每秒X次测量次数(通常为每秒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 bits the number of possible values of Y is 2^3或8个不同的值听起来非常失真,因为音频曲线远非连续,这就是CD质量音频使用两个字节(16位)信息来记录曲线高度Y的值的原因。给它2 ^ 16个不同的Y值,相当于你给我们的比例(-32767到32768)... 2 ^ 16 == 65536个不同的Y值...原始连续不间断的模拟音频曲线现在被数字化为2 ^ 16音频曲线从上到下的高度值选择与人耳无法区分的音频曲线...当进行音频计算时,Y值经常被标准化...比如-1到-1的范围+1 ...而不是(-32767到32768)

所以到目前为止,你应该清楚你的关于帕斯卡(压力单位)的问题的核心是与Y值范围(比特深度)正交,而是音频曲线的形状与纯粹的面积的函数。扬声器表面......对于给定的频率选择,音频曲线粘附到该频率的规范正弦曲线的程度,同时消耗全部可能的Y值将最大化振幅(音量),从而驱动帕斯卡值