脉冲编码调变

脉冲编码调变（Pulse-code modulation，缩写：PCM）是一种类比讯号的数字化方法。PCM将讯号的强度依照同样的间距分成数段，然后用独特的数位记号（通常是二进制）来量化。PCM常用于数位电信系统上，也是电脑和红皮书中的标准形式。在数位视讯中它也是标准，例如使用 ITU-R BT.601。但是PCM并不流行于诸如DVD或DVR的消费性商品上，因为它需要相当大的位元率（DVD格式虽然支援PCM，不过很少使用）；与之相较，压缩过的音讯较符合效率。不过，许多蓝光光碟使用PCM作音讯编码。非常频繁地，PCM编码以一种序列通讯的形式，使数位传讯由一点至下一点变得更容易——不论在已给定的系统内，或物理位置。

## 调制

<image>

在图示中，一个正弦波（红色曲线）取样和量化为PCM。正弦波在每段固定时间内得到取一次样，即x轴的刻度。而每一个样本则依照某种运算法（在这个例子中是ceiling function），选定它们在y轴上的位置。这样便产生完全离散的输入讯号的替代物，很容易编码成为数位资料，以作保存或操纵。以右图为例，很清楚看出样本为8、9、11、12、13、14、15、15、15、14...等，将它们以二进制编码，就得到一组一组的数字：1000、1001、1011、1100、1101、1110、1111、1111、1111、1110...等，这些数位资料之后就可以由特定用途的DSP或者一般的CPU所处理。有一些PCM资料流可以和较大的聚合资料流作多工传输（multiplex），通常在物理层传输资料时都会这么做。这个技术称作 “时分多路复用（Time-Division Multiplexing，TDM）” （或 “分时多工”，“时分复用”），非常广泛地使用，例如现代的公共电话系统。

有许多方法可以内置一个处理调变的真实装置。在真实系统中，这种装置一般获放在单一个芯片中，并搭配一个振荡器，称作“类比至数位转换器（analog-to-digital converter，ADC）”。这些装置透过振荡器触动输入讯号的接受，并且输出数字化的讯号至某种处理器。

## 解调

从数字信号回制成类比讯号的过程，就如同把调变的过程逆转一样，称作解调变（demodulation）。在理想的系统上，每经过取样的固定时间而读取新的资料时，输出会即时改变到该强度。经过这样的即时转换，离散的讯号本质上会有大量的高频率能量，出现与取样频率的倍数相关的谐波（见方波）。要消灭这些谐波并使讯号流畅，讯号必须通过一些类比滤波器，压制任何在预期频域外的能量（例如大于$\frac{1}{2} f_s$的频域，这是理论上最高的分辨率）。有些系统使用数位滤波器来移除最低和最高的谐波，而在有些系统中不使用任何外部的滤波器，因为不可能有系统重制出无限大的带宽，系统本身的不足补足了讯号重制上的瑕疵，或者该系统根本就不要求准确度。取样原理说明，任何一种PCM装置，只要提供相对于输入讯号足够大的取样频率，在期望频域中就不会有显著的失真因素。

从离散的资料重制回类比讯号所使用的电子学，与从类比至数位是相似的。这些装置称作“数位至模拟转换器（digital-to-analog converters, DAC）”，与ADC的运作相似。它们依照输入的数字信号，输出电压或电流（看情况则种类不同），这个输出然后经过滤波器和放大器，达成回放。

## 限制

可注意的是，在任何PCM系统中，本质上有两种损害的来源：

- 在量化时，取样必须迫于选择接近哪一个整数值（即量化误差）。
- 在样本与样本之间没有任何资料，根据取样原理，这代表任何频率大于或等于$\frac{1}{2} f_s$（fs即取样频率）的讯号，会产生失真，或者完全消失（aliasing error）。这又称作奈奎斯特频率（Nyquist frequency）。

由于所有样本都依据时间取样，重制时至关重要的便是一个准确的振荡器。如果编码或解码时，任何一方的振荡器不稳定，频率漂移就会使输出装置的品质降低。如果两方的频率具有些微的差异，稳定的误差对于品质而言并非巨大的问题。但一旦振荡器并非稳定的（即脉动的间距不相等），不论是音讯或者视讯上，都将造成巨大的失真。

## 数字化

在一般的PCM中，类比讯号在数字化之前会经过一些处理（如振幅压缩）。一旦经数字化，PCM讯号通常会再进一步处理（如数位资料压缩）。

有些形式的PCM把讯号处理结合在编码过程中。老一点的系统会把讯号的处理放在类比回路中，当作类比至数位转换（A/D）的一部分，新的系统则放在数位回路中。不过由于现代基础于转换的音讯压缩技术，这些简单的技术大部分已被认为过时。

- Differential（差异）或Delta PCM（DPCM）纪录的是目前的值与前一个值的差异值。与相等的PCM比较，这种编码只需要25%的位元数。
- Adaptive DPCM（ADPCM）是DPCM的变形，给定一个噪讯比，以节省量化密度的方式，允许更大程度的节省带宽。

在电话学中，电话的声音讯号编码标准是每秒8000个类比样本，每个样本8位元，总共每秒64 kbit的数字信号，即DS0。DS0预设的讯号压缩法若非μ-law (mu-law) PCM（美国和日本），就是a-law PCM（欧洲和世界剩余地方），这些对数压缩系统能将12或13位元的线性PCM转换成8位元的值。这个系统获描述于国际标准G.711中。另外，曾有使用浮点数的企图，以5位元的尾数搭配3位元的基数，不过已经放弃。

当电路的成本过高、或者可接受损失音质的情况下，将声音讯号更进一步压缩将会较有效率。有一种ADPCM运算法是用来把8位元的PCM讯号转换成4位元的ADPCM讯号，这样电线的带宽将能倍增。这个技术详细地描述于G.726标准中。

稍后又发现可能进一步压缩，并开发新一代的标准格式。在这些描述新系统或新概念的国际标准当中，有些属于私人的专利技术，要使用它们必须付费。

有些ADPCM技术用于Voice over IP通讯当中。

## 传输的编码

PCM的纪录方式可以是“归零式（return-to-zero, RZ）”的，也可以是“非归零式（non-return-to-zero, NRZ）”的。若要使用带宽内的资讯让一个NRZ系统达到同步，则必定不能有长串的相同符号出现，例如连续的1或连续的0。对于二进制PCM系统来说，“1”符号的密度称作“ones-density”。

ones-density可以透过诸如Run Length Limited的预编码方式控制，编码后的PCM代码会稍微长一些，这样可以保证在写入音轨之前，ones-density在一定阈值以下。在另一些情况中，会写入额外的“framing”位元，来保证在一段时间内，1或0至少会改变一次。

另外一个控制ones-density的方法是使用“scrambler”多项式，通过函式运算让原本的资料变成看起来如伪乱数般的排列，而要回复原本的资料只需要倒转该多项式的效果就可以。在这种技巧中，一连串的1或0仍然可能发生在输出中，但在一般的工程容忍度上，已经不太可能发生错误。

另外，讯号的直流输出的稳定性十分重要，因为逐渐累积的直流输出误差（offset）会导致侦测回路的运作超出范围。在这种情况下，必须作特殊的测量来计算直流输出的累积误差，并且在必要时改变电压大小来让误差永远趋向零。

许多的这些代码都是两极的，脉冲要不是正就是负，或者完全没有。在典型的alternate mark inversion代码中，非0脉冲在正和负之间转变。不过这些规则有可能因为必须置入“framing”或者其他特殊用途的代码而遭到违反。

- 见 T-carrier

## PCM的历史

评价上，PCM就像其他伟大的发明一样简单而明了。在电子通讯的历史中，采用讯号取样的最早理由，是为了使不同的电报系统能够使用同一条电缆线互通有无。电报分时多工TDM（time-division multiplexing）的概念在1853年首次由美国发明家 M.B. Farmer 提出。在1903年，电技师 W.M. Miner 使用一种电力驱动的机械交换器真正达成分时多工 (TDM)，让一条线负载许多电报讯号，并将其应用于电话机上。他并使用以 3500 至 4300 赫兹频率取样的话机，发表一段清晰的谈话：“below this was unsatisfactory.”（指取样频率）。但这只是TDM，使用的编码是脉冲振幅调变（pulse-amplitude modulation, PAM）而非 PCM。

1920年Bartlane电缆图像传输系统首次利用模拟信号横跨大西洋传送了一张5级灰度图片。西方电子（Western Electric，后来成为 AT&T）的 Paul M. Rainey，在 1926 年注册了一台传真机的专利，它使用了光学机械ADC。但这台机器并未量产。英国工程师 Alec Reeves 并不知道这项发明，相反地，1937 年他在为法国的 ITT（International Telephone and Telegraph）工作时，发现了 PCM 在声音传讯上的用处。他写出了它的理论以及优点，但并未付诸实现。在 1938 年他为此申请了专利，而美国的专利则在 1943 年批准。

第一次的数位音讯传输发生于二次大战间的 1943 年，使用了 SIGSALY 声音编码设备。它获盟军用来传输高音质的讯息。

在 1943 未过一半以前，设计 SIGSALY 系统的贝尔实验室同样发现了 Alec Reeves 所发现的 PCM 的那种妙用。

在 1950 年代，PCM 必须使用阴极射线管加上一个有孔的极板网栅。如同在示波器上见到的那样，电波以取样频率水平地扫过，而垂直偏向则由输入的类比讯号来控制，最终让电波通过在极板上高低不一的孔。极板截断了电波，产生二进制代码形式的电流。与真正的二进制数不同，这个极板设计成可以产生格雷码（Gray code），避免两极转换时出现干扰。

## PCM的命名

“脉冲”一词用在“脉冲编码调变”中似乎显得令人困惑，因为除了在电线中的电力以外，并没有任何明显可见的“脉冲”。但由于这项技术发展自另外两个类比技术，脉冲宽度调变和脉冲位置调变，这样的结果则显得自然。在这两项技术中，资讯实际上就是依照离散讯号脉冲的不同宽度或位置来作编码的。由这点来说，PCM、PWM 和 PPM 除了三者都能用于 TDM 上，以及 PCM 的确将它的代码表回脉冲以外，PCM 和它的前辈们确实很不相像。在电话的电路中，用于编码和解码功能的装置称作codec(Coder+Decoder 的合称)。

## 参见

- CDDA：红皮书所规定的音讯CD使用16-bit PCM
- 丽音广播:使用14-bit PCM
- Equivalent pulse code modulation noise
- G.711：ITU-T用于音讯companding的标准，最主要用于电话上
- 线性PCM
- Nyquist–Shannon 取样定理
- 脉冲宽度调制
- 量化 (讯号处理)
- 取样 (讯号处理)
- SQNR：侦测量化失误的方法之一

## 外部链接

- Ralph Miller and Bob Badgley invented multi-level PCM independently in their work at Bell Labs on SIGSALY: : N-ary Pulse Code Modulation.
- According to the Inventors Hall of Fame, B.M Oliver and Claude Shannon are the inventors of PCM as described in 'Communication System Employing Pulse Code Modulation,' filed in 1946 and 1952, granted in 1956.
- Information about PCM : A description of PCM with links to information about subtypes of this format (for example Linear Pulse Code Modulation), and references to their specifications.