日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UA MATH636 信息论9 Berlekamp-Welch算法

發布時間:2025/4/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UA MATH636 信息论9 Berlekamp-Welch算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UA MATH636 信息論9 Berlekamp-Welch算法

  • Naive RS decoder
  • Berlekamp-Welch算法
    • 一個例子

上一講介紹了RS code,這一講介紹RS code的decode算法。先回顧一下RS code的構造: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域GF(p)GF(p)GF(p)上的多項式來表示這個message:
P(t)=∑i=1kxiti?1P(t) = \sum_{i=1}^k x_i t^{i-1}P(t)=i=1k?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)]

這個編碼會經由到噪聲信道傳送到接收端,假設接收端接收到的碼是R=[R0,?,Rn?1]R=[R_0,\cdots,R_{n-1}]R=[R0?,?,Rn?1?],接下來的問題就是怎么從RRR還原出message m^\hat{m}m^

Naive RS decoder

先考慮比較簡單的erasure,對于傳輸的碼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)]
假設接收端收到的碼有lll個erasure,則剩下的n?ln-ln?l個符號是正確的。如果n?l≥k?1n-l \ge k-1n?lk?1,也就是l≤n?(k?1)=dl \le n-(k-1)=dln?(k?1)=d時,可以用n?ln-ln?l個符號帶入到P(t)P(t)P(t)中把系數解出來。

如果是有error,最簡單的想法是從RRR中取一個有kkk個元素的subset,比如{R0,?,Rk?1}\{R_0,\cdots,R_{k-1}\}{R0?,?,Rk?1?}。如果它們是正確的碼,那么一定是P(t)P(t)P(t)的取值。根據
P(i)=Ri,i=0,?,k?1P(i)=R_i,i=0,\cdots,k-1P(i)=Ri?,i=0,?,k?1
可以解出一組P(t)P(t)P(t)的系數,也就是decode得到的message vector的元素。一共有CnkC_n^kCnk?種可能的subset,每一個都可以計算出一組系數。比如n=255,k=249n=255,k=249n=255,k=249,這種RS code最多可以改掉三個噪聲信道造成的傳輸錯誤,但卻需要比較C255249≈3590C_{255}^{249} \approx 3590C255249?3590億個subset,顯然這種naive算法的性價比非常低。

Berlekamp-Welch算法

這種算法比較有效,復雜度是O(n3)O(n^3)O(n3)。如果有lll個error,而且不知道error在哪個位置,我們定義一個error polynomial
E(t)=∏j=1l(t?ij)E(t) = \prod_{j=1}^l (t-i_j)E(t)=j=1l?(t?ij?)
其中ij=1,?,ni_j=1,\cdots,nij?=1,?,n代表error的位置(就是第幾個符號出錯了),deg(E(t))=ldeg(E(t))=ldeg(E(t))=l。這真的是一個非常巧妙的構造,因為Berlekamp-Welch發現:?i\forall i?i, RiE(i)=E(i)P(i)R_i E(i) = E(i) P(i)Ri?E(i)=E(i)P(i)。這個等式之所以成立是因為當RiR_iRi?是正確的碼時,直接就有Ri=P(i)R_i=P(i)Ri?=P(i);當RiR_iRi?是錯誤的碼時,因為E(i)=0E(i)=0E(i)=0,所以等式也會成立。接下來就用這個等式來構造decoder。

定義Q(t)=E(t)P(t)Q(t) = E(t)P(t)Q(t)=E(t)P(t),則Q(i)=E(i)P(i)=E(i)RiQ(i) = E(i)P(i) = E(i)R_iQ(i)=E(i)P(i)=E(i)Ri?
他們的階數的關系是
deg(Q(t))≤deg(P(t))+deg(E(t))≤k?1+l≤k?1+n?k2deg(Q(t)) \le deg(P(t)) + deg(E(t)) \le k-1+l \le k-1 + \frac{n-k}{2}deg(Q(t))deg(P(t))+deg(E(t))k?1+lk?1+2n?k?
因為RiR_iRi?是已知的,如果我們能夠巧妙的得到E(i)E(i)E(i),就可以計算出Q(i)Q(i)Q(i),就可以解出Q(t)Q(t)Q(t)E(t)E(t)E(t),則P(t)P(t)P(t)就可以表示為
P(t)=Q(t)E(t)P(t) = \frac{Q(t)}{E(t)}P(t)=E(t)Q(t)?
這個除法是GF(p)GF(p)GF(p)上的多項式的除法。一般在用到抽代的結構的時候需要驗證這種自己搞出來的定義是不是良定義,下面說明Q(t)=P(t)E(t)Q(t)=P(t)E(t)Q(t)=P(t)E(t)是良定義。考慮D(t)=Q(t)?P(t)E(t)D(t) = Q(t) - P(t)E(t)D(t)=Q(t)?P(t)E(t)
deg(D(t))≤max?(deg(Q(t),deg(P(t)E(t)))≤k?1+n?k2=(n?1)?n?k2deg(D(t)) \le \max(deg(Q(t),deg(P(t)E(t))) \le k-1 + \frac{n-k}{2} = (n-1) -\frac{n-k}{2} deg(D(t))max(deg(Q(t),deg(P(t)E(t)))k?1+2n?k?=(n?1)?2n?k?
又因為
D(i)=Q(i)?P(i)E(i)=RiE(i)?P(i)E(i)=(Ri?P(i))E(i)D(i) = Q(i) - P(i)E(i) = R_iE(i) - P(i)E(i) = (R_i - P(i))E(i)D(i)=Q(i)?P(i)E(i)=Ri?E(i)?P(i)E(i)=(Ri??P(i))E(i)
對于不是error的那些位置iiiD(i)D(i)D(i)是等于0的,也就是說D(t)D(t)D(t)至少有n?n?k2n-\frac{n-k}{2}n?2n?k?個零點。這種零點比階數更多的現象只會在Q(t)=0,?tQ(t)=0,\forall tQ(t)=0,?t的時候發生。

下面討論這個算法具體怎么操作。因為E(t)E(t)E(t)是首1多項式,可以假設它為
E(t)=tl+vl?1tl?1+?+v0E(t) = t^l + v_{l-1}t^{l-1} + \cdots + v_0E(t)=tl+vl?1?tl?1+?+v0?
假設Q(t)Q(t)Q(t)
Q(t)=ul+k?1tl+k?1+ul+k?2tl+k?2+?+u0Q(t) = u_{l+k-1} t^{l+k-1} + u_{l+k-2} t^{l+k-2} + \cdots + u_0Q(t)=ul+k?1?tl+k?1+ul+k?2?tl+k?2+?+u0?
這里面未知數有2l+k2l+k2l+k個,注意到2l+l≤2n?k2+k=n2l+l \le 2\frac{n-k}{2} + k = n2l+l22n?k?+k=n。根據
Q(i)=RiE(i),i=0,?,n?1Q(i) = R_i E(i),i=0,\cdots,n-1Q(i)=Ri?E(i),i=0,?,n?1
我們可以得到nnn個線性方程,顯然方程數量是夠解出所有的系數的。解出來之后根據P(t)=Q(t)E(t)P(t) = \frac{Q(t)}{E(t)}P(t)=E(t)Q(t)?計算出P(t)P(t)P(t),它的系數就是m^\hat{m}m^

一個例子

接著上一講的例子,R=[2,3,4,0]R=[2,3,4,0]R=[2,3,4,0],生成矩陣是
G=[11110123]G = \left[ \begin{matrix} 1 & 1 & 1 & 1 \\ 0& 1 & 2 & 3 \\ \end{matrix} \right] G=[10?11?12?13?]
接下來用Berlekamp-Welch算法來解碼。假設l=1l=1l=1,則k?1+l=2k-1+l=2k?1+l=2,假設
E(t)=v0+tQ(t)=u0+u1t+u2t2E(t) = v_0+t \\Q(t) = u_0 + u_1 t + u_2 t^2E(t)=v0?+tQ(t)=u0?+u1?t+u2?t2
接下來根據Q(i)=RiE(i)Q(i) = R_i E(i)Q(i)=Ri?E(i)解其中的四個參數:
u0=2v0u0+u1+u2=3(v0+1)u0+2u1+4u2=4(v0+2)u0+3u1+9u2=0u_0 = 2v_0 \\ u_0 + u_1 + u_2 = 3(v_0 + 1) \\ u_0 + 2u_1 + 4u_2 = 4(v_0 + 2) \\ u_0 + 3u_1 + 9u_2 =0u0?=2v0?u0?+u1?+u2?=3(v0?+1)u0?+2u1?+4u2?=4(v0?+2)u0?+3u1?+9u2?=0
解出來發現v0=0,u0=0,u1=1,u2=2v_0=0,u_0 = 0,u_1 = 1,u_2 = 2v0?=0,u0?=0,u1?=1,u2?=2,所以
E(t)=t,Q(t)=t+2t2P(t)=Q(t)E(t)=t+2t2t=1+2tE(t)=t,Q(t)=t+2t^2 \\ P(t) = \frac{Q(t)}{E(t)} = \frac{t+2t^2}{t} = 1 + 2tE(t)=t,Q(t)=t+2t2P(t)=E(t)Q(t)?=tt+2t2?=1+2t
從而解碼之后得到的message是m^=[1,2]\hat{m}=[1,2]m^=[1,2]

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的UA MATH636 信息论9 Berlekamp-Welch算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av在线免费观看一区 | 久久久久久久久久亚洲 | 风流老熟女一区二区三区 | 亚洲 激情 | 久久亚洲av成人无码国产电影 | 激情婷婷小说 | 草莓巧克力香氛动漫的观看方法 | 国产91精品一区 | 成人午夜免费观看 | 国产一区影院 | 国产成人一区二区三区电影 | 日韩精品一区在线 | 国产精品永久久久久久久久久 | 久久午夜无码鲁丝片午夜精品 | 8x8ⅹ国产精品一区二区二区 | 婷婷色婷婷 | 欧美成年人网站 | 名校风暴在线观看免费高清完整 | proumb性欧美在线观看 | 国产超碰在线观看 | 国产精品一区二区三区免费在线观看 | 成人午夜高清 | 亚洲一区二区三区四 | 波多野结衣免费视频观看 | 久久久国产精品x99av | 日本国产精品 | 亚洲字幕av一区二区三区四区 | 四虎影院色 | 天天天天天天天天干 | 亚洲伦理天堂 | 亚洲乱码精品久久久久.. | 免费黄毛片 | 爱插美女网 | 自拍偷拍免费 | 精品日韩一区二区三区四区 | 在线视频免费观看你懂的 | 美女狂揉羞羞的视频 | 天堂网资源 | 国产国语性生话播放 | 久久久免费高清视频 | 在线视频日韩欧美 | 成人精品福利 | 爱情岛论坛亚洲品质自拍视频 | 成年人国产视频 | 亚洲综合三区 | 亚洲福利在线播放 | 国产精品午夜在线观看 | 亚洲最新| 尤物videos另类xxxx | 一区二区av电影 | 动漫美女被吸奶 | 欧美日韩在线免费观看视频 | 第一福利视频 | 狠狠做深爱婷婷久久综合一区 | 精品人妻一区二区免费 | 亚洲一区二区三区免费 | 51嘿嘿嘿国产精品伦理 | 五月开心播播网 | 国产色在线视频 | 天堂网91 | 久久xx| 黄色大片在线免费观看 | 亚洲精品无码久久 | www.av小说| 日韩av三区 | 亚洲春色在线 | 精品在线视频一区 | 免费看黄的网址 | 国产精品国产a级 | 欧美不卡一区 | 色综合天天综合网天天看片 | 毛片传媒| 日本在线视频中文字幕 | 国产成人精品av在线观 | 91久久国产综合久久 | 欧美极品在线 | 国产www性| 在线看国产视频 | 人妻91麻豆一区二区三区 | 爱情岛亚洲论坛入口 | 精品视频第一页 | 色先锋av | a视频在线观看免费 | 一个色av| 大度亲吻原声视频在线观看 | 麻豆蜜桃wwww精品无码 | 伊人网视频 | 四虎影院一区 | 亚洲色图欧美另类 | 三级网站在线 | 一本久道视频一本久道 | 艳妇臀荡乳欲伦交换在线播放 | av软件在线观看 | 性活交片大全免费看 | 国产视频在线观看网站 | h视频免费在线 | 亚洲中文在线一区 | 亚洲欧美一区二区三区在线 | 国产亚洲成av人在线观看导航 |