# CS3031 編碼理論 Coding Theory Reference: * Ling, S., & Xing, C. *Coding Theory: A First Course*. * [Guruswami, V., Rudra, A., & Sudan, M. *Essential Coding Theory*.](https://cse.buffalo.edu/faculty/atri/courses/coding-theory/book) Instructor: 鄧惟中 Teng, Wei-Chung ###### tags: `TaiwanTech`, `CS` ## Syllabus * Meaning of "code": 規則、準則 * 編碼 * 有規則 * 一串可重複字母排列,以碼字為單位 * 一個碼字識別一個符號 * 詞彙 * 符號:資訊基本元素,或是基本元素的特定排咧 * 字母:排列碼的基本元素 * 碼字:字母的特定排列,對應一個符號 * 碼:一套碼字與符號對應的規則 * 編碼:符號轉碼字 * 解碼:碼字轉符號 * 固定長度編碼:易裁切易設計,可用碼字數量固定 * 變動長度編碼 * coding space:給定的可用碼字數量 * 好的碼 * 連續排列近似隨機字串(密碼學 * 平均長度接近理論下限(資料壓縮 * 理論下限:資訊理論 Imformation Theory * 偵錯除錯(通訊儲存 * 編碼的不可顛倒順序:壓縮source coding、加密encrypt、檢錯channel coding ## Basic Definition * 偵錯與除錯的應用 * 偵錯:重送 * TCP、身分證、ISBN * 除錯:校正 * 儲存體、太空通訊 * 偵錯除錯一概使用固定長度碼 * 以 block 為單位 > 資料壓縮一概使用變動長度碼 * Shannon * 消息理論(channel coding) * channel 不出錯的機率為零,但可以趨近該 channel 的 capability * 加密 * 定義 * n: 字母的數量 * m: 符號的數量 * C: 碼字的集合 * $[x]$: 第x個符號 * E: 編碼的對應 * [n,k,d]~q~(線性碼) * (n,M(=q^k^),d)~q~(任何碼) * Parity Code * 加一個 parity bit,令/sum位元值mod2=0 * 可以偵測奇數個bit出錯 * odd rarity 在矩形碼行列數一偶一奇無法使用˙˙ * redundancy(冗餘,code word多出來的比例 * \frac{1}{原碼長度} * rate of code(每位元資訊量 * $k=\log_n|C|=\log_nm$ * $R=\frac{k}{l}$ * Weight Code * 每個位元乘上權重 * 可以避免碼字換位 * 各位元權重應取不同值 * mod取質數較佳 * 2-out-of-5 code * 五位元裡兩個1的排列 * 軟體啟動序號 * 公式不公開~~(啥廢話~~ * error * 與原訊息XOR * t-error-detecting: 最多偵測t位元錯誤的編碼 * white noise * 每位元error是獨立事件 * 每位元error機率相等 * BSC(binary symmetric channel) * 0變1和1變0的error機率是對稱的 * Simple Burst Error * 雷擊等偶然爆發且密集一段的error * TCP/UDP的加總checksum * Error-Correcting Code * 也有漏error的問題 * Repetition Code * 重複傳奇數次 * rate低、效率低 * Hamming Distance * 兩個長度n,同樣字母集形成的字串x與y * 表記為d(x,y)=d(x_1,y_1)+d(x_2,y_2)+...+d(x_n,y_n) * x_1 = y_1, d = 0; x_1 \neq y_1, d = 1 * 純粹偵錯最多可以漢銘距離-1位的錯誤(直到漢銘距離會使一個碼字完全變成另一個碼字) ## Hamming Code * Rectangular Codes * l=a*b * Hybercube * 緯度增加,效率增加,但緯度長度增加時的效率明顯降低 * 1位元檢查漢明碼效率最高 ## Finite Field * 體 Field * 滿足以下加法與乘法性質 * 封閉性 * 交換律、結合律、分配律 * 加法單元、乘法單元 * 加法逆元、乘法逆元 * 整數不是field(缺乏乘法逆元-倒數) * 沒有乘法逆元會退化成ring ## Linear Subspaces and Linear Codes ## Hamming Code * Hamming code 效率證明 * perfect code 完全碼,已經到達資訊效率的頂 * STANDARD binary code速算 * Hadamard code * 對simplex code加一行0,湊整數(2的次方) ## Linear Code * Hamming weight在線性碼中,非全偶數權重即奇偶各半 * 可rerange * 可針對同bit進行乘法 * Standard Form * 拉一個I矩陣在前方 * Coset * 數個向量,加上原集合會產生相同codeword集合 ## Characteristics of Fields * field裡用的不應該是x(變數) * $F_4=F[x]/(1+x+x^2)$(over F2) * x替換成alpha後的所有根 * F8: a0+a1x+a2x^2, a0, a1, a2 in F0 * x^3+x+1 over F2 * F9: x^2+x+1 over F3 * 通用表記 * $F[x]/(F(x))$ * $F[\alpha]={a_0+a_1\alpha+...+a_{n-1}\alpha^{n-1}}$ * 為何不可約 * 就跟找質數方法一樣 * 用前面的質數去檢驗 * f(x)=a g(x) h(x) over F_g * 若考慮最高次係數=1,則g(x)、h(x)最高次係數也必=1 * (考慮x2+x+1overF5)若x,x+1,x+2,x+3,x+4除不盡即不可約 * 費馬小定理 Fermat's Little Theorem * 若p為質數 * $a^p\equiv a\mod p$ * 若a, p互質,$a^{p-1}\equiv1\mod p$ * 若非質數取mod會出現鏡像和/或循環 * 台科研究所口試題:a的p次方(大數)是多少? * 反面不成立,a^m\equiv =a\mod m不代表m是質數 * Carmichael number: 561, 1101, 1729... * Euler: 若a ,m互質,$a^{\phi(n)}\equiv1\mod n$ * $\phi(n)=n(1-1/p_1)(1-1/p_2)...(1-1/p_k)$, p為n的質因數集合 * 此定理對於所有有限體皆成立 * Primitive element / generator * $F_q=\{0, \alpha, \alpha^2,...,\alpha^{q-1}(1)\}$ * $F_4=F_2[\alpha]$, $(1+x+x^2)$ * $x^2=-(1+x)$ * Order * $ord(\alpha)$ * alpha最少幾次方後與1同餘 * 必能整除q-1 * 有利找到primitive element * 1+x+x^3^ over F~7~: * 7進位的1011 * 1+q+q^3^=(a~0~+a~1~q)(b~0~+b~1~q+b~2~q^2^) * Minimal Polynomial * 最低次方的非零首一多項式使得f(alpha)=0 * 唯一且不可約 * 證明:假設有餘數,但餘數會為零,所以沒有餘數 * Cyclotomic Cosets 分圓陪集 * 快速找到一個有限體中不可約的多項式 * 4的次方(乘上特定倍數)mod7會創造421與356兩組餘數循環 * 4與7互質 * 有n、q互質,陪集$C_i={(i*q^j(\mod n))\in Z_n}$ * 分圓:元素湊再一起能把所有餘數湊滿 * 分圓陪集parition Z~n~ * n=q^m^-1 (ex. 15=2^4^-1, 26=3^3^-1 * 每個分圓陪集最多m個元素 * 若i, q^m^-1互質,|C~i~|=m * C~1~={1,q,q^2^,q^3^,...,q^n-1^} * C~i~={i,iq,iq^2^,...iq^n-1^} * 每個質因式都是一個分圓陪集 * 每個質因式都屬於F~q^m^~ * (a+b)^p^=a^p^+b^p^ * A\inF~q^m^~ over F~q~; aq=0 * 3.4.10 * F~9~ over F~3~: 3 mod 8 (F~q^m^~ over F~q~ -> q mod q^m^-1) * 2+x+x^2^=(x-a)(x-a^3^) * a^4^=a^2^a^2^=(1-a)(1-a) ## Golay code * (24,12, 6+2) * G Matrix簡單 * Property * A 對稱 * self-dual: 任兩個codeword內積為0 * H也是一個合法的G,G也是一個合法的H * weight都是4的倍數 * a是4的倍數,b是4的倍數,反證a+b不是4的倍數 * 三元code * 12 6 6 * 1949 6 月,比Hamming code早 * 原始論文不滿一頁 * 線性 * 循環 * extended版本,比原始版更對稱 * trivial perfect code * d=1(無偵錯除錯能力) * 編碼空間只有一個codeword(只有一個狀態沒有傳輸資料的能力),d定義為無限大 * 奇數長度二元重複碼,d=n ## Cyclic code * 線性碼 * 所有的編碼解碼很容易用硬體實作 * Hamming code, Simplex code, Goley code 都是 Cyclic code * 目前沒有除錯兩位的 perfect code * 定義: shift right 後(超出邊界的的位元填回最高位)的結果也在編碼空間裡 * dual code 也是循環碼 * $S(3,2)與Sim_{r,q}兩表記等價$ * ideal 理想子環 * 決定n後用X^n-1^當作polynomial找出n-1次的排列 * 循環碼有幾種:$X^n-1=\prod_{i=1}^rp_i^{e_i}(x)$ * G: 找出g()然後一路右移 * 互反矩陣形成對偶碼dual code * 分圓陪集除0集合外可以互相找到成對的(或與自己成對) * 除錯不盡然需要查表,可用計算 * deg(s(x)) < n-k * deg(g(x)) = n-k * s(x)是餘數(沒有餘數就是沒有出錯) ## Bounds in coding theory * q元(n,M,d) * 若n固定,M, d呈反向關係 * Main coding theory problem: 給定nd,M最大可以是多少 * relative minimum distance: $\delta=(d-1)/n$(只有這本書) * d/n(通常) * The main coding theory problem * R1 Definition 5.1.4 * R1 5.1.6 線性碼版本 * Extended code * 在既有的code加一個chk bit * d是奇數時,extended可使d加1;偶數不會 * perfect code extended 也是 perfect * Sphere-covering bound * 以n為核心擴散 * 給出一個lower bound * t-ECC 兩個 codeword 距離至少是 2t+1 * 擴充到 2t 是碰觸到其他 codeword 前的極限距離,此時 space 內若還有沒被任何 sphere cover 的點,該點也可用作一個 codeword * 所有 sphere 的體積都擴大到佔據整個 space,則至少要有幾個 sphere(數字公式參見) * 觀察得出結果 * q-ary hamming * [(q^r^-1)/(q-1), (q^r^-1)/(q-1)-r, 3] code * G = ((q^r^-1)/(q-1)-r) * (q^r^-1)/(q-1) * H = r * (q^r^-1)/(q-1) ## BCH code * 推廣的 hamming code * perfect code * x^q^m^-x=0^ * BCH code length n = 2^m^-1, designed distance 𝛿 = 2t + 1, then dimension n - m(𝛿-1)/2 * error locator polynomial * σ(z) := !l−1 j=0 (1 − αi j z) * z = alpha^n-i^ ## RS code * Singleton bound * $A_q(n,d)\leq q^{n-d+1}$ * MDS code * Reed-Solomon code * BCH code * 循環碼 * 所有分圓陪集都只有一個成員 * d>1, q>=3 * Extend code * 照著上面的方式decode就可以 ## QR code * 1990 起開始研究二維碼 * QR: quick response * 1994 日本電裝 * 由 Android 原生支援 * Version 1(21\*21) to 40(177\*177) 每一階加4 霍夫曼 變動長度碼 壓縮用 層次 singular and nonsingular ## HW4 2. k=n-log_q\sum_i=0^(d-1)/2(n i)(q-1)^i, 3. (1) q-ary hamming bound 不等式(同上題), 5.3.15, 右邊是全部出錯的可能性,左邊是所有可表示錯誤的symdrome (2) 把第一小題代入 6. (2) p20 of topic 12, error locator poly