Audio CODEC 基本知识及应用
一、DAC 部分
DAC 部分的框图:
◆ 数字音频接口:
1、I2S 接口
I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的I2S 标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I2S 有3 个主要信号:
数据是2 的补码形式, MSB 在前。发送端在时钟信号BCLK 的上升沿或下降沿开始传输数据, 接收端的在时钟的第一个边沿锁存数据。字选线LRCK 决定传输哪个声道(左、右)的数据;
LRCK 发送会在传输一个数据之前发送一个时钟,也就是数据要比位时钟延迟一位发送。有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟,一般是采样频率的256 倍。数据传输时 MSB或 LSB 均可在前。数据字的长度不固定,可以高达28 位。数据字的同步可以在时钟的上升沿或下降沿。主设备提供BCLK 和LRCK 信号。主设备可以是发送端,也可以是接收端,还可以是控制器。I2S 总线可用于DAC 或DSP。
I2S 也可以用于传输单声道数据,例如单声道录音,可以经过I2S 传输,可以选择任一个声道传输。
上述3 线接口,由于只有一条数据线,所以是单向数据传输接口。绝大部分应用,只需要单向传输数据,所以都能满足需要。在某些应用中,也可以增加一条数据线,变成双向数据传输接口。
随着技术的发展,在统一的 I2S 接口下,出现了多种不同的数据格式。根据SDATA 数据相对于LRCK 和BCLK 的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。这些不同的格式见图2、3、4。
硬件连接图5、6。
2、PCM 接口
PCM 接口和I2S 接口的硬件连接完全一样,不同的是数据格式。只要芯片可以支持,这两种接口能够兼容。
3、SPDIF 接口
它是(Sony/Philips Digital InterFace)SONY、PHILIPS 家用数字音频接口的简称,可以传输线性PCM 流和Dolby Digital、DTS 这类环绕声压缩音频信号。它只有两条线分别不同方向传输:Tx 和Rx。SPDIF 从传输介质上来分为同轴和光纤两种,其实它们可传输的信号是相同的,只不过是载体不同,接口和连线外观也有差异。但光信号传输是今后流行的趋势,其主要优势在于无需考虑接口电平及阻抗问题,接口灵活且抗干扰能力更强。
◆ 低音增强——Bass Boost:
用来设置低音表现力。利用Bass Boost 的音效,可以在音乐回放时得到低音增强的效果,使的音乐更具震撼力。它一般有4 种值可选:高、中、低和无增强。
◆ 数字音量控制器Digital Volume Control:
用来调节输出音量。调节它可以同时改变耳机输出、扬声器输出的音量。区别于模拟音量控制,模拟音量控制是在DAC 进行数模转换以后,再通过改变输出PGA 的增益来改变音量。
◆ 数字去加重滤波器——Digital De-emphasis Filter:
什么是Pre-emphasis 和De-emphasis?
Pre-emphasis 就是在录音的时候将高频讯号放大,放音时再把讯号用同样的倍率缩小以还原波形(De-emphasis),在模拟录音的时代,这个技巧的主要用途是作为提高讯噪比。例如广播发送时将频率1500Hz to 2000Hz 以上以每八度音6dB的倍率提高讯号,使用同样的原理。在数字的领域,Pre-emphasis 的主要用意在于降低量化失真,因为一般的音乐讯号高频段往往振幅比较小,而且越高的频率振幅越小,所以从PCM 取样的原理中我们可以发现这些小振幅会被分配到较少数的bits 来记录,这样有效描述振幅的数字就变小了,与原波型的误差就变大了,因此我们使用Pre-emphasis 的技巧先增加高频振幅再取样来降低高频量化失真。使用这功能的音乐CD 非常少见,推测是因为Pre-emphasis 和De-emphasis 这一来一回的计算,反而造成了更大的失真。
◆ 均衡器( EQ)与音效
均衡器的作用是在整个音乐带宽范围内改变音乐的频响特性。以WM8980的五边带EQ为例,它把音乐带宽分为5段,分别为0~105Hz段、300Hz段、850Hz段、2.4KHz段、6.9~20KHz段,每一段可以有-12dB~+12dB共25种增益。
利用EQ 可以实现各种音效,即MP3 不同的声音播放效果,不同的EQ 模式带给听使用者不同的声音播放效果。
目前的MP3 的数字音效模式一般为六种,分加是CLASSIC(古典音乐模式)、POP(流行音乐模式)、JAZZ(爵士乐模式)、ROCK(摇滚乐模式)、NOMAL
(普通模式)和AUTO(自动改变模式)。
◆ 采样率转换器——Sample Rate Converter(SRC)
这是一个在CODEC中常见的模块。它在声卡中最常见,声卡里的CODEC如果是AC'97 CODEC,则前面一定要有一个SRC的过程。SRC是AC'97规范约定的声卡需要经过的一个处理过程,即将所有信号重新转换成一个统一的48KHz采样
率输出。SRC如果进行了非整数倍的转换的话,比如44.1KHz→48KHz,会有较大的噪声或者谐波出现,这些噪声因转换器的质量高低、算法好坏而定,不优秀的算法会比较严重的影响听感。
SRC的作用就是改变信号的采样率,我们举一个例子帮助大家了解SRC。
我们假设三角形是一秒时间长度的一个波,采样率为3Hz,现在我们需要将采样率SRC 到4Hz,我们唯一能作的就是时间轴等分出4 个点,取这个点垂直线和三角形边交汇处的值,这个过程就是重采样,结果变成了一个梯形。在波形图中,垂直的轴对应波的能量值,这意味着波的信号强度变弱了,出现了衰减。这个例子可以说明非整数倍的频率转换将改变波形,改变是不可避免的,SRC还会导致一些其他问题,例如互调失真加剧等。(注:为了图解方便,图形的使用并不规范,三角形和梯形不能表示一个完整的波)
需要说明的是显而易见对于整数倍,比如22.05KHz 到44.1KHz 或者48KHz到96KHz,SRC 并不会对音质产生影响。
常见的声卡都支持44.1kHz 和48kHz 的信号输入,而这2 种采样率不是整数倍关系,如果同时支持这2 种采样率输出的话,声卡上需要2 颗晶振。分别为11.2896 MHz 和12.288MHz(或者为他们整数倍的频率),否则只能是尽量接近44.1K 或者48K。
而通过SRC 后,输出的采样率一般固定在48kHz,这样声卡可以节省一颗晶振,降低了成本。
在有些音乐芯片内部,采用的固定转换频率的DAC,例如YMU788,所以内部就有SRC模块。
SRC也会有其他的用途,例如不同采样率音乐之间的混音。混音是指将来自多个音源的音频结合成一个单一的声音流,这是一项基本的音频处理过程。在模拟音频领域,只要简单地将信号叠加即可。而对于数字音频,如果各信号的采样率一致,也将采用这一过程。如果各信号是在不同时刻采集的,那么就不能直接叠加信号了。通过将某一信号转换为另一信号的采样率,可以解决这一问题。一旦样本的采样时刻统一,每个时刻的样本值就能进行简单地叠加,形成混音输出了。生成的信号可以用于更进一步的数字处理。
◆ 数字滤波器——Digital Filter
数字滤波器的作用是执行超取样(Oversampling)工作。超取样采用的关键技术,就是插值(interpolation)。所谓插值就是在两个原有数据中增加多个数据以填补间隔空白,现在常见的有4 倍插值和8 倍插值。4倍插值也就是在两个数据中间增加3 个,8 倍则7。这里的过取样不要和录音时的取样混淆起来,这里根据一定的算法,对数字信号进行运算,然后增加取样点。如何插值有各种技术,可以说得天花乱坠,在此不做评论。常见的CODEC 中采用的是最简单的线形插值算发。1 和5 之间,如果以平均值算法做4 倍插值,很容易得出插补2、3、4。数字滤波器后面的DAC,有插值数据就必须要有转换,4 倍插值后的DAC 转换频率就要有4×44.1=176.4Khz,8 倍则352.8Khz。
负责进行插值运算的处理速度要快,不然必定无法将这些资料处理妥当,造成失真。所以并不是取样倍数越多就越好,这还要看处理器的运算能力够不够才行。
超取样用在D/A 中能带来很大好处。我们知道对于一个取样频率为44.1KHz的离散信号序列,它的功率谱密度分布是频率间隔为44.1KHz,单侧带宽为20KHz 的一簇簇"双边带"谱线,而我们所需要的仅仅是中心频率为0 的那半个边带,其他的全是噪声,这就是为什么在D/A 后面一定要跟一个低通滤波器的原因,该滤波器也叫做"抗混叠滤波器"(anti-aliasing filter)。
对于上面这个谱,由于谱线簇相邻很近,需要过渡特性十分陡峭,类似于下图的低通滤波器才能保证足够的带外噪声衰减。这样的滤波器特性在实用工程上根本无法做到。
如果采用超取样,比如说×8 倍,那么相邻谱线簇的频率间隔就不再是44.1KHz,而是44.1×8=352.8KHz,这样就允许采用较低阶的,简单的低通滤波器,在有限的成本下同时满足信噪比,带内波动,相位特性等诸多要求。
过取样本身不会对量化精度(比特数)产生任何影响,原来是16bit 过取样后还是16bit,但它会改变信号功率谱密度在频率轴上的分布。
◆ 采样率转换和超采样的区别:
在数字信号处理领域,凡根据相邻两个或多个样值而人为增加相关样值的处理称为插值(interpolation)。得到的样值序列并不一定要与内插前的样值序列在取样率上成整数倍关系。所以,事实上取样率的提高本身就是数据内插的自然结果。
采样率转化可以提升和降低采样频率,而过采样只是提升采样率;采样率转化不一定是采样率成整数倍的提高,而过采样则是。
采样率转换和过采样的目的有所不同。前者是为了把各种不同取样率的音源转换为统一的采样率,方便接受各种不同音源如CD,DAT,DVD 等等;而后者是以拉开谱线簇之间的频率间隔,减少混叠噪声和简化后续低通滤波器为目的。
二、ADC 部分
这里介绍的主要是针对麦克风输入通道,模拟线路输入与此类似,不做介绍。
◆可编程增益放大器(PGA)
PGA 的增益可以设置。它有两种工作模式:固定增益模式、自动增益调节模式。如果使用录音的ALC 功能,则PGA 必须工作在自动增益调节模式。
◆ 输入增益BOOST
PGA的增益是步进值很小的增益,可用于细调。而BOOST是用于粗调的增益,如果PGA的增益足够大仍然音量不够,就可以使用BOOST。但是使用了BOOST,
噪声会稍稍变大。
◆ ADC Digital Filter
主要作用是将超取样(Oversampling)的数据转换为正常的采样率的数据。很多ADC都是ΣΔADC,一般使用×4倍或×8倍超取样,而数字音频接口传输的数据是正常的采样率的音频数据,所以要使用数字滤波器进行采样率的转换。
◆自动电平控制——Automatic Lever Control (ALC)
该模块使用一个电平适时检测电路来对ADC的输出信号幅度进行测量,然后根据它来控制可编程增益放大器(PGA),改变其增益来使来实现录音音量的平衡。
录音的时候音源可能会时远时近,声音可能会时大时小。预先设定一个目标电平(target lever),我们希望录音的电平总是等于目标电平。当输入的声音信号幅度太大,超过目标电平时,就降低PGA增益;当输入的声音信号幅度太小,低于目标电平时,就提高PGA的增益。
ALC模块的框图结构如图所示:
ALC操作如图18所示。注意:使用ALC操作和不使用ALC操作的区别就是,使用ALC时,PGA的增益是可以变化的,有一个固定的目标电平;不使用ALC时,PGA的增益是固定的,没有目标电平。
————————————————
版权声明:本文为CSDN博主「大繁至简」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BHJ1119/article/details/81533342