1. 音频系统概述:声音的物理特性、数字音频基础与信号链全景图

各位同学,欢迎来到《音频DSP算法与Codec协同开发实战》的第一章。

做音频系统开发这么多年,我见过太多工程师一上来就撸代码,结果板子一跑全是噪声。说白了,音频开发最怕的就是「知其然不知其所以然」。你连声音是怎么变成0101的都不清楚,怎么去调Codec的寄存器?怎么去写DSP算法?

所以这一章,咱们先把地基打牢。我会从声音的物理特性讲起,然后带你理解数字音频的三个核心参数,最后给你一张完整的音频信号链全景图。嗯,这张图你以后做项目时随时可以翻出来看。

1.1 声音的物理特性:从振动到电信号

声音的本质是什么?说白了就是机械振动在介质中的传播。空气分子被振源推来推去,形成疏密波,传到我们耳朵里,鼓膜跟着振动,大脑就「听」到了声音。

描述一个声音,我们通常关注两个物理量:

  • 频率(Frequency):单位Hz,决定音调高低。人耳能听到的范围大约是20Hz~20kHz。低于20Hz叫次声波,高于20kHz叫超声波。我在项目中遇到过客户非要让喇叭播放15Hz的「超重低音」,结果喇叭振膜直接拍到底,烧了。嗯,物理规律不能硬来。
  • 振幅(Amplitude):决定响度大小。通常用声压级(SPL,单位dB)来衡量。0dB SPL是人耳刚好能听到的阈值,120dB SPL就开始痛了。

一个重要的概念:人耳对频率的感知不是线性的。低频和高频的灵敏度都比中频差。这就是为什么音响系统里经常要加等响度控制(Loudness Contour)。你想想看,小音量听歌时觉得低频不够,不是喇叭不行,是人耳生理特性决定的。

1.2 数字音频基础:采样率、位深、通道数

模拟信号要进数字系统,必须经过采样和量化。这里三个参数决定了数字音频的质量和带宽。

1.2.1 采样率(Sample Rate)

采样率就是每秒钟对模拟信号采多少个点。根据奈奎斯特采样定理,采样率必须大于信号最高频率的两倍,才能无失真地重建原始信号。

采样率 常见应用场景 可还原最高频率
8 kHz 电话语音 4 kHz
16 kHz VoIP、语音识别 8 kHz
44.1 kHz CD音质 22.05 kHz
48 kHz 电影、专业音频 24 kHz
96 kHz / 192 kHz 高解析度音频 48 kHz / 96 kHz

我个人习惯,做语音产品用16kHz就够了,做音乐播放器至少48kHz起步。别盲目追求高采样率,数据量翻倍,MCU的DMA带宽和存储压力都会上来。

1.2.2 位深(Bit Depth)

位深决定了每个采样点的精度,也就是动态范围。每增加1位,动态范围增加约6dB。

  • 16-bit:动态范围96dB,CD标准。大多数消费级产品够用。
  • 24-bit:动态范围144dB,专业录音和后期制作常用。
  • 32-bit float:动态范围理论上无限大,主要用于DAW内部处理,避免溢出。

避坑指南:我曾经在一个项目里用了24-bit的ADC,但DSP只支持16-bit处理。结果高位截断后,底噪直接抬高了48dB。你想想看,硬件花了大价钱买高精度ADC,软件一剪刀下去全白费。所以Codec的位深和DSP的处理位宽必须对齐。

1.2.3 通道数(Channels)

通道数就是同时传输或处理的独立音频信号数量。

  • Mono(单声道):1个通道。语音、对讲机。
  • Stereo(立体声):2个通道。音乐、耳机。
  • 5.1 / 7.1 / Atmos:多通道环绕声。家庭影院、汽车音响。

通道数直接影响数据量。计算公式很简单:

数据率 (bps) = 采样率 (Hz) × 位深 (bits) × 通道数

举个例子,CD音质的立体声:

44100 × 16 × 2 = 1,411,200 bps ≈ 1.41 Mbps

这个数字你记着,后面设计音频链路时,I2S总线的时钟频率、DMA的带宽都要按这个算。

1.3 音频信号链全景图

好了,理论讲完了,咱们来看一张全景图。这张图我画了很多遍,每次带新人时都会拿出来讲。它把整个音频系统从模拟输入到模拟输出串起来了。

核心思路:音频信号链 = 模拟前端 → 数字处理 → 模拟后端。中间的数字部分,就是DSP算法和Codec协同工作的主战场。

音频信号链全景图 音频信号链全景图 麦克风/Line In 模拟信号输入 模拟前端 PGA / 滤波 / 偏置 ADC 采样 + 量化 数字处理核心 DSP算法(EQ/DRC/AEC/ANS) Codec数字接口(I2S/TDM) MCU/DSP控制(I2C/SPI) DAC 数模转换 模拟输出 功放 / 耳机 / 喇叭 关键说明: 1. 模拟前端(AFE)包括麦克风偏置、可编程增益放大器(PGA)和抗混叠滤波器。 2. ADC和DAC通常集成在Codec芯片内部,但外部模拟电路的质量直接影响信噪比。 3. 数字处理核心是DSP算法和Codec协同工作的区域,I2S负责音频数据流,I2C/SPI负责控制。 4. 模拟输出端要注意功放的THD+N和输出功率匹配,否则再好的算法也白搭。

这张图里,我特别想强调中间那个紫色的大框——数字处理核心。这是咱们这门课的主战场。DSP算法跑在MCU或者专用的DSP核上,Codec负责把数字信号转成模拟信号(DAC)或者反过来(ADC)。两者之间通过I2S总线传音频数据,通过I2C或SPI总线传控制命令。

我的经验:刚开始做音频系统时,我总以为算法写好了就万事大吉。后来发现,Codec的寄存器配置稍微差一点,比如PGA增益设错了、采样率分频系数算偏了,整个系统的性能就崩了。所以,DSP算法和Codec的协同,不是「各管各的」,而是「你中有我,我中有你」。

1.4 本章小结

这一章我们干了三件事:

  1. 理解了声音的物理本质——频率和振幅。
  2. 掌握了数字音频的三个核心参数——采样率、位深、通道数,以及它们如何影响数据量和系统设计。
  3. 画出了完整的音频信号链全景图,明确了DSP算法和Codec在其中的位置和关系。

这些东西看起来基础,但我在实际项目中见过太多人栽跟头。比如采样率不匹配导致声音变调,位深不对齐导致底噪飙升,信号链上某个环节的增益没算好导致削波失真。嗯,这些坑后面咱们都会一个一个填。