深入解析 PCM:声音数字化的核心技术

引言

在计算机、嵌入式系统和音频设备中,PCM(Pulse Code Modulation,脉冲编码调制)是最基础的 音频数据格式。无论是 MP3、AAC 还是 FLAC,最终它们的 底层都是 PCM

但 PCM 究竟是什么?它如何转换音频?在 Linux 声卡驱动(ALSA)中,它又是如何工作的?本篇文章将带你 彻底理解 PCM,让你不再对 PCM 感到陌生。
在这里插入图片描述


1. PCM 的基本概念

PCM 是一种 将模拟音频信号转换为数字音频信号 的方法。它的核心过程包括:

  1. 采样(Sampling)
  2. 量化(Quantization)
  3. 编码(Encoding)

让我们从一个 实际案例 讲解。


1.1 采样(Sampling)

采样就是每秒钟从模拟信号中取出多少个数值采样率(Sample Rate) 用 Hz(赫兹)表示,例如:

  • 44.1 kHz(CD 质量):每秒 44100 个采样点。
  • 48 kHz(DVD 质量):每秒 48000 个采样点。
  • 96 kHz(高解析音频):每秒 96000 个采样点。

📌 理解方式

  • 采样率越高,声音的还原度越好,但文件体积也更大。

1.2 量化(Quantization)

采样后,每个点的数值需要转换为离散的数字

  • 8-bit PCM(256 级别):每个采样点存储 0~255 之间的整数。
  • 16-bit PCM(常见):每个采样点存储 -32768~32767 之间的整数。
  • 24-bit PCM(专业音频):每个采样点存储 -8388608~8388607 之间的整数。

📌 理解方式

  • 位深度(Bit Depth)越高,音质越细腻
  • 16-bit PCM 是目前最常见的音频格式。

1.3 编码(Encoding)

  • **PCM 编码最常见的格式是 Signed 16-bit Little Endian,在 Linux 中表示为 S16_LE
  • 数据格式:PCM 数据可以是 单声道(Mono)或立体声(Stereo)

示例:CD 质量的 PCM

Format: Signed 16-bit Little Endian
Sample Rate: 44100 Hz
Channels: 2(Stereo)

2. PCM 设备与功放(Amplifier)的区别

在音频系统中,我们通常会看到 PCM 设备(PCM Device)功放(Amplifier),它们的作用截然不同。

2.1 什么是 PCM 设备?

Linux ALSA(Advanced Linux Sound Architecture) 框架中,PCM 设备指的是 负责处理 PCM 音频数据流的设备。它可以是:

  • I2S/SAI 控制器(用于 PCM 数据传输)
  • 音频 CODEC(如 PCM1754)(处理 PCM 并进行 D/A 转换)
  • 数字信号处理单元(DSP)

如何识别 PCM 设备?

aplay -l

示例输出:

**** List of PLAYBACK Hardware Devices ****
card 0: pcm1754audio [pcm1754-audio], device 0: 30c30000.sai-lm48100q lm48100q-0
  Subdevices: 1/1
  Subdevice #0: subdevice #0

📌 理解方式

  • PCM 设备 处理 PCM 数据流,并将其传输到 DAC 或其他组件
  • pcm1754audio 代表 PCM 设备

2.2 LM48100Q 是 PCM 设备吗?

不是!

LM48100Q 是一个功率放大器(Audio Power Amplifier),它的作用是 放大模拟音频信号 并驱动扬声器。

PCM 设备(如 I2S 控制器或 CODEC)会向它提供音频信号,然后它负责放大输出。

📌 PCM 设备 vs 功放的区别

设备类型作用是否是 PCM 设备?
I2S/SAI 控制器传输 PCM 数据✅ 是
音频 CODEC(如 PCM1754)处理 PCM 数据,并进行 D/A 转换✅ 是
功放(如 LM48100Q)放大模拟音频信号❌ 不是

📌 理解方式

  • PCM 设备 = 处理数字 PCM 音频的设备
  • 功放 = 处理模拟音频信号的设备
  • LM48100Q 不能直接处理 PCM 数据,它只能接收 DAC 输出的模拟信号,然后进行放大。

3. PCM 设备的 Linux 命令

3.1 查看 PCM 设备

cat /proc/asound/cards
aplay -l  # 列出所有 PCM 播放设备
arecord -l  # 列出所有 PCM 录音设备

📌 示例输出

**** List of PLAYBACK Hardware Devices ****
card 0: pcm1754audio [pcm1754-audio], device 0: 30c30000.sai-lm48100q lm48100q-0

表示:

  • card 0:声卡编号 0。
  • pcm1754audio:设备名。
  • lm48100q:功放芯片(不是 PCM 设备)。

4. 结论

PCM 设备 是指 处理数字 PCM 数据 的设备,如 I2S 控制器、CODEC
LM48100Q 只是功放,不是 PCM 设备,它接收 PCM 设备输出的模拟音频信号 并放大。
如果要播放 PCM 音频,你需要一个 CODEC(如 PCM1754)将 PCM 转换成模拟信号,再送到 LM48100Q 进行放大

掌握 PCM 之后,你就掌握了 数字音频的核心原理! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值