脉冲编码调制
1、PCM = pulse code modulation = 脉冲编码调制:它是一种脉冲调制方式,先对信号进行周期的取样,再把每个取样进行量化,以数码方式进行传输。也就是将构成脉冲载波的脉冲分组,再对每组进行调制,使它代表要传输的模拟信号的量化值。
2、PCM是数字通信的基础,由于信号是用一系列分开的脉冲来传送的,除非失去一个完整的脉冲,或干扰脉冲大到足以使设备当作真信号脉冲接受,PCM不会引入失真,也不会丢失信息。
3、脉冲编码调制可以向用户提供多种业务,既可以提供从2M到155M速率的数字数据专线业务,也可以提供话音、图象传送、远程教学等其他业务。特别适用于对数据传输速率要求较高,需要更高带宽的用户使用。
在光纤通信系统中,光纤中传输的是二进制光脉冲"0"码和"1"码,它由二进制数字信号对光源进行通断调制而产生。
而数字信号是对连续变化的模拟信号进行抽样、量化和编码产生的,称为PCM,即脉冲编码调制。这种电的数字信号称为数字基带信号,由PCM电端机产生。
PCM可以向用户提供多种业务,既可以提供从2M到155M速率的数字数据专线业务,也可以提供话音、图象传送、远程教学等其他业务。特别适用于对数据传输速率要求较高,需要更高带宽的用户使用。
编码的过程:
1、抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号,抽样必须遵循奈奎斯特抽样定理。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。抽样速率采用8KHZ。
2、量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。
扩展资料
PCM脉码调制这项技术可以改善和提高的方面则越来越来小。只是简单的增加PCM脉码调制位深度和采样率,不能根本的改善它的根本问题。其原因是PCM的主要问题在于:
(1)任何脉冲编码调制数字音频系统需要在其输入端设置急剧升降的滤波器,仅让20Hz-2205kHz的频率通过(高端2205kHz是由于CD441kHz的一半频率而确定)。
(2)在录音时采用多级或者串联抽选的数字滤波器(减低采样频率),在重放时采用多级的内插的数字滤波器(提高采样频率),为了控制小信号在编码时的失真,两者又都需要加入重复定量噪声。这样就限制了PCM技术在音频还原时的保真度。
声音(sound)是由物体振动产生的声波。是通过介质(空气或固体、液体)传播并能被人或动物听觉器官所感知的波动现象。最初发出振动(震动)的物体叫声源。声音以波的形式振动(震动)传播。声音是声波通过任何物质传播形成的运动。
音调的高低主要由声波频率决定。人的听觉频率范围是20Hz~20kHz,其中1kHz~4kHz赫兹是人耳最敏感的区域。
音响是由声音强度决定的一种听觉特性。声音强度大,音响就大,声音强度小,音响就小。人所能感觉到的音响范围在0~130分贝,当音响超过130分贝,人耳就会产生痛觉。研究者大多数用纯音来测查音响的感知觉。30岁的成年男子能知觉到音响只有4分贝的6 000赫兹纯音。在同是6 000赫兹的声波频率下,65岁的老年人要把声音强度提高到40分贝才能知觉到同样的声响。
波形决定了声音的音色。声音因不同物体材料的特性而具有不同特性,音色本身是一种抽象的东西,但波形是把这个抽象直观的表现。音色不同,波形则不同。每一种声音都有各自的基本波形,称为基波。不同声音的基波中混入的谐波有多有少,导致音质变化多端,也就是音色的不同。基波中混入的谐波越多,也就是泛音越多,听起来就更悦耳。
分贝dB定义为两个数值的对数比率,这两个数值分别是测量值和参考值(也称为基准值)。存在两种定义情况。
因为人耳的特性,我们对声音的大小感知呈对数关系。所以我们通常用分贝描述声音大小,分贝(decibel)是量度两个相同单位之数量比例的单位,主要用于度量声音强度,常用dB表示。在声学领域,dB经常用作为表征声压级SPL(Sound Pressure Level)的大小。声压的单位是帕斯卡,Pa,声压的参考值是20μPa,这个值表示人耳在1000Hz处的平均可听阈值,或者是人耳在1000Hz处可被感知的平均最小声压波动值。
因此使用声压计算分贝时使用下述版本的公式:
其中的pref是标准参考声压值20微帕。
人耳可听的声压幅值波动范围为2×10^-5Pa~20Pa,用幅值dB表示对应的分贝数为0~120dB。
物体通过震动发出声音
通过声波带动麦克风内的振膜一起震动来采集音频信号,振膜在震动时会有幅度,我们将振膜的震动过程记录下来,就可以还原声波的形状,以此将声波描述成模拟信号。
对模拟信号进行量化采集的 *** 作
将模拟信号转换成为数字信号
将数字信号存储为pcm无损音频数据裸流
将pcm文件编码成wav,aac,mp3等音频格式进行传输及存储
每秒钟取得声音样本的次数
奈奎斯特定理:在进行模拟/数字信号的转换过程中,当采样频率fsmax大于信号中最高频率fmax的2倍时(fsmax>2fmax),采样之后的数字信号完整地保留了原始信号中的信息。
人耳可听的声音20Hz~20kHz,所以CD品质的采样率为441kHz就可以完整的保留人耳所能听到的声音,其中1kHz~4kHz赫兹是人耳最敏感的区域,MP3品质为8kHz,就已经可以基本满足收听音乐的需求了
一个采样点所占据的位(bit)数
1 字节(也就是8bit) 仅仅能记录 256 个数
2 字节(也就是16bit) 能够细到 65536 个数, 这已是 CD 标准了;
4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级
一个采样点描述的是当前采集时间的能量(震动幅度),一个采样点所占的位数越多,描述声音的精确度越高,声压级为20μPa~20Pa,等级比为10^6, 4字节等级为4294 10^6,远远高于声压级的等计量,所以无需使用这么细致的深度来进行描述,使用2字节就可以满足需求。
记录声音的通道数量
单声道通过一个麦克风收集声音
立体声需要通过多个麦克风一起收集声音
每秒的数据传输速率(kbps)
比特率 = 采样频率 采样位数 通道数
PCM(Pulse Code Modulation)也被称为脉冲编码调制。PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准的数字音频数据。
PCM音频数据是未经压缩的音频采样数据裸流,是无法直接通过播放器进行播放的,因为pcm中只存储了音频采样数据裸流,采样频率、位深度、通道数等信息都没有进行存储,所以播放器不知道以什么方式来播放pcm数据。因此我们需要将pcm存储为wav格式或编码成其他音频格式进行存储及播放
WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持。WAVE文件通常只是一个具有单个“WAVE”块的RIFF文件,该块由两个子块(”fmt”子数据块和”data”子数据块)
wav的实质就是在pcm文件的前面加了一个文件头,让播放器知道该以何种方式来进行播放
1获取pcm数据片段buff
2分析buff数据的大小端
3分析buff数据的符号(有符号/无符号)
4根据位深度(8/16位)来获取每个采样点的数据
5计算采样点的平均value
6数字信号的分贝计算,需要使用dbFS公式,位深度计算出来的最大值(16位有符号32767,无符号65535)为分母(Pref),采样点value为分子(Prms)通过公式计算分贝。
这样计算出来的数字为负值,0为最大值。16位有符号为-93~0,16位无符号位-90~0
7分贝换算,通过dbFS公式计算出来的分贝为负数范围,但数字为线性关系,我们需要将结果等比映射到0~120db即为我们最终的结果
>
PCM
我们在音频处理的时候经常会接触到 PCM 数据:它是模拟音频信号经 模数转换 (A/D变换)直接形成的 二进制序列 ,该文件 没有附加的文件头 和 文件结束 标志。
声音本身是模拟信号,而计算机只能识别数字信号,要在计算机中处理声音,就需要将声音数字化,这个过程叫经模数转换(A/D变换)。最常见的方式是透过脉冲编码调制PCM (Pulse Code Modulation) 。
运作原理如下:首先我们考虑声音经过麦克风,转换成一连串电压变化的信号,如下图所示。这张图的横座标为秒,纵座标为电压大小。
要将这样的信号转为 PCM 时,需要将声音量化,我们一般从如下几个维度描述一段声音:
采样频率: 即取样频率,指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率都不超过48KHz。
采样位数: 即采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。
声道数: 很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的PCM 可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。
时长: 采样的时长
下面再用图解来看看采样位数和采样频率的概念。让我们来看看这几幅图。
图中的黑色曲线表示的是PCM 文件录制的自然界的声波,
红色曲线表示的是PCM 文件输出的声波,
这个图中,采样点是离散的,每一个点对应pcm一个单元的数据。
采样频率越高,x轴采样点就越密集,声音越接近原始数据
采样位数越高,y轴采样点就越密集,声音越接近原始数据
采样频率单位为Hz,表示每秒采样的次数:
一般有11025HZ(11KHz)、22050HZ(22KHz)、44100Hz(44KHz)三种。
采样位数单位为bit(位),一般有 8bit 和 16bit 。8bit 表示用 8bit 空间量化某时刻的声音,这一点基本是和用r、g、b三单位共 24bit 量化颜色一样。
综上所述,我们可以得到pcm文件的体积计算公式(这里我们把 采样位数/8 是因为电脑上是将bit转化为byte):
存储量 = (采样频率 × 采样位数/8) × 声道 × 时间
例如,数字激光唱盘(CD-DA,红皮书标准)的标准采样频率为44l kHz,采样数位为16 位,立体声(2声道),可以几乎无失真地播出频率高达22 kHz的声音,这也是人类所能听到的最高频率声音。激光唱盘一分钟音乐需要的存储量为:
(4411000 l6 2)60/8=10,584,000(字节)=10584 M Bytes
这个数值就是 PCM 声音文件在硬盘中所占磁盘空间的存储量。
数据以 二进制序列 储存在文件里
双声道音频的存储方式是LRLRLRLR,16bit音频是每个声道都是16bit(2字节)么?PCM是interleaved的方式存储,具体存储的时候还有小端(little endian)和 (big endian)的问题,一般的存储是小端的,也就是2字节,低位在前,高位在后一个采样点16位是0x 1234 存储的时候是 0x34 和 0x12 , 如果是大端就反过来。
一个单声道的pcm无头音频1M ,转成 双声道就变成2M了,就算是有一条声道没信息(或者微弱信号噪声),但是 转成双声道的时候就算是静音,数据大小是0x0000他也是要占着位数的,所以不管怎样,只要是双声道就会变成2倍大小。
前面也介绍到了,PCM 数据本身只是一个 裸码流 ,它是由 声道、采样位数、采样频率、时长 共同决定的,因此我们至少要知道其中的三个才能将 PCM 所代表的数据提取出来。
因此,纯PCM数据是无法播放的,因此还需要一段 描述数据 。计算机系统中的一个比较常见的做法是将 pcm码流和描述信息封装在一起 ,形成一个音频文件。这样就可以直接播放了。
一种常见的方式是使用wav格式定义的规范将pcm码流和描述信息封装起来。 查看 pcm 和对应wav文件的 hex(16进制)文件,可以发现,wav文件只是在pcm文件的开头多了44字节 ,来表征其声道数、采样频率和采样位数等信息。 这个其实和bmp非常类似。
WAV、G729、G723 、MP3 等音频格式都是8k 16bit wav音频经过压缩的格式。
由于厂商众多、 很多音频格式 应运而生,比如nice公司出品的 nmf 其实音频,其实就是一个经过多层再包装的g729;vox 格式是华为公司出品的音频。
vox 格式是华为的格式、他的后缀一种是 V3 的,直接把后缀改成vox就可以听;还有一种后缀就是vox。
vox格式因为本身是没有头信息的看不到,所以不知道采样率不能转码、这时候用 cooledit 打开听一下,选择8k的采样率打开如果语速很快音频实际是6k;如果选择6k的采样率打开如果语速很快音频实际是8k。现在 得知采样率之后就可以用工具转码,下面会说到工具ffmpeg以及他的轻量版sox。
G729以10字节作为一个解码单元,G729转码时先把头去掉再转。
G729是十六倍压缩。8k 16bit 8kb/s (正常是128kb/s 压缩16倍)
和g729一样是16倍压缩,但是由于压缩算法不一样,G729的频谱是光滑的、而MP3音频的损失很多。是最差的一种音频格式。
8k 8bit stereo 128kb/s音频格式,应该是非压缩的格式
首先音频格式之间转码,比如g729 转 mp3 流程是g729->8k、16bit wav -> mp3,都是要先经过wav的。
一般会内置的轻量级ffmpeg工具。
sox 1wav 2wav 3wav 1_2_3wav
hexdump -Cv inwav | less
标准音频的头字节是44位
查看音频字节信息是:hexdump -C inwav
看红色部分
其中音频大小可以在第 40-43 位(从0位开始)倒着看是音频大小: 0x 00 02 53 a0
转换成 十进制 是152480 加上 标准头字节 44 是152524字节
查看音频的 文件大小 是 152524字节 与计算结果吻合
其实看4-7位也行,4-7位查看下来是152516字节
152516+8=152524字节其实这个152516就是除了头字节的八个字节后面的字节数
看蓝色部分
第 24-25 位是 0x 40 1f = 8k 这个位置标记的是音频的采样率大小标准音频的头字节是44位
一个裸的PCM格式音频数据,如果不带头信息,不知道其采样率等相关信息,就无法用播放器播放出来。下面是默认的头信息格式:
//音频头部格式
struct wave_pcm_hdr
{
char riff[4]; // = "RIFF"
SR_DWORD size_8; // = FileSize - 8
char wave[4]; // = "WAVE"
char fmt[4]; // = "fmt "
SR_DWORD dwFmtSize; // = 下一个结构体的大小 : 16
SR_WORD format_tag; // = PCM : 1
SR_WORD channels; // = 通道数 : 1
SR_DWORD samples_per_sec; // = 采样率 : 8000 | 6000 | 11025 | 16000
SR_DWORD avg_bytes_per_sec; // = 每秒字节数 : dwSamplesPerSec wBitsPerSample / 8
SR_WORD block_align; // = 每采样点字节数 : wBitsPerSample / 8
SR_WORD bits_per_sample; // = 量化比特数: 8 | 16
char data[4]; // = "data";
SR_DWORD data_size; // = 纯数据长度 : FileSize - 44
} ;
//默认音频头部数据
struct wave_pcm_hdr default_pcmwavhdr =
{
{ 'R', 'I', 'F', 'F' },
0,
{'W', 'A', 'V', 'E'},
{'f', 'm', 't', ' '},
16,
1,
1,
16000,
32000,
2,
16,
{'d', 'a', 't', 'a'},
0
};
背景:为测试听歌识曲的sdk是否准确,获取一批测试音频(MP3格式) 的pcm 数据
首先去ffmpeg 官网上获取相应工具
>
以上就是关于pcm是什么意思,代表什么全部的内容,包括:pcm是什么意思,代表什么、什么是PCM 目的是什么它分哪几个步骤、基于pcm音频的音量分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)