UA MATH636 信息论9 Reed-Solomon Code
UA MATH636 信息論9 Reed-Solomon Code
- Reed-Solomon Code的構造
- 一個例子
先介紹一類code,maximum distance separable code (MDS code)。考慮一個(n,k,d)(n,k,d)(n,k,d)-code,之前我們討論的都是ddd最小能是多少,下面來討論一下給定(n,k)(n,k)(n,k)最大的distance能有多少?之所以想要最大的ddd是因為ddd越大能correct的error就越多。
Singleton Bound給出了線性碼的ddd的上界:d≤n?k+1d \le n-k+1d≤n?k+1
證明
假設codebook的alphabet size為qqq,則一共有qkq^kqk中不同的code。刪除每一個code的前d?1d-1d?1個符號,則剩下的code長度為n?(d?1)n-(d-1)n?(d?1),根據ddd的含義,剩下的這個codebook每兩個code至少也有一個符號不同,而長度為n?(d?1)n-(d-1)n?(d?1)的code最多有qn?(d?1)q^{n-(d-1)}qn?(d?1)種,因此
qk≤qn?(d?1)q^k \le q^{n-(d-1)}qk≤qn?(d?1)
根據這個關系可以得到Singleton Bound。
MDS code就是d=n?k+1d=n-k+1d=n?k+1的code system。
Reed-Solomon Code的構造
考慮MDS code (n,k,n?k+1)(n,k,n-k+1)(n,k,n?k+1),滿足k≤n≤pk \le n \le pk≤n≤p。則message vector為
m=[x1,?,xk],xi∈GF(p),i=1,?,km = [x_1,\cdots,x_k],x_i \in GF(p),i=1,\cdots,km=[x1?,?,xk?],xi?∈GF(p),i=1,?,k
我們可以用定義在Galois域上的多項式來表示這個message:
P(t)=∑i=1kxiti?1P(t) = \sum_{i=1}^k x_i t^{i-1}P(t)=i=1∑k?xi?ti?1
然后我們用這個多項式來編碼:
c=[c1,?,cn]=[P(0),P(1),?,P(n?1)]c = [c_1,\cdots,c_n] = [P(0),P(1),\cdots,P(n-1)]c=[c1?,?,cn?]=[P(0),P(1),?,P(n?1)]
其實更一般的,只需要選擇nnn個不同的數值就可以了,比如α0,?,αn?1∈GF(p)\alpha_0,\cdots,\alpha_{n-1} \in GF(p)α0?,?,αn?1?∈GF(p)
c=[c1,?,cn]=[P(α0),P(α1),?,P(αn?1)]c = [c_1,\cdots,c_n] = [P(\alpha_0),P(\alpha_1),\cdots,P(\alpha_{n-1})]c=[c1?,?,cn?]=[P(α0?),P(α1?),?,P(αn?1?)]
性質1 RS code是線性碼
[P(0),P(1),?,P(n?1)][P(0),P(1),\cdots,P(n-1)][P(0),P(1),?,P(n?1)]可以用message vector乘以Vandermonde矩陣來表示,定義生成矩陣為
G=V(0,1,2,?,n)TG = V(0,1,2,\cdots,n)^TG=V(0,1,2,?,n)T
則
c=mGc = mGc=mG
性質2 RS code是MDS code
假設aaa是P(t)P(t)P(t)的一個根,則t?at-at?a是P(t)P(t)P(t)的一個因式。如果P(t)P(t)P(t)有k?1k-1k?1個根,則P(t)P(t)P(t)的階至少為k?1k-1k?1。現在考慮ddd,它是所有code的Hamming weight的最小值。所以我們要考慮的是c=[P(α0),P(α1),?,P(αn?1)]c=[P(\alpha_0),P(\alpha_1),\cdots,P(\alpha_{n-1})]c=[P(α0?),P(α1?),?,P(αn?1?)]中能有幾個數字不為0。因為P(t)P(t)P(t)的階數是k?1k-1k?1,也就是說ccc中最多有k?1k-1k?1個零,也就是說最小的Hamming weight是n?(k?1)n-(k-1)n?(k?1)。
一個例子
考慮GF(7)GF(7)GF(7)上的(4,2)-RS code,這種code一共有72=497^2 = 4972=49種,它們的生成矩陣是
G=[11110123]G = \left[ \begin{matrix} 1 & 1 & 1 & 1 \\ 0& 1 & 2 & 3 \\ \end{matrix} \right] G=[10?11?12?13?]
假設message vector是[1,2][1,2][1,2](信源編碼器的輸出),它的RS-code就是
mG=[1350]mG=[1\ 3\ 5\ 0]mG=[1?3?5?0](噪聲信道的輸入)。假設噪聲信道的輸出為R=[2,3,4,0]R=[2,3,4,0]R=[2,3,4,0],因為d=n?k+1=3d=n-k+1=3d=n?k+1=3,所以這個RS-code最多可以改掉(d?1)/2=1(d-1)/2=1(d?1)/2=1個error,經過噪聲信道傳輸后正好出現了一個error,所以在解碼的時候這個error可以被改掉。
總結
以上是生活随笔為你收集整理的UA MATH636 信息论9 Reed-Solomon Code的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH565C 随机微分方程II
- 下一篇: UA MATH636 信息论9 Berl