开博尔用户交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 42|回复: 0

音频解码器入门系列(第二期):采样之后,声音还能完整还原吗?

[复制链接]

2

主题

1

回帖

61

积分

注册会员

积分
61
发表于 前天 12:07 | 显示全部楼层 |阅读模式
音频解码器入门系列(第二期):采样之后,声音还能完整还原吗?大家好,这是“音频解码器入门系列”的第二期。
第一期我们介绍了DAC的作用,也简单认识了采样率和位深。这一期不再重复这些参数的定义,而是进一步讨论:
  • 离散的采样点为什么能还原连续声音?
  • 采样频率不够会发生什么?
  • DAC输出的真是“台阶波”吗?
  • Dither为什么要主动加入噪声?
  • 44.1 kHz和48 kHz为什么不能直接混用?
一、采样点之间的声音去哪里了?观察数字音频波形时,我们看到的是一系列独立的采样点。
于是有人会问:
两个采样点之间没有数据,DAC怎么知道中间应该是什么形状?
实际上,DAC不是随意猜测两个采样点之间的波形。
如果原始信号已经被限制在允许的频率范围内,并且采样过程满足采样定理,那么整组采样点已经包含了重建原始信号所需的信息。
实际DAC通常会使用:
  • 数字插值;
  • 过采样;
  • 数字滤波;
  • 数模转换;
  • 模拟低通滤波。
这些处理共同完成连续模拟波形的重建。
所以,采样点之间并不是“缺少了一段声音”,而是中间的变化由完整采样序列共同确定。
二、采样点很少,为什么还能恢复高频信号?有一种常见观点认为:
一个正弦波周期只有几个采样点,画出来不像正弦波,所以不可能正确播放。
这个判断并不准确。
如果直接用直线连接采样点,得到的确实可能是锯齿或三角形状。但真正的DAC不会采用这种简单方法恢复波形。
在符合带宽限制的情况下,重建滤波器会根据连续多个采样点恢复平滑波形。
采样点的位置还会随着信号与采样时钟之间的相位关系变化:
  • 有时落在波峰附近;
  • 有时落在过零点附近;
  • 有时每个周期的位置都不一样。
因此,不能只看几个采样点的外观,就判断数字音频是否失真。
三、什么是混叠?如果进入ADC的信号频率过高,超出当前采样系统能够正确表示的范围,它可能在采样结果中变成另一个较低频率。
这种现象叫作:
混叠,英文是Aliasing。
它有点像拍摄高速旋转的车轮:
  • 车轮实际上快速向前旋转;
  • 视频中看起来却转得很慢;
  • 甚至可能看起来正在反转。
车轮没有真的反转,而是拍摄帧率与车轮转速之间产生了混淆。
音频系统中也是如此。原本位于高频区域的信号,可能被错误地折叠到可听频段,形成并不存在于原始声音中的杂音。
四、为什么ADC前面需要滤波器?真实的模拟输入不只有我们想录制的声音,还可能包含:
  • 超声频率;
  • 射频干扰;
  • 开关电源噪声;
  • 数字时钟耦合;
  • 模拟电路产生的宽带噪声。
为了避免这些高频成分发生混叠,ADC前面通常会设置模拟低通滤波器,称为抗混叠滤波器。
录音链路可以表示为:
模拟输入 → 抗混叠滤波 → ADC采样 → 数字音频
混叠发生后,错误信号已经进入有效音频范围。
系统看到一个5 kHz信号时,可能无法判断它原本就是5 kHz,还是由更高频率成分混叠而来。因此,混叠的重点是采样前预防,而不是事后修复。
这也说明,ADC芯片性能很高,并不代表整个录音电路一定优秀。输入滤波、供电、参考电压和PCB布局同样重要。
五、DAC输出的是台阶波吗?在音频软件中不断放大数字波形,通常会看到类似台阶的图形。于是有人认为,DAC输出的也是一串台阶电压。
实际上,软件中的台阶主要是一种显示方式。
DAC输出前后还会经历插值、过采样和滤波。经过完整处理后,送往后级的是连续变化的模拟信号,而不是音频软件里显示的方形台阶。
DAC的基本工作过程可以表示为:
数字数据 → 插值和数字滤波 → DAC转换 → 模拟低通滤波 → 连续模拟输出
如果明显的高速台阶和开关成分直接进入后级,就会包含大量不需要的高频能量,并可能增加运放、功放和扬声器的负担。
六、DAC后面为什么也需要滤波?DAC完成转换后,输出中除了目标音频,还可能存在:
  • 采样镜像;
  • 高频开关成分;
  • 时钟相关干扰;
  • Delta-Sigma噪声整形产生的带外噪声。
因此,DAC输出后通常需要模拟低通滤波器。
它的任务是保留需要的音频频段,同时衰减不需要的高频成分。这类滤波器也叫重建滤波器。
设计时需要综合考虑:
  • 音频通带是否平坦;
  • 高频噪声能否得到足够衰减;
  • 运放是否稳定;
  • DAC输出是电流还是电压;
  • 后级输入阻抗;
  • 电阻和电容的误差;
  • PCB寄生参数。
所以,同一颗DAC芯片配合不同的模拟滤波和输出电路,最终测量结果可能不同。
七、什么是量化误差?模拟信号的幅度可以连续变化,但数字系统只能使用有限的数值记录它。
当实际输入处在两个数字等级之间时,系统必须选择其中一个数值。实际幅度与记录结果之间的差异,就是量化误差。
对于幅度较大的复杂音乐,量化误差可能表现得比较接近噪声。但在低电平、规律性较强的信号中,它也可能表现为:
  • 谐波失真;
  • 周期性杂散;
  • 低电平波形变形;
  • 声音尾部不自然地消失。
因此,数字系统中的量化问题并不只是“噪声稍微增加”,还可能影响低电平信号的线性度。
八、为什么要加入Dither?当高位深音频转换为较低位深时,如果直接舍弃多余的低位,量化误差可能与原信号形成规律性的关系。
为减少这种失真,可以在位深转换前加入极小幅度的随机噪声。这种处理叫作Dither。
听起来似乎有些矛盾:
为什么为了提高质量,反而要主动加入噪声?
因为少量、均匀的噪声通常比与音乐相关的非线性失真更自然。
加入正确的Dither后:
  • 总噪声会略微增加;
  • 量化误差会更加随机;
  • 低电平信号的线性度得到改善;
  • 很小的信号不会突然被截断。
Dither是一种正常的数字音频处理手段,并不等于破坏音质。
另外,Dither与时钟Jitter不是同一个概念。
  • Dither用于改善量化过程;
  • Jitter是时钟边沿在时间上的偏移。
两者只是中文表达中都可能出现“抖动”一词,实际原理完全不同。
九、44.1 kHz和48 kHz为什么不能直接混用?数字音频中常见两套采样率体系。
音乐发行常用:
  • 44.1 kHz;
  • 88.2 kHz;
  • 176.4 kHz。
影视和广播常用:
  • 48 kHz;
  • 96 kHz;
  • 192 kHz。
如果把44.1 kHz的数据直接按照48 kHz的速度送给DAC:
  • 播放速度会变快;
  • 音调会升高;
  • 整首音乐的播放时间会缩短。
反过来播放,速度和音调都会降低。
要保持原来的速度和音调,系统需要:
  • 切换到正确的音频时钟;
  • 或进行采样率转换,也就是SRC。
因此,调试DAC时不能只看软件显示,还应该实际测量:
  • LRCK;
  • BCLK;
  • MCLK;
  • 各时钟之间的比例。
十、升频能增加声音细节吗?把44.1 kHz文件转换成96 kHz或192 kHz,叫作升频或上采样。
升频之后,采样点数量确实增加了,但新增采样点是根据原有数据计算出来的。
因此:
升频不能恢复原文件中从未保存的信息。
合理升频仍然可能有工程价值,例如:
  • 统一系统内部采样率;
  • 把数字滤波放到外部处理器完成;
  • 为均衡、音量和DSP运算提供方便;
  • 改变DAC的滤波方式;
  • 简化某些时钟和数据处理流程。
但仅凭文件从44.1 kHz变成192 kHz,不能证明它增加了新的真实音乐细节。
十一、怎样检查采样系统是否正常?调试ADC或DAC时,可以采用以下方法。
测量音频时钟使用示波器或频率计检查:
  • LRCK频率是否等于实际采样率;
  • BCLK与LRCK比例是否正确;
  • MCLK是否符合DAC要求;
  • 切换采样率后时钟是否同步变化。
播放已知正弦信号使用1 kHz或其他已知频率测试信号,观察:
  • 输出频率是否正确;
  • 是否出现额外杂散;
  • 是否出现镜像或混叠;
  • 左右声道是否一致;
  • 切换采样率时是否爆音。
进行多采样率切换反复切换44.1、48、96和192 kHz,检查:
  • DAC是否丢锁;
  • PLL是否重新锁定;
  • 静音控制是否正确;
  • USB与I²S配置是否同步;
  • 输出是否出现瞬态冲击。
如果软件显示96 kHz,但LRCK实测并不是96 kHz,就说明数据链路或时钟配置存在问题。
本期总结
数字音频并不是把声音切成无法连接的小碎片,而是在满足采样条件的情况下,用一组离散数据描述连续信号。
下期预告第三期:DAC芯片内部是怎样工作的?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开博尔用户交流论坛 ( 粤ICP备10004586号-5 )

GMT+8, 2026-9-2 03:52 , Processed in 0.044871 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.