技术总结_Audio CODEC 基本知识及应用
[内容摘要]:本文介绍了音频 CODEC 芯片中的 ADC 和 DAC 模块的相关知识,
针对芯片内的一些数字音频的相关功能模块,作了介绍,以及简单地描述了如何
来使用它们。这些功能基本都由软件来设置,但是在硬件设计的时候,必须知道
在什么时候要使用这些功能,如何使用,以及如何设置相关的寄存器;另外,在
评估这些芯片的时候,这些功能也是重要的指标。
[关键词]:数字音频接口、限压器、低音增强、数字去加重滤波器、均衡器、采
样率转换器、数字滤波器、自动电平控制(ALC)。
一、DAC 部分
数
字
音
频
接
口
下面的都是可选数字功能:
◆Digital Limiter;
◆Bass Boost;
◆Digital Volume Control;
◆Digital De-emphasis Filter;
◆N Band EQ;
◆Soft Mute
SRC
Digital
Filter
DAC
模
拟
LPF
模拟
信号
图 1 DAC 部分的框图
◆ 数字音频接口:
1、I2S 接口
I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传
输而制定的一种总线标准。在飞利浦公司的 I2S 标准中,既规定了硬件接口规范,
也规定了数字音频数据的格式。I2S 有 3 个主要信号:
位时钟
BCLK
左 右 声 道 切 换 时 钟
LRCK
即对应数字音频的每一位数据,BCLK 都有 1 个脉冲。BCLK 的频
率=2×采样频率×量化位数。
用于切换左右声道的数据。一般应用,LRCK 为“1”表示正在传输
的是左声道的数据,为“0”则表示正在传输的是右声道的数据。
LRCK 的频率等于采样频率,例如对于 44.1KHz 的 MP3,解码后通
过 I2S 接口传输,那么 LRCK 的频率就是 44.1KHz。。
就是用二进制补码表示的音频数据
串行数据 SDATA
数据是 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。
图 2 左对齐格式
图 3 右对齐格式
硬件连接图 5、6。
图 4 I2S 格式
图 5 CODEC 作主模式
图 6 CODEC 作从模式
2、PCM 接口
PCM 接口和 I2S 接口的硬件连接完全一样,不同的是数据格式。只要芯片
可以支持,这两种接口能够兼容。
图 7 PCM 格式
3、SPDIF 接口
它是(Sony/Philips Digital InterFace)SONY、PHILIPS 家用数字音频接口的
简称,可以传输线性 PCM 流和 Dolby Digital、DTS 这类环绕声压缩音频信号。
它只有两条线分别不同方向传输:Tx 和 Rx。SPDIF 从传输介质上来分为同轴和
光纤两种,其实它们可传输的信号是相同的,只不过是载体不同,接口和连线外
观也有差异。但光信号传输是今后流行的趋势,其主要优势在于无需考虑接口电
平及阻抗问题,接口灵活且抗干扰能力更强。
◆Digital Limiter;
限压器(limiter)。限压器通常用来在播放(playback)时,自动衰减那些过
高或突发的高电平信号,防止对喇叭、功放等造成损坏,同时也可以减缓信号的
大幅度失真。
图 8 限压操作
◆ 低音增强——Bass Boost:
用来设置低音表现力。利用 Bass Boost 的音效,可以在音乐回放时得到低
音增强的效果,使的音乐更具震撼力。它一般有 4 种值可选:高、中、低和无增
强。
图 9 低音增强频响曲线
◆ 数字音量控制器 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 这一
来一回的计算,反而造成了更大的失真。
图 10 数字去加重频响曲线
◆ 均衡器( 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。
图 11 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,这样声卡可以节省一颗
晶振,降低了成本。
部就有SRC模块。
在有些音乐芯片内部,采用的固定转换频率的DAC,例如YMU788,所以内
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)。
对于上面这个谱,由于谱线簇相邻很近,需要过渡特性十分陡峭,类似于下图
的低通滤波器才能保证足够的带外噪声衰减。这样的滤波器特性在实用工程上根
本无法做到。
LPF 滤波特性
fs
0 20 24.1 44.1 64.1 f(kHz)
图 12 不使用超取样对滤波器要求严格
如果采用超取样,比如说×8 倍,那么相邻谱线簇的频率间隔就不再是
44.1KHz,而是 44.1×8=352.8KHz,这样就允许采用较低阶的,简单的低通滤波
器,在有限的成本下同时满足信噪比,带内波动,相位特性等诸多要求。
过取样本身不会对量化精度(比特数)产生任何影响,原来是 16bit 过取样后
还是 16bit,但它会改变信号功率谱密度在频率轴上的分布。
◆ 采样率转换和超采样的区别:
在数字信号处理领域,凡根据相邻两个或多个样值而人为增加相关样值的处
理称为插值(interpolation)。得到的样值序列并不一定要与内插前的样值序列
在取样率上成整数倍关系。所以,事实上取样率的提高本身就是数据内插的自然
结果。
采样率转化可以提升和降低采样频率,而过采样只是提升采样率;采样率转
化不一定是采样率成整数倍的提高,而过采样则是。
采样率转换和过采样的目的有所不同。前者是为了把各种不同取样率的音源
转换为统一的采样率,方便接受各种不同音源如 CD,DAT,DVD 等等;而后者是
以拉开谱线簇之间的频率间隔,减少混叠噪声和简化后续低通滤波器为目的.