我购买了一个 PCM2903C 模数转换器 (ADC),通过 USB 连接到我的 Ubuntu 20.04 笔记本电脑。但为什么声音设置包含这两个设置呢?:
- 数字输入 (S/PDIF) - PCM2903C 音频编解码器
- 模拟输入 - PCM2903C 音频编解码器
(加上内置麦克风)
换句话说:USB 的“模拟输入”是什么意思?不是所有的USB输入都是数字的吗?这就是我购买 PCM2903C ADC 的原因...!该设备仅通过 USB 连接,不能通过 SPDIF 连接。虽然PCM2903C确实有SPDIF接口。
我期待收到您的来信。
另外,12 月 24 日:我正在使用评估板形式的 PCM2903C ADC:https://www.ti.com/tool/PCM2903EVM-U
我真的不知道如何更好地描述这一点,但由于它是一个 USB 接口设备,因此无论是插入 USB 端口还是内部安装都没有关系。无论如何,该设备仍然是同一设备。
由于这是一个模数转换器,您将看到模拟输入,因为它是设备本身的一部分。列出它的原因是它允许您选择它作为输入设备,用于从模拟源进行录制、转换等。
具有 USB 接口、单端模拟输入/输出和 S/PDIF 的 PCM2903C 立体声音频编解码器数据表具有以下功能框图:
这表明 PCM2903C 有两个音频输入:
数据表对输入数据的选择描述如下:
由于 PCM2903C 有两个音频输入,这可以解释为什么在连接到 PC 时,两个音频输入都会在 Ubuntu 中显示为可能的输入源,即使包含 PCM2903C 的产品没有模拟和 S/PDIF 的输入连接器。
Linux/PCM2903C:PCM2903C 的 Linux 驱动程序?支持格式吗?USB传输?包含:
我还没有找到USB-Audio Class 1命令的定义位置,但在 Linux 内核源中,mixer_quirks.c具有函数
snd_mbox1_is_spdif_input
和snd_mbox1_set_input_source
用于处理 aANALOG Source
或S/PDIF Source
。“模拟”是指连续变化的电压,可以按照您想要的精确测量,精确到最接近的伏特或最接近的皮伏。这是麦克风或其他音频源产生的结果(或任何现实世界的测量结果)。
信号的“数字”意味着您已将其测量到一定精度,将其转换为代表电压范围一小部分的整数。您通常会看到以位为单位表示的精度,给出了 2 的 X 次方可能的电压读数。例如,16 位 ADC 有 2^16=65536 个可能的值,这意味着它以范围的 1/6556 为步长进行测量。通常,您也会经常以固定速率进行测量,因为您正在尝试捕获不断移动的信号。
模数转换器 (ADC) 是完成这项工作的电子设备。从它发出的所有信号(以及连接到 PC 的 USB 信号)始终是数字信号;这里相关的是进入其中的信号是什么。
USB 是一种通过电缆发送任何数据的通用方式,但它背后确实需要一些复杂的处理。SPDIF是一种通过电缆发送数字样本而无需进行太多处理的方法。它是在 20 世纪 80 年代设计的,当时 USB 所需的处理对于大多数计算机来说几乎是不可能的,更不用说连接的设备了,而且它仍然是家庭娱乐设备以数字形式输出音频的流行方式。
这就是为什么您的设备同时具有模拟输入(内置麦克风,可能还有耳机插孔或其他东西,它们会混合在一起为 ADC 供电)和数字输入(SPDIF 输入)。这就是您在音频输入选项中进行选择的内容。
顺便说一句...为什么要使用 SPDIF 从其他地方获取信号?那么,在设备之间获取数字音频的另一种方法是,源设备使用数模转换器 (DAC) 将数字样本再次转换回模拟信号,将其推入电缆,并让另一端使用ADC 将其再次转换回数字。这个模拟过程的每一步都会增加噪声和失真,因此显然,一旦数字化,就需要保持数字化,因为数字信号不会失真。(从技术上讲,数字信号可能会通过多种方式失真,但这超出了您现在需要处理的程度。)