PCM脉冲编码调制

一、PCM数据是什么

你有没有想过手机为什么能够播放美妙的音乐?如果没有的话我来给你解释一下。
首先歌手或者乐队要在录音棚里面对麦克风将声音录制保存下来,然后上传到网络上,最后让听众去下载并欣赏。是不是感觉流程很简单?那是因为我尽可能的把宏观的流程给简单化了,因为微观的知识点才是重要的。
敲黑板了!麦克风里面有一层碳膜,非常薄而且十分敏感,当它遇到声波的时候,碳膜就会震动,在碳膜下面就是一个电极,碳膜在震动的时候会接触电极接触的时间长短和频率与声波的振幅和频率相关,然后通过一系列的复杂转换(如果你只是一个程序员的话,这些复杂的转换原理就可以先不用知道,系统的API都会帮你实现好的你要先知道怎么用)就产生了音频的模拟信号。有了连续模拟信号以后,没法保存啊!需要转成数字信号才能保存,怎么转呢?需要三步量化、采样、编码简单来说单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或记录到存储介质中这个过程就叫脉冲编码调制(英文名字PCM)得到的数据就是PCM数据。看下图

左边是模拟信号,右边是采集量化后的数字信号

X轴代表时间,Y轴是关于时间的函数值。
采集:根据采样定理,按比声音最高频率高2倍以上的频率对声音进行采样,这样可以保证音频的质量不会被降低,一般用44.1KHz。也就是说需要每秒采样44100次,将连续的模拟信号给离散化。

量化、编码:离散化以后的图形是不是像一个个脉冲(图上故意放大了,其实应该是很细很细像线一样),这时如果每个脉冲都有值得话,我就可以保存这些数据了呀!好我现在规定每个采样数据,都用一个16位的二进制数来表示。这个16位的二进制数范围是[-32768,32767],也就是说一个16位的二进制数有65536中取值。我把采样后的模拟信号在幅度上平均分65536层,那每个采样数据不都有一个二进制的编码值了吗?

二、PCM数据的缺点

通过上面的解释应该可以看出音频的裸数据就是通常所说的PCM数据。那PCM数据有什么不好呢?假设有一段音乐,采样率是44100,每个采样占16bite(专业点应该说量化格式是16bite),而且有两个声道。我们来算一下存一个1分钟这样的音频需要多少内存。
44100 * 16 * 2 = 1411200 bite/s = 1378.125Kbps (注意1Kb = 1024b)

1378.125 * 60 = 82687.5Kb = 10.09MB (注意1Byte = 8bite)

也就是说一分钟就需要大约10M的内存,两个小时就需要1200M的内存。

你可能感兴趣的:(PCM脉冲编码调制)