脈波編碼調變（英語：Pulse-code modulation，縮寫：PCM）是一種類比訊號的數位化方法。PCM 將訊號的強度依照同樣的間距分成數段，然後用獨特的數位記號（通常是二進位）來量化。PCM 常用於數位電信系統上，也是電腦和紅皮書中的標準形式。在數位視訊中它也是標準，例如使用 ITU-R BT.601。但是 PCM 並不流行於諸如 DVD 或 DVR 的消費性商品上，因為它需要相當大的位元率（DVD 格式雖然支援 PCM，不過很少使用）；與之相較，壓縮過的音訊較符合效率。不過，許多藍光光碟使用 PCM 作音訊編碼。非常頻繁地，PCM 編碼以一種序列通訊的形式，使數位傳訊由一點至下一點變得更容易 —— 不論在已給定的系統內，或物理位置。



調變

在圖示中，一個正弦波（紅色曲線）取樣和量化為 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 的合稱)。



參考資料


* Franklin S. Cooper; Ignatius Mattingly. Computer-controlled PCM system for investigation of dichotic speech perception. Journal of the Acoustical Society of America. 1969, 46: 115.

* Ken C. Pohlmann. Principles of Digital Audio 2nd ed. Carmel, Indiana: Sams/Prentice-Hall Computer Publishing. 1985. ISBN 978-0-672-22634-2.  引文格式 1 維護：冗餘文字 (link)

* D. H. Whalen, E. R. Wiley, Philip E. Rubin, and Franklin S. Cooper. The Haskins Laboratories pulse code modulation (PCM) system. Behavior Research Methods, Instruments, and Computers. 1990, 22: 550–559.

* Bill Waggener. Pulse Code Modulation Techniques 1st ed. New York, NY: Van Nostrand Reinhold. 1995. ISBN 978-0-442-01436-0.  引文格式 1 維護：冗餘文字 (link)

* William N. Waggener. Pulse Code Modulation Systems Design 1st ed. Boston, MA: Artech House. 1999. ISBN 978-0-89006-776-5.  引文格式 1 維護：冗餘文字 (link)



參見


* 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: 美國專利第 3,912,868 號: 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,' 美國專利第 2,801,281 號 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.