matlab实现长除法,【网安智库】基于长除法的BCH(15,7)译码算法
原標題:【網安智庫】基于長除法的BCH(15,7)譯碼算法
摘要:BCH(15,7)碼可糾錯2 bit錯誤位,是一種應用廣泛的信道編碼。常見的實用譯碼方法是查表法,其存儲錯誤比特和校驗子的對應表即錯誤圖樣,譯碼時根據計算的校驗子查錯誤圖樣表得到錯誤比特。BCH(15,7)的錯誤圖樣較大,存儲錯誤圖樣表占用較大內存,查找較費時,譯碼較慢。因此,針對BCH(15,7)快速譯碼問題,提出了一種新穎的基于長除法的譯碼算法。該算法只利用有限域 中的長除法即可快速譯碼,不需要存儲錯誤圖樣,也不需要解BM方程。理論和仿真證明,此算法有效可行,軟硬件實現簡單易行,可推廣到實際BCH(15,7)的譯碼電路,具有較大的實際應用價值。
0 引 言
BCH碼是一種重要的能糾多個隨機錯誤的循環碼,編碼方便,實現電路簡單,在現代數字通信領域中有及極廣泛的應用[1-3]。BCH譯碼已有多種算法,實際工程應用中主要用的是錯誤圖樣查表法。該方法需要預先存儲錯誤圖樣,對碼長較長、糾錯能力較強的BCH碼,錯誤圖樣較多,查找、匹配較費時,譯碼延時嚴重[4-5]。
BCH(15,7)碼是碼距d=5 的循環碼,能糾正2位隨機錯誤。本文主要討論一種基于長除法的BCH(15,7)碼譯碼算法,實現快速譯碼,且簡單高效。
1 BCH(15,7)編碼
BCH(15,7)的生成多項式為:
信息多項式為:
信息序列為,其中mi(i=0,1,…,6) 為伽羅瓦域GF(2) 中的0或1,則BCH(15,7)碼多項式為:
例1:,,則:
2 基于長除法的BCH(15,7)譯碼算法
此譯碼算法分為以下2步:
(1)由接收到的含有錯誤的r(x)=c(x)+e(x) 長除 得余式,即錯誤多項式(余式項數必須小于等于2);
(2)錯誤多項式模2相加r(x) 得原碼。
證明:
由于能糾正循環距離為8位的2位錯誤位,故只要r(x)mod(g(x)) 余式項數小于等于2必為錯誤多項式。
證畢。
例2:由于例1發送碼是式(1),假定接收碼有2位錯誤,當然接收端是不知道有這2位錯誤的。由長除法得錯誤多項式如圖1所示,得錯誤多項式。由于BCH(15,7)是循環碼,,故,即糾錯得原碼。
3 MATLAB仿真
仿真程序如下:
%BCH(15,7)decode
msg=gf(randint(1,7),1); %information code
c=bchenc(msg,15,7); %encode
e=gf([1 0 0 0 0 0 0 0 0 0 0 1 0 0 0],1);%2 bit errors
r1=c+e;% receive code
r=r1;
g=gf([1 1 1 0 1 0 0 0 1],1);%generator polynomial
m=3;n=0;k=0;
while m>2 & k<30
k=k+1;
if r(1)==1
for j=1:9
r(j)=r(j)+g(j);
end
end
m=sum(r==1);
while r(1)==0 & m>2 & k<30 %left shift
n=n+1;
for i=1:14
r(i)=r(i+1);
end
r(15)=0;
end
end
s=mod(n,15);
for k=1:s %cyclic right shift
t=r(15);
for i=0:13
r(15-i)=r(14-i);
end
r(1)=t;
end
e1=r;
m1=sum(e1==1);
if m1<3
disp('OK e(x)=r(x) mod(g(x))');
end
該MATLAB仿真程序,可驗證本算法的正確性。任意改變信息多項式msg 和小于等于2位錯誤多項式e ,均能糾錯得到正確的原碼。
4 結 語
利用長除法可得到BCH(15,7)接收碼的錯誤多項式,譯碼算法具有簡單、快速等優點,具有極廣泛的應用價值。此外,本算法也適用于糾1位錯誤的漢明碼譯碼,對糾多個錯誤的BCH碼具有參考價值。
參考文獻:
[1] Sweeney P.Error Control Coding,From Theory to Practice[M].Wiley,2002:67-83.
[2] Jorge C M.Essentials of Error Control Coding[M].Wiley,2006:41-61.
[3] John G P,Masoud S.Digital Communications[M].5th Edition(McGraw-Hill),2008:400-450.
[4] REED I S,Chen X M.Error-control Coding for Data Network[C].Norwell,1999:300-380.
[5] Blahut R E.Algebraic Codes for Data Transmissions[M].Cambridge:Cambridge University Press,2003:350-400.
作者簡介:
江寶安,重慶郵電大學移通學院講師,碩士,主要研究方向為糾錯編碼與通信理論。
原創聲明 >>>
本微信公眾號刊載的原創文章,歡迎個人轉發。未經授權,其他媒體、微信公眾號和網站不得轉載。
···························································返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的matlab实现长除法,【网安智库】基于长除法的BCH(15,7)译码算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据的格式输出_python
- 下一篇: Android绘制(一):来用shape