概念地圖・Tanner 圖
分類:系統
這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →
Tanner 圖:錯誤訊號沿著哪幾條邊傳
鑽頭租借站的掃描器讀回六位碼,兩項校驗同時亮紅;維修人員需要知道哪一位參與了哪些檢查,才能沿線追到可疑位置。Tanner 圖把這份關係攤開:一邊放位元,一邊放校驗,連線表示某個位元要接受哪項檢查。紅燈有範圍——但沿線追查之前,還要交代資料經過什麼通道、容許怎樣的錯誤。本頁用六位教具碼拆開這幾件事,讓讀圖與補碼各有依據。
矩陣裡的每個一,都對應一條邊
本圖採用二元校驗矩陣 H。圓形存放位元值,方框要求相鄰位元做 XOR 後等於零;「偶同位」就是每項檢查裡出現的 1 有偶數個,零個也算。
| 圖上元素 | 矩陣與約束 | 讀圖動作 |
|---|---|---|
| 六個圓形 v1~v6 | 對應 H 的六欄,各代表一個碼字位置 | 固定欄位順序,再填入收到的值 |
| 方框 c1 | 第一列 110100;v1 ⊕ v2 ⊕ v4=0 | 查第一、二、四位 |
| 方框 c2 | 第二列 011010;v2 ⊕ v3 ⊕ v5=0 | 查第二、三、五位 |
| 方框 c3 | 第三列 101001;v1 ⊕ v3 ⊕ v6=0 | 查第一、三、六位 |
| 九條無向邊 | H 有九個 1,每個 1 連接一個圓與一個方框 | 連線表示約束參與關係,解碼步驟另定 |
Etzion、Trachtenberg 與 Vardy 的Tanner 圖研究第 2 節,用矩陣的非零元素定義這些連線。回到這張二元圖,橫讀一列能找到某項檢查涵蓋誰,直讀一欄能找到某個位置受到哪些檢查——同一份關係,兩個追查入口。
收到警報後怎麼縮小檢查範圍
一、先分清錯誤與遺失。掃描器回傳完整六位,和明白標出第五位讀不到,提供的線索不同。前者還要找位置,後者已知位置、只缺數值——櫃檯介面應保留這個差別。讀不到時硬填零,會把原本很清楚的缺口藏起來。自問:我面對的是不知道位置的錯誤,還是位置已知的遺失?
二、把整組校驗結果對回連線。開場那次收到 100110,三項 XOR 依序為 0、1、1,所以 c1 通過、c2 與 c3 失敗。兩個失敗方框共同連到 v3;在「只有一位翻轉」的假設下,第三欄的 011 正好吻合整組結果,可唯一定位這一位。若容許多位同時出錯,候選組合就得擴大——紅燈交集需要假設才能下判斷。自問:哪些檢查連到同一位,而其他檢查又提供了什麼限制?
三、先寫下補碼成立的條件。鑽頭歸還時若有髒污、資料傳輸中斷或讀取信心偏低,設備端應把能觀測到的狀態一起留下。下面的遺失碼演練會假設其餘五位可靠;現場若無法支持這項假設,就需要重新讀取或使用更完整的解碼方式——不能把教具的前提藏進正式流程。自問:通道和解碼假設足夠嗎?
鑽頭租借站的一位遺失碼
底下這家台灣中部的鑽頭租借站,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實公司。店裡用一塊練習板教新進人員辨認讀取問題,六位教具碼只說明傳輸保護,實際商品識別另有編碼。這次觀測獨立於開場的錯碼演示。
- 留下原始讀值:練習板送出原碼 101110,接收端得到 1011?0。問號標明第五位遺失,並假設其他五位均可靠。缺哪一位,有明確紀錄。
- 只找相連的檢查:沿 v5 的邊走到 c2,取出 v2=0、v3=1。方程式成為 0 ⊕ 1 ⊕ v5=0,解得 v5=1。一項檢查只剩一個未知數,就能補回。
- 補回後全組重驗:得到 101110。c1 為 1 ⊕ 0 ⊕ 1=0;c2 為 0 ⊕ 1 ⊕ 1=0;c3 為 1 ⊕ 1 ⊕ 0=0。三項約束全部滿足。
- 保留補回的過程:接收紀錄仍存著 1011?0,另外註記第五位依 c2 補成 1,再交給租借系統核對商品識別與歸還紀錄。只留下補完的結果,下一班就看不見讀取曾經失敗。
租借站值得學的動作,是讓「收到什麼」與「後來補了什麼」各自留痕。第五位能補回,靠的是已知遺失位置、其他五位可靠,以及 c2 裡只剩一個未知數;任一條件改變,都要重新判斷。店員手上的商品核對流程仍須完成,因為這六位教具碼只處理傳輸資料的一小段。三項校驗過關,代表這組位元滿足指定約束——歸還品項、磨耗狀況與租期,還要在各自的交接紀錄裡確認。以上為說明結構用的示意情境,僅供理解框架之用。
二分校驗什麼時候會騙你
- 短環會讓訊息繞回來。本圖能沿 v1、c1、v2、c2、v3、c3 回到 v1,形成六條邊的環。迭代解碼時,短環可能使回傳訊息帶著自己先前的影響,獨立證據的假設就變弱——同一線索繞了一圈,信心可能被重複加碼。評估解碼器時要看收斂與錯誤表現,不能只數傳了幾輪。
- 多個翻轉可能把警報抵銷。這個 H 下,若 v1、v2、v3 同時翻轉,每項檢查都碰到兩個翻轉,XOR 結果維持原狀。因此,從任何合法碼字出發,都可能到達另一個通過校驗的碼字——全綠只交代約束滿足。實務設計還要評估錯誤型態、碼距與外層驗證需求,避免把零警報解讀成零風險。
- 畫得稀疏,不自動保證糾錯效果。圖負責呈現 H;碼的能力要看整體結構,實際表現還受通道、輸入可靠度與解碼法影響。MathWorks 的 LDPC 解碼說明列出多種訊息傳遞演算法,並要求考慮迭代次數與輸入信心資訊。這張六位圖適合手算,正式系統的選碼仍須另做測試——圖小,證明責任沒有跟著變小。
痛點視角追到資料交接處
每盞錯誤燈,都有它查過的位置。
鑽頭租借站真正讓人停住的瞬間,可能是店員不知道是否該重掃,也可能是客人等著結清租金,螢幕只留下一排紅字。P.A.I.N. 要追問誰承擔了這段不確定、發生在哪個交接點,以及對方目前怎麼熬過去。這張圖畫得出位元與校驗的牽連,畫不出櫃檯前那個人能接受多久的等待。工程端把解碼成功率提高之後,營運端仍要安排重試、人工核對與紀錄保存,讓每一種結果都有可執行的下一步——否則紅燈只是換了個地方閃。今晚就拿一筆曾經重掃的紀錄,請值班人員示範當時按了什麼、等了什麼,把最久的停頓記在交接單上。
Tanner 圖,常見問題
Tanner 圖一定要畫成左圓右方框嗎?
左右位置可以調整,圓形與方框則是常見的視覺分工。核心是分成變數節點、校驗節點兩組,每條邊都跨組相連。本頁的每個 1 對應一條邊,所以換排版後也必須保留原來九組配對。線在畫面上交叉時,交叉點沒有新增節點——沿著線追到標示的圓與方框即可。
兩項校驗失敗,就能確定共同連到的位元出錯嗎?
要先限定錯誤模型。本頁收到 100110 時,整組校驗結果是 011,而 H 的第三欄正是 011;在單一位元翻轉假設下,位置可唯一確定為 v3。若同時存在多個錯誤,各欄的影響會以 XOR 合併,同一組警報可能由不同組合造成——採用候選位置前,先檢查假設是否符合現場。
Tanner 圖跟 LDPC 碼有什麼關係?
LDPC 碼具有稀疏校驗矩陣,Tanner 圖能把其中哪些位置參與哪些約束畫出來。一般線性碼的校驗矩陣也能這樣表示。MathWorks 的 LDPC 編碼器文件以 GF(2)的校驗條件定義合法碼字;從合法碼字到收到含雜訊的訊息,中間還有通道與解碼器。本頁把結構縮到六位,方便逐項代入檢查。
傳輸的保護設計,從可疑位元一路延伸到通道條件。往訊息的前端看,奈奎斯特—夏農取樣定理說明連續訊號如何取得可重建的樣本;往可靠傳輸的邊界看,夏農通道容量把可用頻寬與雜訊條件帶進來。把讀值、校驗和重試紀錄接在一起,下一次紅燈亮時,就有路徑可以追。
喜歡這篇文章嗎?
每週幫你拆二本好書,把判斷力、好書金句、好問題,直送你的信箱。
不適合你可隨時退訂 · 每週兩封,陪你把書讀進生活。
送出即表示同意我們依隱私權政策使用你的 email。