在資訊理論，有噪通道編碼定理指出，儘管噪聲會干擾通訊通道，但還是有可能在資訊傳輸速率小於通道容量的前提下，以任意低的錯誤機率傳送資料資訊。這個令人驚訝的結果，有時候被稱為資訊原理基本定理，也叫做夏農 哈特利定理或夏農定理，是由克勞德艾爾伍德夏農於 1948 年首次提出。 通訊通道的通道容量或夏農限制是指在指定的噪音標準下，通道理論上的最大傳輸率。 總述 根據夏農 1948 年的陳述，本定理描述了在不同級別的噪音干擾和資料損壞情況下，錯誤監測和糾正可能達到的最高效率。定理沒有指出如何構造錯誤監測的模型，只是告訴大家有可能達到的最佳效果。夏農定理可以廣泛應用在通訊和資料儲存領域。本定理是現代資訊理論的基礎理論。夏農只是提出了證明的大概提綱。1954 年，艾米爾范斯坦第一個提出了嚴密的論證。 夏農定理假設一個有噪音的通道，通道容量為 C，資訊以速度 R 傳送，如果 R C 那麼就存在一種編碼技術使接收端收到的錯誤達到任意小的數值。這意味著理論上，有可能無錯誤地傳送資訊直到達到速度限制 C。 反過來同樣重要。如果 R C 那麼想達到任意小的錯誤率是不可能實現的。因此，在傳送速度超過通道容量的時候，可靠傳輸資訊是不能被保證的。定理並沒有指出在什麼特殊情況下速度和容量相等。 簡單的流程如「重複傳送資料 3 遍，用一個投票系統在資料不一樣的時候選擇 3 個裡面相同的那兩個的值」是低效的錯誤糾正的方式，不能保證資料塊能完全沒有錯誤地傳送。先進一些的技術如裡德 所羅門碼編碼技術和更現代一些的 Turbo 碼、低密度奇偶檢查碼等編碼技術更逼近夏農限制，但是計算複雜度很高。 數學描述 定理（夏農，1948 年）： 1 一個離散無記憶通道的通道容量 C max_P_X I XY 具有以下特點：任給 ε 0 R C，存在著長度為 N，資訊傳輸速率小於等於 R 的編碼和相應解碼演算法，使得最大可能傳輸錯誤率 ε。 2 如果允許誤位元速率 pb，那麼存在一種編碼方式，使得資訊傳輸速率速度可以提高到 R pb，其中 R p_b frac C1H_2 p_b 而 H_2 p_b 是一個二元熵函式，定義為 H_2 p_b left p_b log p_b 1p_blog 1p_b right 3 給定 p_b，不存在速度大於 R pb 的編碼方式，使得最大可能傳輸錯誤率小於 p_b。（MacKay 2003 p 162 cf Gallager 1968 ch5 Cover and Thomas 1991 p 198 Shannon 1948 thm 11） 證明框架 和資訊理論的其它主要結果一樣，噪音通道編碼定理包括一個可以實現的結果和相應的相反的結果。這兩個組成部分中間有一個界線。在本案例中，可以透過有噪音的通道的可能速度的集合和相應邊界顯示出這是一個緊密邊界。 下面的證明框架只是已有的許多種不同證明方法中的一種而已。 離散無記憶通道的可實現性 下面這個可實現性的證明是使用漸近等同分割特性（ AEP）方法。另一種資訊理論常用證明方法是錯誤列舉法。 兩種證明方法都使用隨機編碼引數來構造通道。這樣的目的是減少計算的複雜度，同時仍舊可以證明在速度低於通道容量的時候，存在誤位元速率在可接受範圍甚至是接近於理想的無失真的編碼方式。 採用 AEP 相關的引數，一個指定的通道，長度為 n 的源字串 X_1n，和長度為 n 的通道輸出的字串 Y_1n，我們可以定義一個以下匹配序列集合： A_varepsilonn xn ynin mathcal Xn times mathcal Yn 2n H Xvarepsilon le p X_1nle 2n H X varepsilon 2n H Y varepsilon le p Y_1nle 2n H Yvarepsilon 2n H XY varepsilonle p X_1n Y_1nle 2n H XY varepsilon 我們可以說兩個序列 X_1n 和 Y_1n 是匹配序列，如果它們是基於上述定義的匹配序列集合。 步驟 在隨機編碼引數的方法上，我們可能的範圍 Q 裡面隨機產生 2nR 長度為 n 的編碼串。 這個編碼和傳送端與接收端有關。同樣假設雙方知道傳輸通道使用的傳輸矩陣 p yx。 在同樣的範圍裡選擇訊息 W，因此，operatorname PrW w 2nR w 1 2 2nR。 訊息 W 透過通道傳送。 接收端收到了一個基於 P ynxn w prod_i 1np y_ix_i w 的序列。 將這些編碼串透過通道傳送，我們收到了 Y_1n，如果在編碼表裡存在和 Y 匹配的一個序列，該序列並被解碼成為源編碼序列，如果沒有找到，就報告一個錯誤。如果解碼出的序列和原來的序列不一樣，同樣報告一個錯誤。 這個流程產生的錯誤可以分成兩個部分： 沒有找到和接收到的 Y 序列相匹配（或在允許的誤位元速率條件下）的 X 序列。 接收到的 Y 序列解碼成一個錯誤的 X 序列。 考慮到構造碼時的隨機性，我們可以假設平均的錯誤的產生率和碼傳送的序列沒有關係。因此，我們假設 W 1。 從匹配 AEP 方法考慮，我們知道隨著 n 的逐漸增加，沒有對應的 X 的可能性慢慢降為 0。我們可以用 epsilon 來標記這個錯誤的可能性。 同樣從匹配 AEP 方法考慮，我們知道一個指定的 X_1n i 和 Y_1n，作為 W 1 的結果是匹配序列的可能性為 le 2n I XY 3epsilon。 定義：E_i X_1n i Y_1n in A_epsilonn i 1 2 2nR 作為訊息 1 傳送出去，訊息 i 作為匹配的訊息接收到的結果。 begin align P text error P text errorW1 le P E_1c sum_i22nR P E_i le P E_1c 2nR1 2n I XY3varepsilon le varepsilon 2n I XYR3varepsilon end align 我們可以發現如果通道 R I XY，n 變為無窮大，錯誤的可能性將降為 0。 最後，假設平均的編碼方式是 好 的話，我們知道存在一個編碼方式的效率比平均的值要好，因此可以滿足我們在有噪音的通道低誤位元速率的要求。 弱逆離散無記憶通道 假設一種編碼有 2nR 個編碼詞語。W 假設為在這個集合上的一個索引。設 Xn 和 Yn 分別為編碼詞和接收到的詞。 nR H W H WYn I WYn 使用同樣的熵和同樣的資訊 le H WYn I Xn WYn X 是 W 的一個函式 le 1 P_en nR I Xn WYn 使用 Fano 不等式 le 1 P_en nR nC 通道容量設為最大化 這些步驟的結果是 P_en ge 1 frac 1nR frac CR 。當塊的長度變為無窮大，如果 R 比 C 大，我們得到 P_en 不可能降到 0。只有在 R 比 C 小的情況下，我們可以得到任意低的誤位元速率。 強逆離散無記憶通道 強逆定理證明由 Wolfowitz 於 1957 年提出。Robert Gallager Information Theory and Reliable Communication New York John Wiley and Sons 1968 ISBN 0471290483，證明歸結於證明如下不等式， P_e geq 1 frac 4An RC2 en RC 其中 A 為有限的正常數。當 n 變為無窮大的時候，弱逆定理證明錯誤的可能性不可能變成 0，而強逆定理證明了錯誤以指數方式趨向於 1。因此，C 是可靠連線和不可靠連線的臨界點。 時變無記憶通道的通道編碼定理 我們假設通道是無記憶的，但是隨著時間的變化，傳輸的可靠性是變化的。傳送端和接收端一樣工作正常。這樣通道容量如下 Climinf max_pX_1pX_2frac 1nsum_i1nI X_iY_i 。 針對每個不同的通道，計算出取得該通道容量似的分佈，以求得上式中的最大值，這樣 Climinf frac 1nsum_i1n C_i ，通道 i 的容量為 C_i。 簡略證明 證明方法和上面通道編碼定理幾乎一樣。在指定的信道里面，每一個符號的選擇是隨機的，編碼方式也是隨機的，採用漸近等同分割特性（AEP）方法來定義變化的無記憶通道的引數集。 當 frac 1nsum_i1n C_i 不收斂時，下極限開始起作用。 參考文獻 引用 來源 克勞德艾爾伍德夏農：《通訊的數學理論 》Urbana ILUniversity of Illinois Press 1949（reprinted 1998）。 艾米爾范斯坦：《資訊理論的一個新的基礎定理》IEEE Transactions on Information Theory 4 4222 1954 羅卜特梵高：《資訊傳輸，通訊的一個統計理論》Cambridge Mass MIT Press 1961 ISBN 0262060019 雅各布Wolfowitz：《面對誤碼的資訊編碼》Illinois J Math vol 1 pp 591606 1957 David J C MacKay《資訊理論推理，演算法演繹》Cambridge Cambridge University Press 2003 ISBN 0521642981 Thomas Cover Joy Thomas，《資訊理論要素》。New York NYJohn Wiley Sons Inc 1991 ISBN 0471062596 外部連結 夏農定律 線上書：資訊理論推理，演算法演繹 ，by 介紹關於夏農定理的一些基本知識，包括兩種證明方式，也介紹了現在流行的編碼方式。 參見 通訊、通道、通道容量、夏農極限 資訊理論、克勞德夏農 Category 資訊理論 Y