关于数字音频的采样精度

音频的一个采样用几个bit来表示,叫采样精度,又叫位深(bit-depth)。我们常用的位深是16bit,也就是16bit表达一个采样,这样,最高信噪比可以表示为20log(2^16)=96db,而用24bit位深的话,最高信噪比可以到达20log(2^24)=144db。
专业的数字音频处理软件内部其实都是用float型来表示一个采样,也就是32bit,那么最高信噪比可以达到193db,这个信噪比已经非常高了。
我们需要达到的目标,比如达到业界vivo的codec cs4398信噪比120db,这个只需要24bit就能在理论上提供了可行性。
对于MP3等有损格式,无论压缩前的pcm数据是24bit还是16bit的,压缩过程中都会尽量使用最小bit-depth来存储数据,因此解码时的bit-depth理论上时没有意义的。但是工程上讲,使用24bit解码器的mp3,解码时进行加减乘除运算的精度变大,从而能提高一些信噪比。
为了方便处理,通常会把24bit放入一个32bit int,怎么放呢?跟容器类型和机器大小端有关系。
比如WAV容器,它存储是小端的,这样,存储0xAABBCC这个24bit的采样就需要存成:
CC BB AA (---地址从低到高--->)
为了转化为 int32_t 进行处理,需要把它的高位填充到一个 int32_t 型数中的高位,而最低 8位补零,最终得到 0xAABBCC00 。由于arm 也是小端的,内存中应该是这样的布局:
00 CC BB AA (---地址从低到高--->)
### 数字麦克风采样精度的技术规范 数字麦克风的采样精度主要取决于其模数转换器(ADC)的能力以及设计中的信号处理链路性能。以下是关于数字麦克风采样精度的一些关键技术信息: #### 1. **采样深** - 数字麦克风通常采用脉冲密度调制(PDM)或 I²S 接口输出数字化音频信号。对于 PDM 输出,虽然理论上是单比特流,但由于后续处理中可以通过过采样和滤波实现高分辨率效果,实际有效数可以达到 16 甚至更高[^6]。 - 对于支持 I²S 的数字麦克风,可以直接提供高达 24 的有效采样精度,这使得它们适合用于高质量录音设备。 #### 2. **信噪比 (SNR)** - SNR 是衡量数字麦克风采样精度的重要指标之一。较高的 SNR 表明能够更精确地捕捉声音细节而不会被噪声淹没。典型消费级产品可能具有约 60 dB 至 70 dB 的 SNR 值,而对于专业用途,则可超过 90 dB[^7]。 #### 3. **动态范围** - 动态范围定义了最大不失真输入电平与最低可检测信号之间的差异。更大的动态范围意味着更好的能力来表示从极安静到非常响亮的声音变化而不失真。一般而言,高品质数字麦克风应具备至少 90dB 或以上的动态范围[^8]。 #### 4. **总谐波失真加噪声(THD+N)** - THD+N 测量的是由于非线性引起的任何额外频率成分加上随机噪声总量的比例。低水平的 THD+N 提供更加纯净无瑕的声音再现。优秀的数字麦克风应该保持低于 -90dB 的 THD+N 性能标准[^9]。 #### 示例代码展示如何配置一个简单的I²C接口读取来自特定型号数字MEMS麦克风的数据: ```c #include <Wire.h> void setup() { Wire.begin(); // 初始化I2C通信 } void loop() { int data; Wire.requestFrom(0x2A, 2); // 请求两字节数据从地址为0x2A的传感器 while(Wire.available()) { char c = Wire.read(); Serial.print(c); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值