脈衝編碼調制

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

調制

 
模擬訊號轉換至4-bit 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)。在理想的系統上,每經過取樣的固定時間而讀取新的資料時,輸出會即時改變到該強度。經過這樣的即時轉換,離散的訊號本質上會有大量的高頻率能量,出現與取樣率的倍數相關的諧波(見方波)。要消滅這些諧波並使訊號流暢,訊號必須通過一些模擬濾波器,壓制任何在預期頻域外的能量(例如大於 的頻域,這是理論上最高的清晰度)。有些系統使用數碼濾波器來移除最低和最高的諧波,而在有些系統中不使用任何外部的濾波器,因為不可能有系統重製出無限大的頻寬,系統本身的不足補足了訊號重製上的瑕疵,或者該系統根本就不要求準確度。取樣原理說明,任何一種PCM裝置,只要提供相對於輸入訊號足夠大的取樣率,在期望頻域中就不會有顯著的失真因素。

從離散的資料重製回模擬訊號所使用的電子學,與從模擬至數碼是相似的。這些裝置稱作「數碼至模擬轉換器(digital-to-analog converters, DAC)」,與ADC的運作相似。它們依照輸入的數碼訊號,輸出電壓或電流(看情況則種類不同),這個輸出然後經過濾波器和放大器,達成回放。

限制

可注意的是,在任何PCM系統中,本質上有兩種損害的來源:

  • 在量化時,取樣必須迫於選擇接近哪一個整數值(即量化誤差)。
  • 在樣本與樣本之間沒有任何資料,根據取樣原理,這代表任何頻率大於或等於 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」或者其他特殊用途的代碼而遭到違反。

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 的合稱)。

參考資料

參見

外部連結