摘要
音频Codec的参数直接决定了音质上限。选择Codec时不能只看信噪比或失真指标,还需要理解这些参数背后的测试条件和实际含义。本文系统解析Codec的关键参数(SNR、THD+N、动态范围、时钟抖动敏感度),并说明不同测试条件下的参数差异,以及选型中的常见误区。数据参考AES17和Intel HDA规范,不确定处另行注明。
一、音频Codec的核心参数体系
1.1 参数分类概览
| 类别 | 参数 | 重要性 | 说明 |
|---|
| 动态范围 | SNR、DNR | 核心 | 决定最小信号与最大信号的比例 |
| 失真 | THD+N、IMD | 核心 | 决定音质的纯净度 |
| 线性度 | IMD、噪声 | 重要 | 影响复杂信号的保真度 |
| 时钟要求 | Jitter敏感度 | 关键 | 决定系统设计难度 |
| 功耗 | 工作电流 | 参考 | 影响便携设备续航 |
1.2 参数之间的关系
| 关系 | 说明 |
|---|
| SNR与THD+N | 通常此消彼长,需要权衡 |
| 动态范围与噪声地板 | 动态范围约等于SNR(-174dBFS + SNR) |
| 分辨率与线性度 | 24bit不一定比16bit在THD上更好 |
二、动态范围参数详解
2.1 信噪比(SNR)
SNR = 有用信号功率 / 噪声功率,通常以dB为单位。
| 位深 | 理论SNR | 实际SNR(优质Codec) | 入门Codec |
|---|
| 16bit | 98dB | 95-100dB | 85-95dB |
| 24bit | 146dB | 110-120dB | 95-110dB |
| 32bit | 192dB | N/A(处理精度非输出精度) | N/A |
关键点: 24bit Codec的实测SNR很少超过120dB,因为模拟前端限制了动态范围。
2.2 动态范围(DNR)
动态范围是Codec可以处理的从最弱到最强信号的范围:
| 指标 | 测试方法 | 说明 |
|---|
| DNR | 1kHz正弦波,0dBFS输出,测量噪声 | 静音时的本底噪声相对最大值 |
| SNR | 满刻度信号与噪声的比值 | 通常DNR略大于SNR |
| 六九(-60dB)法 | 输入-60dBFS正弦波,测量输出失真 | 反映小信号线性度 |
2.3 不同测试条件的影响
| 条件 | 差异 | 说明 |
|---|
| A-weighted vs Flat | A-weighted高约3dB | 人耳对低频不敏感 |
| 20Hz-20kHz vs 20Hz-80kHz | 宽频测量更严格 | 超声噪声会降低指标 |
| 输入阻抗负载 | 影响模拟输出 | 高阻抗负载声压更好 |
三、失真参数详解
3.1 总谐波失真加噪声(THD+N)
THD+N是所有谐波失真成分加上噪声的总和:
| 等级 | THD+N | 主观听感 |
|---|
| 消费级 | -80dB(0.01%) | 透明,难以分辨 |
| 专业级 | -90dB(0.003%) | 录音棚级别 |
| 旗舰级 | -100dB以下(0.001%) | 极度纯净 |
3.2 谐波失真成分分析
| 谐波次数 | 听感影响 | 说明 |
|---|
| 2次谐波 | 温暖,饱满 | 多数情况下可接受 |
| 3次谐波 | 刺耳,尖锐 | 通常被认为不好听 |
| 高次谐波 | 杂音感 | 主要失真来源 |
3.3 互调失真(IMD)
双音测试(19kHz+20kHz)产生的互调产物:
| 测试方法 | 说明 |
|---|
| SMPTE(4:1) | 4kHz:200Hz,4:1幅度比 |
| CCIF | 19kHz:20kHz,等幅 |
| DFD(差频失真) | 观察低频差拍产物 |
四、Codec的时钟要求
4.1 主时钟(MCLK)频率
| 采样率 | MCLK(通常128fs) | MCLK(通常256fs) |
|---|
| 44.1kHz | 5.6448MHz | 11.2896MHz |
| 48kHz | 6.144MHz | 12.288MHz |
| 96kHz | 12.288MHz | 24.576MHz |
| 192kHz | 24.576MHz | 49.152MHz |
4.2 时钟抖动敏感度
| Codec级别 | 最大允许Jitter | 说明 |
|---|
| 入门级 | 1-2ns RMS | 对时钟不敏感 |
| 中端 | 500ps-1ns RMS | 需要注意时钟质量 |
| 高端 | 100-500ps RMS | 需要超低抖动晶振 |
| 旗舰 | 小于100ps RMS | 需要顶级时钟设计 |
4.3 常见的时钟架构
| 架构 | 说明 | 适用场景 |
|---|
| 异步模式 | Codec使用内部PLL恢复时钟 | 需要良好的本地时钟 |
| 同步模式 | Codec直接使用MCLK | 依赖前端时钟质量 |
| 自适应模式 | Codec跟踪源端时钟 | 性能折中 |
五、Codec参数的实际测量
5.1 标准测量条件
| 条件 | 标准值 | 说明 |
|---|
| 负载 | 10k欧姆(线路输出) | 阻抗负载影响输出电平 |
| 输入源阻抗 | 小于100欧姆 | 信号源阻抗影响失真 |
| 测试带宽 | 20Hz-20kHz,A-weighted | 标准音频测量带宽 |
| 参考电平 | 0dBFS = 1kHz正弦波 | 通常0dBFS = 1Vrms |
5.2 数据手册参数的常见猫腻
| 猫腻 | 说明 | 如何识别 |
|---|
| 不注明测试条件 | SNR是在何种带宽下测量的? | 询问AES17或HDA规范 |
| 典型值而非最大值 | 数据手册只给典型值 | 要求最差情况的参数 |
| 功耗标注最大而非典型 | 发热设计需要关注实际功耗 | 询问实际工作功耗 |
| 动态范围标称值而非SNR | 混淆动态范围和信噪比 | 要求提供SNR的具体数值 |
六、选型决策指南
6.1 按应用场景选型
| 应用 | 推荐THD+N | 推荐SNR | 说明 |
|---|
| TWS耳机(单端输出) | 大于-90dB | 大于100dB | 集成Codec足够 |
| 便携解码耳放 | 大于-95dB | 大于110dB | 外置Codec更佳 |
| 专业录音接口 | 大于-100dB | 大于115dB | 旗舰级Codec |
| 家庭影院AV功放 | 大于-95dB | 大于105dB | 多声道同步 |
6.2 常见Codec方案对比
| 型号 | 架构 | THD+N | SNR | 输出类型 | 封装 | 目标市场 |
|---|
| PCM5102A | 立体声DAC | -93dB | 106dB | 差分 | QFN-28 | 消费级 |
| AK4493EQ | 立体声DAC | -112dB | 120dB | 差分 | LQFP-48 | 高端消费 |
| ES9038PRO | 立体声DAC | -122dB | 140dB | 差分 | QFN-48 | 旗舰Hi-Fi |
| WM8740 | 立体声DAC | -100dB | 117dB | 差分 | SSOP-28 | 专业级 |
| TAS1020 | USB Audio | -85dB | 95dB | 单端 | QFN-32 | 入门级 |
6.3 选型中的常见误区
| 误区 | 正确理解 |
|---|
| 位深越高音质越好 | 24bit Codec的实测SNR可能不如高质量16bit Codec |
| THD越低越好 | 2次谐波为主的失真可以接受,高次谐波才是问题 |
| 数据手册参数越高越好 | 需要在相同测试条件下比较才有意义 |
| 旗舰Codec一定比中端好听 | 系统其他部分(时钟、电源、模拟输出)同样重要 |
七、Codec外围电路设计
7.1 输出低通滤波器
| 参数 | 计算方法 | 推荐值 |
|---|
| 截止频率 | 大于20kHz,留有余量 | 35-50kHz |
| 滤波器阶数 | 2阶或3阶 | 2阶Sallen-Key足够了 |
| 元件选择 | C0G/NPO电容 | 减少温度漂移 |
7.2 电源设计
| 设计要点 | 说明 |
|---|
| 数字电源与模拟电源分离 | 减少数字开关噪声耦合 |
| LDO为模拟部分供电 | 开关电源纹波会影响SNR |
| 去耦电容 | 每颗Codec电源引脚加100nF |
7.3 时钟设计
| 要点 | 说明 |
|---|
| MCLK走线短 | 减少寄生电容和电感 |
| 晶振靠近Codec | 减少时钟抖动 |
| 避免时钟线穿越大电流区域 | 减少串扰 |
八、总结
音频Codec的选型需要综合考虑动态范围、失真特性、时钟要求和功耗等多个维度。SNR和THD+N是核心指标,但需要关注测试条件。时钟抖动敏感度往往是选型中被忽视的关键参数,高端Codec对时钟质量要求极高。选型时应根据具体应用场景(消费级、专业级、旗舰级)选择合适的Codec,同时不能忽视外围电路(电源、滤波器、时钟)对最终音质的影响。
常见问题(FAQ)
Q1:为什么数据手册上的SNR和实际测量有差异?
数据手册通常在最佳测量条件下测试(低噪声电源、正确负载、指定的测试带宽),而实际电路中电源噪声、地电位差、走线寄生参数都会降低实测性能。建议在电路设计中预留测量点,以便验证实际性能是否达到预期。
Q2:codec的THD+N指标是在什么功率下测试的?
大多数Codec数据手册的THD+N是在0dBFS(满刻度)输出下测试的。部分数据手册会提供-20dBFS或-60dBFS下的THD+N,这对于评估小信号表现很有帮助。需要注意的是,Codec在接近0dBFS时失真最低,在低电平时失真占比可能更高。
Q3:如何判断Codec是否需要外部晶振?
如果Codec内部有PLL且支持异步模式,可以使用内部时钟(音质略差但设计简单)。如果追求最高音质,应使用外部低抖动晶振。高端Codec(如ESS ES9038、AK4499)通常要求外部超低抖动晶振才能发挥全部性能。
Q4:同一个Codec用于耳机输出和线路输出,设计上有何不同?
耳机输出需要更大的驱动电流(几十毫安),因此对电源和热设计要求更高。线路输出通常只需要几毫安的驱动能力,可以使用更简单的设计。两者的滤波器设计也不同,耳机输出需要考虑阻抗匹配问题。
Q5:为什么有些Codec的参数看起来一般,但听起来却很好?
这通常是因为人耳对某些类型的失真(如2次谐波)不如对其他(如高次谐波)敏感。部分Codec在设计上刻意保留2次谐波以获得更“温暖”的听感。另外,Codec的输出级设计(模拟部分)质量对听感影响可能超过数字部分的表现。