一、PCM编码的基础知识
PCM是一种最典型的语音信号数字化的编码方式,原理框图如下图所示。首先,在发送端对信号波形进行编码,主要包括采样,量化和编码三个步骤,从而实现将模拟信号转化为二进制码组。编码后的PCM码组可以直接进行基带的数字传输,也可以经过微波、光波等载波调制后进行数字传输。在接收端,二进制的数字码组经过译码后还原成量化后的样值脉冲序列,再经过低通滤波器滤除高频分量,就可以得到原始模拟信号的重建信号。
采样:依照采样定理的要求,将时间上连续的模拟信号转换为时间上离散的采样信号。
量化:将幅度上取值无限多的采样信号进行幅度离散,用预先选定的M个规定电平近似表示采样信号。
编码:用规定的二进制码组表示量化后的M个电平的样值脉冲。
下图给出了PCM信号的产生示意图
PCM编码的优点:
1、编码和解码简单容易实现,可以直接使用数字电路实现,也可以使用软件来实现。
2、PCM编码的抗千扰性好。由于数字信号只有两种状态(0和1),因此在传输过程中抵抗噪声和干扰能力非常强。
3、PCM编码没有毁坏模拟信号信息。在采样和量化过程中进行了有效的保护和还原。
4、PCM编码可以通过增加采样率、增加量化深度等方式提高精度,以适应各种精度要求。
PCM编码的缺点:
1、PCM编码对带宽要求较高,相同的信息需要传输更多的数据。
2、在量化过程中,采样点之间的幅度变化越大,误差值也越大。
3、PCM编码的数据量较大,需要采用压缩编码方法以减少数据量,但此过程会降低原始信息的质量和精度。
4、PCM编码会出现量化误差,即采样信号和还原信号之间有误差,这将影响音频、视频等信息的精度和质量。
二、PCM编码在音频处理领域的应用
首先,为什么PCM编码被广泛应用在音频处理领域?
这与PCM编码本身的特性有关。
(i)PCM是一种非常简单且标准化的数字编码方式。它通过对模拟信号进行均匀采样,将信号转换为一系列的数字值。这种转换过程直观易懂,且能够在硬件和软件上实现得非常高效。
(ii)PCM能够提供相对较高的音质,因为它保留了音频信号的原始波形。通过选择足够高的采样率(如44.1 kHz或更高)和足够的量化位数(如16位或24位),PCM能够忠实地重现原始模拟信号的细节,从而获得较高的音频质量。
(一)编码原因
音频为什么要进行编码?
和图像压缩原理对比数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。
例如,一套双声道数字音频若取样频率为44.1KHz,16bit量化,码率为 2 x 44.1kHz x 16bit = 1.411Mbit/s。如此大的带宽将给信号的传输和处理都带来许多困难和成本因此必须采取音频压缩技术对音频数据进行处理,才能有效地传输音频数据。
(二)编码原理
数字音频压缩编码在保证信号在听觉方面不产生失真的前提下,对音频数据信号尽可能大的压缩,降低数据量。数字音频压缩编码采取去除声音信号中的冗余成分的方法来实现
所谓冗余成分指的是音频中不能被人耳感知到的信号,即[20, 20k]Hz以外频率的信号,他们对确定声音的音色,音调等信息没有任何的帮助。
此外,根据人耳听觉的生理和心理声学现象,当一个强音信号与一个弱音信号同时存在时,弱音信号将被强音信号所遮蔽而听不见,这样弱音信号就可以视为冗余信号而不用传送。这就是人耳听觉的掩蔽效应,主要表现在频谱掩蔽效应和时域掩蔽效应。
一个频率的声音音量(db)小于某个阈值,人耳就会听不到。当有另外能量较大的声音出现的时候,该声音频率附近的阈值就会提高很多,即所谓的掩蔽效应。20hz和20khz左右音量需要非常大才能听见,(如果在)0.2khz时音量很大,就会出现掩蔽效应,即0.2khz音量很大的点的附近频率的声音也需要很大才能听得见。
在强音和弱音信号同时出现时,还存在时域掩蔽效应。即两者发生时间很接近的时候,也会发生掩蔽效应。突然有强音,这时弱信号听不见;强音消失后一段时间后才能听见弱信号
(三)数字音频处理基础概念
参考以下文章https://zhuanlan.zhihu.com/p/212318683
1、采样率
采样率(采样频率)即每秒内进行采样的次数。符号是fs,单位是Hz。采样率越高,数字波形的形状就越接近原始模拟波形,声音的还原就越真实。
如下是同一波形的两种采样率对比,可以看到低采样率的A采样波形严重失真,而高采样率的B则几乎完全重现原始波形:
根据奈奎斯特-香农采样定理,只有采样频率高于原始模拟信号中最高频率的两倍时,才能把数字信号表示的模拟信号准确还原回去。例如,CD 的采样率为每秒 44,100 个采样,因此可重现最高为 22,050 Hz 的频率,此频率刚好超过人类的听力极限 20,000 Hz。实际应用中采样频率一般为信号最高频率的2.56~4倍。
数字音频领域常用的采样率如下表:
上图中采样率为每秒34次。意味着在一秒的时间内,原始信号被采样了34次(也就是蓝色垂直线段的数量)。通常,采样率的单位用Hz表示,例如1Hz表示每秒钟对原始信号采样一次,1KHz表示每秒钟采样1000次。1MHz表示每秒钟采样1百万次。
2、采样位数 Bit Depth
采样位数(又称位宽,位深,位深度),字面意义就是采样值的二进制编码的位数。采样位数反应了采样系统对声音的辨析度,位数越高,对声音的记录就越精细,所以也称之为采样精度,采样深度。
采样位数的含义是用多少个点来描述声音信号的强度,如1.2节的PCM编码的位数就是3bit,即有2^3 = 8个点。如果是8bit,就有2^8 = 256个点。
采样位数直接影响采集信号的信噪比/动态范围。较高的采样位数可提供更多可能的振幅值,产生更大的动态范围、更低的噪声基准和更高的保真度。
上图的采样位数为8位,2^8 = 256 levels,有256个等级可以用于衡量真实的模拟信号。
3、声道 Sound Channel
声道是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,通俗的说声道数就是录音时的麦克风数量,也是播放时的音响数量。声道数,也叫通道数,轨道数,音轨数。
常见的声道数有单声道(Mono),双声道(即立体声,Stereo),5.1声道,7.1声道等。这里的 .1声道指的是低音声道。
如下是一个5.1声道家庭影院示意图,六个扬声器分别是 :C(Central)中置,FL(Front Left)左前置,FR(Front Right)右前置,SL(Surround Left)左环绕,SR(Surround Right)右环绕和SW(Subwoofer)低音炮。
4、比特率 Bit Rate
在通信与计算领域,比特率就是指每秒传送或处理的比特的数量(位数),所以比特率又称为"二进制位速率",简称"位速或位率",常用于形容传输速度,带宽。
在数字多媒体领域,比特率是每秒播放连续的音频或视频的比特的数量,是音视频文件的一个属性。此时它相当于术语"数字带宽消耗量或吞吐量",也俗称为"码率"。
比特率的统一含义是"二进制码数量/时间",单位是比特每秒,bit per second,缩写为bit/s(不是"bits/s"),简写为bps或b/s。有一些不正式的描述比如"128千比特音频流"或"100兆比特网络"则是省略了"每秒"。
常用比特率的表述:
假设有一段采样频率44.1KHz,采样位数16bit,立体声的PCM音频。也就是说,在产生这段音频时间里,1s内系统采样的次数是44100次,每次采样的数据位数是16位,同时进行2通道采样。这就意味着,系统每秒采集的比特数为44100次×16位×2通道 = 1411200个。根据比特率的定义,这段音频的比特率就是1411.2kbit/s。
音频的比特率=采样率×位深度×通道数
此外,如果还知道这段PCM音频文件的时长,还可以计算文件的大小:假设文件时长为1分钟,那么文件大小为1411.2kbit/s × 60s = 84672kbit,而1byte=8bit,所以文件大小为10,584,000B = 10,355.9KB = 10.1MB。
【注意】一个 kb(kilobit,千比特) 表示 1,000比特,而不是普遍被认为的1,024比特。
音频文件大小(B)=比特率(b/s)×时长(s)÷8
对于mp3,wav等其他格式的音频文件,文件里还包括了帧头等其他附加信息,所以文件体积还会稍大一些。
5、音频帧
音频和视频不一样,视频每一帧都是一张图像,音频数据是流式的,不同的编码格式各自不同的编码标准,拿PCM和MP3做一个对比。PCM因为没有压缩,根据采样率位宽等数据可以得到每秒的音频数据,并不需要帧的概念;MP3是因为压缩后信息比较多,则有了类似H264的帧概念,每一个帧都有帧头。
6、存储方式
7、概念区分
(1)PCM与ADC
PCM(Pulse Code Modulation)是一种模拟信号的数字化方法,ADC(Analog to Digital Converter)芯片是实现这一方法的器件。
(2)PCM编码与PCM文件
PCM(脉冲编码调制)是一种模拟信号的数字化方法,PCM编码就是这个方法中的数字音频编码方式。PCM编码是最原始的音频编码,其他编码都是在它基础上再次编码和压缩的。
PCM文件是以PCM编码方式存储音频的文件,是未经压缩的原始数字音频文件,通常称为PCM裸流/音频裸数据/raw data。常用文件扩展名是.pcm和.raw,通常它们是不能直接播放的。PCM裸流经过重新编码,封装后,比如变为 .wav格式,就可以正常播放了。
(3)有损编码与无损编码
理论上说,任何数字音频都是无法完全还原模拟信号的。不过PCM编码是模拟信号转换为数字信号时的原始编码,它代表着数字音频的最佳保真水平,所以PCM编码就约定俗成为"无损编码"。
当然为了减小原始PCM编码的体积PCM编码进行了二次编码,所以也叫它们为压缩编码,对应的文件叫压缩格式。
二次编码的音频编码也分为两类:有损编码和无损编码,也称为有损压缩和无损压缩。无损就是指相对PCM编码来说音质相同,有损则是损失了一些音频质量。
三、elabradio PCM编码仿真
模拟信号源模块:产生信号频率为1000的正弦波,采样率为1024000kHz。
PCM编码模块:选择量化类型为A律非均匀量化,量化幅度设置为1(或其它如5),进行PCM编码。采用固定8K采样速率进行二次采样,并按照设定的量化类型进行量化编码。模块输入的模拟信号数据采样频率不得小于8kHz。编码数据输出:输出PCM编码序列数据,输出数据采样率固定为64kHz。
PCM译码模块:PCM编码的逆过程,参数设置应与PCM编码时保持一致。用于将64kHz 的PCM编码数据还原为8kHz 采样的模拟数据。
示波器1的两个通道分别为原始生成的正弦信号和PCM编码后的信号
示波器2的两个通道分别为原始的正弦信号和经过PCM编译码后的信号(和原始信号一致)