跳轉到內容

資料編碼理論/前向糾錯

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

前向糾錯

[編輯 | 編輯原始碼]

如果我們透過不可靠的通訊通道傳送資料,通常最好提供一些機制來糾正接收到的錯誤資料。在你的資料包中加入冗餘資訊,以檢測和可能糾正資料中的錯誤,這被稱為 **前向糾錯** (FEC)。

FEC 形式

[編輯 | 編輯原始碼]

FEC 的形式很多。最簡單的形式是重複碼,其中資料被複制並多次傳輸。如果資訊在重複之間不匹配,則選擇最常接收到的值作為“正確”版本。

更先進的 FEC 形式是分組碼和漢明碼。我們將在後面討論所有這些內容。

奇偶校驗

[編輯 | 編輯原始碼]

奇偶校驗嚴格來說不是一種 FEC 技術,但我們將在後面經常引用它。在奇偶校驗情況下,一個額外的位附加到資料以檢測簡單的錯誤。奇偶校驗有兩種型別:偶校驗和奇校驗。

偶校驗
偶校驗計算資料中 1 的數量。如果 1 的數量為奇數,則奇偶校驗位為 1。否則,奇偶校驗位為 0。
奇校驗
奇校驗計算資料中 1 的數量。如果 1 的數量為偶數,則奇偶校驗位為 1。否則為零。

奇偶校驗可以檢測到單個位錯誤,但無法確定哪個位錯誤。此外,奇偶校驗無法檢測到多個位錯誤。如果兩位、四位或六位出錯,奇偶校驗將表明資料是正確的。

FEC 限制

[編輯 | 編輯原始碼]

正如奇偶校驗只能處理最多 1 個錯誤的情況一樣,各種 FEC 碼被設計用於其他情況。FEC 碼可以檢測一定數量的錯誤,並且可以糾正另一個數量的錯誤。例如,特定程式碼可以檢測最多 3 個錯誤,但只能糾正最多 1 個錯誤。

進一步閱讀

[編輯 | 編輯原始碼]
華夏公益教科書