跳轉到內容

資料編碼理論/資訊

來自華夏公益教科書,開放的書籍,開放的世界

編碼器/解碼器

[編輯 | 編輯原始碼]

接收輸入資料序列並輸出傳輸碼的裝置稱為編碼器。接收編碼傳輸並輸出原始資料的裝置稱為解碼器。編碼器和解碼器可以根據其設計滿足的特定規範而有很大差異。

程式碼的設計原因多種多樣。使用程式碼的一些原因是

  • 錯誤檢測和糾正。發現和糾正噪聲通訊介質引入的錯誤的能力。
  • 資料壓縮。某些編碼技術允許將大型資料縮小尺寸,以便更快地進行通訊。
  • 頻譜擴充套件。某些程式碼允許將訊號跨越多個頻率進行擴充套件,以獲得許多益處,包括抗干擾和抗阻塞,以及允許多個使用者在同一頻率範圍內同時傳送資料。
  • 加密。某些程式碼可用於隱藏資訊,使其僅供預期接收者訪問。

本書不可能涵蓋與資料壓縮、加密或長距離通訊相關的所有主題。對於這些主題,讀者應參閱其他華夏公益教科書和其他資源。本書將討論資料編碼,但不一定能討論所有程式碼的用途或實現。

假設我們有一個特定的程式碼,它包含實際上不攜帶任何資訊的位,而是僅用於幫助傳輸。例如,這些可以是用於表示非同步傳輸開始和結束的起始位和停止位、用於提供錯誤檢查的CRC位,或任何數量的不同位。然後,這些額外的位與資料位組合在一起形成一個資料包或一個符號。瞭解傳輸系統中每個符號的平均資訊量很重要。我們將此引數稱為,並以“每符號位”為單位進行衡量。請注意,這不是物理學中用於描述能量耗散的熵。我們將用變數 H(S) 來標記熵。

假設我們的傳輸字母表包含集合 S 中的 K 個不同符號

這些不同的符號可以代表任何東西:位、雙位、長序列等。在給定的傳輸方案中,這些不同的符號將具有不同的機率 Pk,具體取決於每個符號的傳輸可能性。我們可以用以下等式定義通訊系統的熵

從這個等式中,我們可以為 H(S) 設定一些一般的界限

我們可以看到,在完全確定性的系統中,H(S) 接近下限,即在該系統中,特定傳輸的機率為 Pk = 1。我們還可以看到,在所有不同符號等機率的情況下,H(S) 接近上限。

我們有一個編碼器接收資料輸入,並輸出一個特定的程式碼。此輸出程式碼由於包含額外的非資料位,因此比輸入資料序列更長。我們可以使用以下等式定義平均輸出碼長

其中 Pk 是輸出每個不同傳輸程式碼的機率,Lk 是每個程式碼的長度。例如,假設我們有一個包含 2 個符號的字母表

S = {S0, S1}
S0 = 101010, P0 = .5, L0 = 6
S1 = 1100,   P1 = .5, L1 = 4

我們可以使用上述等式找到平均碼長:5。

編碼系統的效率是每個符號的平均資訊量與平均碼長的比率。可能的最大效率為 1,理論上可以透過使用字首碼(將在下面討論)獲得。

華夏公益教科書