理解数字音频 - Matlab 中的“来自音频设备”

信息处理 matlab 声音的
2022-02-19 22:20:38

我了解数字音频具有采样率(时间“离散化”)和位深度(“幅度”离散化)。此外,它可以有多个通道(立体声为 2 个通道)。

但是我在互联网上找不到的东西:

  1. 位深度离散化的范围是多少?我的经验是运动,所以我知道如果我有一个范围为 +-10 g 的加速度计,并且我将其离散化为 8 位,那么我将获得 20g/256 的分辨率。音频中的等价物是什么?
  2. Matlab 的 Simulink 有一个用于读取音频的模块。它的输出具有 MxN(xTime) 的维度,其中 M 是“连续样本”的数量,N 是通道数。什么是“连续样本”(在与“帧大小(样本)”相同的帮助文件中也称为)。如果我将此值设置为 1,我会得到我对单声道声音的期望,只是振幅的时间历史。但是,如果我将其设置为两个,就好像它们都相同,但在快速转换方面存在细微差别。这是为了让信号的平均值更“真实”吗?

这是 Simulink 模块的链接:http: //www.mathworks.com/help/dsp/ref/fromaudiodevice.html

2个回答

1)麦克风将音频信号转换为电信号,然后该电信号通常通过放大器,然后到ADC。ADC通常对电信号的电压进行采样,这直接类似于音频信号的压力。

如果您想用音频术语来考虑它,可能最有用的方法是您的麦克风/放大器/某物在某个 dB 级别饱和。我们称其为“X”dB。那是你的信号最大化的地方。如果您有 16 位采样,那么您可以跨越 = 96 dB 的分贝范围。这意味着,在理想情况下,您可以覆盖从“X”dB 到“X” - 96 dB 的音频信号。由于世界并不理想,您可能无法获得整个范围,但您可能会非常接近。20log10(216)

2)“连续样本”只是指样本的数量。他们在那里扔“连续”只是说他们没有跳过样本。如果将该值设置为 1,则每个通道只能获得一个样本,这可能不是您想要做的。通道数是指音频源的数量。对于单声道,您将其设置为 1。对于立体声,您将其设置为 2。

通常,音频样本在每个时间离散化单位(以 44100 个样本/秒的采样率,每大约 22.676 uS 一次,连续意味着在不跳过任何这些离散时间单位的情况下完成)进行测量,并以块为单位进行分析,因此摊销任何固定的每块开销(中断延迟、子程序调用开销等)。例如,可以使用 M = 4096 的块大小,以便使用该长度的 FFT 处理音频样本,效率为 O(MLogM)。由于块中的样本是连续获取的,因此它们都不会需要单独加时间戳,因为可以从块阵列中的每个样本位置和采样率推断出相对时间。

除非音频中有高频内容,否则两个相邻的连续样本不会有太多时间变化。这可能就是为什么当您连续查看 2 个时它们的值看起来相似的原因。

幅度单位是任意的,取决于麦克风、前置放大器、AGC 和 ADC 等的增益,它们几乎可以是任何东西,除非您针对某些已知源进行校准。通常,在增益之前已经设置好之后,通常会尽量不要摆弄它,这样对于使用的幅度量化和数字大小(16 位等)来说,值不会太小或太大。