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协同工作的主战场。
这张图里,我特别想强调中间那个紫色的大框——数字处理核心。这是咱们这门课的主战场。DSP算法跑在MCU或者专用的DSP核上,Codec负责把数字信号转成模拟信号(DAC)或者反过来(ADC)。两者之间通过I2S总线传音频数据,通过I2C或SPI总线传控制命令。
我的经验:刚开始做音频系统时,我总以为算法写好了就万事大吉。后来发现,Codec的寄存器配置稍微差一点,比如PGA增益设错了、采样率分频系数算偏了,整个系统的性能就崩了。所以,DSP算法和Codec的协同,不是「各管各的」,而是「你中有我,我中有你」。
1.4 本章小结
这一章我们干了三件事:
- 理解了声音的物理本质——频率和振幅。
- 掌握了数字音频的三个核心参数——采样率、位深、通道数,以及它们如何影响数据量和系统设计。
- 画出了完整的音频信号链全景图,明确了DSP算法和Codec在其中的位置和关系。
这些东西看起来基础,但我在实际项目中见过太多人栽跟头。比如采样率不匹配导致声音变调,位深不对齐导致底噪飙升,信号链上某个环节的增益没算好导致削波失真。嗯,这些坑后面咱们都会一个一个填。