BCH码(能纠正多个随机错误的循环码)

PS:课上讲的也是编解码流程,也没有原理,网上也没找到每一步的原理,想要了解设计思路还是需要去找一下原版的论文。

参考blog:
【1】【举例子详细分析】BCH码(BCH code)

1. 伽罗华域和多项式

  见之前的blog伽罗华域GF

2. 提出背景和思路

  奇偶校验码只能检查出错误而不知道具体是哪里出错。
  hamming码只能纠正 1 bit 错误。
  在GF ( 2 q ) (2^q) (2q)中,用多项式表示对应的有限域中的数值,多项式又可表示成二进制bit流的形式,等于二进制bit流与符号之间的一一映射,同时二进制多项式加法和二进制的按位异或等同(二进制流所受的干扰可用加法表示),多项式乘法及其逆运算能够实现多项式的恢复,本原多项式能保证逆运算结果具有唯一性。

  现假设待传输的消息用二进制流对应的 m ( x ) m(x) m(x)表示,乘上一个编码多项式 p ( x ) p(x) p(x),传输过程收到干扰可表示为 e ( x ) e(x) e(x),则接受到: c ( x ) = m ( x ) p ( x ) + e ( x ) c(x)=m(x) p(x)+e(x) c(x)=m(x)p(x)+e(x)如果接受端也知道p(x),那么就能得到 m ( x ) m(x) m(x) e ( x ) e(x) e(x)

本原元→本原多项式:

  1. GF ( 2 q ) (2^q) (2q)上的本原元是一个元素, 在域中的任何非零元素都可以表示为它的方幂
  2. 任意一个有限域 GF ( 2 q ) (2^q) (2q)必有一个本原元 α \alpha α
  3. 本原元的阶数为 2 q − 1 2^q-1 2q1,即 α 2 q − 1 + 1 = 0 \alpha^{2^q-1}+1=0 α2q1+1=0
  4. 本原多项式 p ( x ) p(x) p(x)是以本原元 α \alpha α为根的、首项系数为1的最低阶不可约多项式

3. 案例:为什么需要本原多项式

对于GF ( 2 4 ) (2^4) (24),有本原多项式 p ( x ) = x 2 + x + 1 p(x)=x^{2}+x+1 p(x)=x2+x+1
   m ( x ) m(x) m(x) 1001 1001 1001,而编码多项式 p ( x ) p(x) p(x) 1101 1101 1101,则 m ( x ) ∗ p ( x ) = 1100101 m(x)*p(x)=1100101 m(x)p(x)=1100101。若收到了干扰 e ( x ) = 0000010 e(x)=0000010 e(x)=0000010,则接受到 1100111 1100111 1100111,

e(x)e(x)/p(x) 的余项
10000001000000
01000000100000
00100000010000
00010001100000
00001000110000
00000101110000
00000011010000

  从表中可看出, e ( x ) e(x) e(x)和所得余项一一对应,通过余项结果可找到对应的 e ( x ) e(x) e(x)。如果采用 p ( x ) = 10001 = 101 ∗ 101 p(x)=10001=101*101 p(x)=10001=101101,1000000和0000100除以10001后余项均为1000000。

4. BCH码编码过程

  思想:一个本原多项式纠正一个错误,通过修正编码多项式 c ( x ) = m ( x ) Q ( x ) + e ( x ) c(x)=m(x) Q(x)+e(x) c(x)=m(x)Q(x)+e(x)令其中 Q ( x ) = p ( x ) p 3 ( x ) p 5 ( x ) ⋯ p 2 t − 1 ( x ) Q(x)=p(x) p_{3}(x) p_{5}(x) \cdots p_{2 t-1}(x) Q(x)=p(x)p3(x)p5(x)p2t1(x),p(x)是本原多项式,实现纠正多个错误。

   p 2 t − 1 ( x ) p_{2 t-1}(x) p2t1(x)的性质(a mod b=c,表明a除以b余数为c):

  1. p 2 i − 1 ( x )   m o d   p ( x ) = 0 , i = 2 , . . . , t p_{2 i-1}(x) \, mod \, p(x)=0,i=2,...,t p2i1(x)modp(x)=0i=2,...,t
  2. 本原BCH码 p ( α ) = p ( α 3 ) = . . . = p ( α 2 t − 1 ) = 0 p(\alpha)=p(\alpha^{3})=...=p(\alpha^{2t-1})=0 p(α)=p(α3)=...=p(α2t1)=0

  以 n = 2 4 − 1 = 15 n=2^{4}-1=15 n=241=15, 纠错数量 t = 3 t=3 t=3 的本原BCH码为例,设 α \alpha α为GF ( 2 4 ) (2^4) (24)的本原元,本原多项式为 p ( x ) = x 4 + x + 1 p(x)=x^{4}+x+1 p(x)=x4+x+1,那么 Q ( x ) = p ( x ) p 3 ( x ) p 5 ( x ) Q(x)=p(x) p_{3}(x) p_{5}(x) Q(x)=p(x)p3(x)p5(x),现有 p ( x ) = x 4 + x + 1 = ( x − α ) ( x − α 2 ) ( x − α 4 ) ( x − α 8 ) p(x)=x^{4}+x+1=(x-\alpha)(x-\alpha^2)(x-\alpha^4)(x-\alpha^8) p(x)=x4+x+1=(xα)(xα2)(xα4)(xα8),画表得到其共轭根为 α 3 , α 6 , α 12 , α 9 \alpha^{3}, \alpha^{6}, \alpha^{12}, \alpha^{9} α3,α6,α12,α9,故 p 3 ( x ) = ( x − α 3 ) ( x − α 6 ) ( x − α 2 ) ( x − α 9 ) = x 4 + x 3 + x 2 + x + 1 p_{3}(x)=(x-\alpha^{3})\left(x-\alpha^{6}\right)\left(x-\alpha^{2}\right)\left(x-\alpha^{9}\right)=x^{4}+x^{3}+x^{2}+x+1 p3(x)=(xα3)(xα6)(xα2)(xα9)=x4+x3+x2+x+1,剩余两根构成 p 5 ( x ) = ( x − α 5 ) ( x − α 10 ) = x 2 + x + 1 p_{5}(x)=\left(x-\alpha^{5}\right)\left(x-\alpha^{10}\right)=x^{2}+x+1 p5(x)=(xα5)(xα10)=x2+x+1。此时 g ( x ) = p ( x ) p 3 ( x ) p 5 ( x ) = x 10 + x 8 + x 5 + x 4 + x 2 + x + 1 g(x)=p(x) p_{3}(x) p_{5}(x)=x^{10}+x^{8}+x^{5}+x^{4}+x^{2}+x+1 g(x)=p(x)p3(x)p5(x)=x10+x8+x5+x4+x2+x+1

此时n=15,t=3,deg(g(x))= 10, k=n-deg=5,t=3,设计的码距d=2t+1,实际码距和设计码距相等

PS:(以上推导过程为法一,适合做题不适合编程)
在这里插入图片描述法二:上图中极小多项式是 x 2 q − 1 x^{2^q-1} x2q1的因式分解结果,一个BCH码的生成多项式也可由 L C M [ f 1 ( x ) , f 2 ( x ) , … , f 2 t ( x ) ] LCM[f_1(x),f_2(x),…,f_{2t}(x)] LCM[f1(x),f2(x),,f2t(x)]给出,详细可见参考文献【1】

5. BCH码译码过程

由于 m ( x ) Q ( x ) m(x) Q(x) m(x)Q(x) α 1 , α 2 , … , α 2 t \alpha^{1}, \alpha^{2}, \ldots, \alpha^{2 t} α1,α2,,α2t为根。想要知道错误图样,需要知道在位置i是否发生错误。
定义 e ( x ) = ∑ i = 0 n − 1 e i x i = ∑ l = 1 γ Y l x i l e(x)={\sum_{i=0}^{n-1} e_{i} x^{i}}=\sum_{l=1}^{\gamma} Y_{l} x^{i_{l}} e(x)=i=0n1eixi=l=1γYlxil i l i_{l} il表示错误位置。
译码五步:
在这里插入图片描述
5.1 伴随多项式的计算
法一:接收端知道 Q ( x ) Q(x) Q(x),能得到对应的 h ( x ) = x n + 1 Q ( x ) h(x)=\frac{x^n+1}{Q(x)} h(x)=Q(x)xn+1,从而写出H,即可计算s(x)
法二:
在这里插入图片描述

推导过程:
在这里插入图片描述

5.2 错误位置多项式系数的求解:
在这里插入图片描述
5.3 错误位置的确定
在这里插入图片描述
5.4 计算对应错误位置上的错误数值
在这里插入图片描述
5.5 得到e(x),输出结果
在这里插入图片描述

  • 12
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值