3. DSP基础

各位同学,今天我们聊聊 Codec 的硬件架构。说实话,这部分内容在很多人看来就是「看 datasheet 就行」,但实际做项目时,你会发现坑全埋在这里。我最早做一款智能音箱的 Codec 驱动时,就因为没搞懂 PGA 的输入阻抗匹配,导致底噪大了 6 个 dB,被音频老大叫去会议室「喝茶」……嗯,从那以后,我对硬件架构的每个模块都格外上心。

3.1 ADC 与 DAC 的核心原理

ADC 和 DAC 是 Codec 的「翻译官」。一个把模拟世界的连续信号转成离散的数字码流,另一个反过来。你想想看,麦克风拾取的是空气振动,扬声器播放的也是空气振动,但中间的数字处理全靠 0 和 1,没有这对翻译官,啥都干不了。

3.1.1 ADC:从模拟到数字

常见的音频 ADC 架构有三种:

架构类型 采样率范围 典型应用 我个人觉得的优缺点
逐次逼近型 (SAR) ~1 MSPS 低功耗、中低端 Codec 结构简单,延迟低,但分辨率做不高
Δ-Σ (Delta-Sigma) ~10 MSPS 以上 高保真音频 Codec 过采样+噪声整形,信噪比极高,但延迟稍大
流水线型 (Pipeline) ~100 MSPS 高速、视频或仪器领域 音频里很少用,功耗大

音频领域,Δ-Σ ADC 是绝对的主流。为什么?因为它能把量化噪声推到高频段,再用数字滤波器切掉,这样在音频带内(20 Hz ~ 20 kHz)的信噪比可以轻松做到 100 dB 以上。我在项目中用过一颗 AKM 的 Codec,它的 Δ-Σ 调制器工作在 6.144 MHz,过采样率高达 128 倍,出来的声音底噪几乎听不见。

关键参数:ADC 的动态范围 (DR) 和总谐波失真加噪声 (THD+N)。这两个指标直接决定了录音的「干净程度」。我习惯先看 DR,再看 THD+N,如果 DR 低于 90 dB,做语音唤醒还行,做音乐录制就悬了。

3.1.2 DAC:从数字回到模拟

DAC 的原理和 ADC 对称,但实现上有个重要区别——输出重建滤波器。数字信号经过 DAC 转换后,会产生镜像频率(采样率的整数倍),必须用模拟低通滤波器把它们干掉,否则你听到的就是「数字味」的刺耳声。

我记得有一次调试蓝牙音箱,播放 1 kHz 正弦波时,频谱上在 48 kHz 附近出现了一个大包。查了半天,发现是 DAC 后的重建滤波器截止频率设得太高,镜像没滤干净。把滤波器拐点从 24 kHz 降到 20 kHz,问题解决。

小技巧:很多现代 Codec 把重建滤波器集成在片内,但外部通常还需要一个 RC 或 LC 低通网络做「二次滤波」。别省这个电容电阻,省了就是给自己挖坑。

3.2 模拟输入输出通道

Codec 的模拟通道,说白了就是信号进出的大门。输入通道负责把麦克风或 Line-in 信号调理好送给 ADC,输出通道负责把 DAC 出来的信号放大后送给扬声器或耳机。

3.2.1 输入通道结构

一个典型的模拟输入通道包含:

  • 输入选择器 (Input Mux):选择从哪个物理引脚进来,比如 MIC1、MIC2、LINE_IN。
  • 偏置电路 (Bias):给驻极体麦克风提供 2.0V ~ 2.5V 的偏置电压。
  • 前置放大器 (Pre-amp):把麦克风的毫伏级信号放大到 ADC 的满量程附近。
  • 抗混叠滤波器 (AAF):在 ADC 之前滤除高于奈奎斯特频率的信号,防止混叠。

这里有个容易忽略的点:输入阻抗匹配。我曾经接过一个案子,客户用高阻抗的 MEMS 麦克风,但 Codec 的输入阻抗只有 10 kΩ,结果信号衰减了 6 dB,信噪比直接崩了。后来在中间加了一级运放缓冲,才把指标拉回来。

3.2.2 输出通道结构

输出通道相对简单,但电流能力是关键:

  • DAC 输出缓冲器:提供足够的驱动电流。
  • 输出开关 (Output Mux):选择信号送到耳机、扬声器还是 Line-out。
  • 静音电路 (Mute):上电或切换时先静音,防止「噗」声。

注意:输出通道的 Pop/Click 噪声 是嵌入式音频最常见的客诉之一。我见过一个产品,每次播放开始都会「啪」一声,原因是 DAC 输出使能时,电容上的直流偏置突然建立。解决方案是:先使能 DAC 输出,再通过软斜坡 (Soft Ramp) 缓慢抬起音量。

3.3 混音器 (Mixer)

混音器是 Codec 内部的「调音台」。它可以把多路音频信号按不同比例叠加,再送到输出通道。你想想看,一个通话设备需要同时处理:麦克风输入、系统提示音、蓝牙电话音频,这三路信号怎么合到一起?靠混音器。

3.3.1 模拟混音 vs 数字混音

类型 实现位置 优点 缺点
模拟混音 ADC 之后、DAC 之前 零延迟,无量化误差 硬件固定,灵活性差
数字混音 DSP 内部 可编程,支持增益/均衡 有延迟,需考虑溢出

大多数中高端 Codec 同时支持两种混音方式。我个人习惯:低延迟场景用模拟混音,需要音效处理的场景用数字混音。比如对讲机产品,延迟要求高,我就走模拟混音;音乐播放器要做 EQ 和 DRC,那就必须走数字混音。

3.3.2 混音器的增益管理

混音时最怕什么?削波 (Clipping)。两路 0 dB 信号叠加,如果不做衰减,输出直接削波。所以混音器每个输入通道都有独立的衰减器,通常以 -6 dB、-12 dB 步进。

我遇到过一个问题:混音后的信号听起来「发闷」。查了半天,发现是混音器内部做了 -6 dB 衰减,但后续的 PGA 又补了 +6 dB 增益,等于白忙活,还引入了额外噪声。正确的做法是:在混音器里做衰减,后续 PGA 保持 0 dB 或微增益。

经验公式:混音器输出电平 = 20 * log10( Σ(10^(输入电平/20)) )。如果不想算,记住一个原则:两路 0 dB 信号混音,至少衰减 6 dB;三路衰减 9.5 dB;四路衰减 12 dB。

3.4 增益控制 (PGA)

PGA,全称 Programmable Gain Amplifier,可编程增益放大器。它是 Codec 里最容易被低估的模块。很多人以为 PGA 就是个「音量旋钮」,其实它的设计好坏直接决定了系统的动态范围。

3.4.1 PGA 的位置

通常 Codec 内部有两个 PGA:

  • 输入 PGA (ADC PGA):放在 ADC 之前,负责把模拟输入信号调整到 ADC 的最佳输入范围。
  • 输出 PGA (DAC PGA):放在 DAC 之后,负责驱动耳机或扬声器。

这里有个关键概念:增益分配。输入 PGA 增益太高,ADC 容易饱和;增益太低,量化噪声会淹没信号。我一般这样估算:

// 假设麦克风最大输出为 100 mV RMS
// ADC 满量程输入为 1 V RMS
// 所需 PGA 增益 = 20 * log10(1 / 0.1) = 20 dB

// 但实际要留 6 dB 余量,防止突发大声
// 所以 PGA 增益设为 14 dB 左右

3.4.2 PGA 的噪声与失真

PGA 不是完美的。增益越大,噪声也越大。我见过一款 Codec,它的 PGA 在 +30 dB 增益时,输出噪声比 +0 dB 时高了 15 dB。这意味着什么?如果你用高增益去放大一个弱信号,信噪比反而会变差。

避坑指南:我曾经在调试会议麦克风阵列时,发现远场拾音噪声很大。排查后发现,PGA 增益设到了 +36 dB,而麦克风本身的 SNR 只有 60 dB。后来换了一颗 SNR 为 70 dB 的麦克风,PGA 增益降到 +20 dB,噪声问题迎刃而解。记住:PGA 增益不是越高越好,要在信号电平和噪声之间找平衡。

3.4.3 自动增益控制 (AGC)

很多 Codec 的 PGA 支持 AGC 模式。AGC 会根据输入信号的平均电平自动调整增益,适合语音通信场景。但 AGC 有个副作用:呼吸效应——当说话者停顿或背景安静时,AGC 会逐渐提高增益,导致背景噪声被放大,听起来像在「呼吸」。

我处理过一个案例:某款对讲机产品,开启 AGC 后,在安静环境下能听到明显的「嘶嘶」声。解决方案是:限制 AGC 的最大增益,并设置较长的释放时间。具体参数:最大增益限制在 +20 dB,释放时间设为 2 秒,这样既保证了语音清晰度,又避免了噪声放大。

3.5 整体架构图

下面这张 SVG 图展示了典型 Codec 的硬件架构,从模拟输入到数字处理再到模拟输出,你可以对照着理解每个模块的位置和作用。

典型 Codec 硬件架构图 典型 Codec 硬件架构图 模拟输入 (MIC/LINE) 输入 Mux 输入 PGA ADC (Δ-Σ) 数字信号处理 (DSP) 混音 / EQ / DRC / 滤波 DAC (Δ-Σ) 输出 PGA 输出 Mux 模拟输出 (HP/SPK) 混音器 (Mixer) — 模拟域 / 数字域 说明:输入 PGA 调整信号到 ADC 最佳范围;输出 PGA 驱动负载;混音器可位于模拟或数字域 Δ-Σ ADC/DAC 通过过采样和噪声整形实现高信噪比

3.6 本章小结

好,我们来捋一下。Codec 的硬件架构,核心就是 ADC、DAC、模拟通道、混音器和 PGA 这五个模块。ADC 和 DAC 决定了信号转换的质量,Δ-Σ 架构是音频主流;模拟输入输出通道负责信号调理和驱动,阻抗匹配和 Pop 噪声是常见坑;混音器解决多路信号叠加问题,增益管理要小心削波;PGA 是动态范围的关键,增益分配和 AGC 参数需要根据实际场景调优。

说实话,这些知识点光看书是不够的。我建议你找一块开发板,用示波器看看 PGA 增益变化时噪声底的变化,用频谱仪看看混音器削波时的谐波分布。亲手摸一遍,比看十遍 datasheet 都管用。