一文读懂循环码:原理、生成与编码全解析

1 循环码基础

1.1 循环码的概念

在线性分组码中有一类重要的码,称为循环码。循环码是在严密的现代代数学理论的基础上建立起来的。这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。循环码除了具有线性码的一般性质外,还具有循环性。

循环性: 任一码组循环一位后仍然是该编码中的一个码组。

这里的“循环”是指将码组中最右端的一个码元移至左端;或反之,即将最左端的一个码元移至右端。在表1中给出一种(7,3)循环码的全部码组。由此表中列出的码组可以直观地看出它的循环性。例如,表中第2码组向右移一位即得到第5码组;第6码组向右移一位即得到第3码组。

表1 一种(7,3)循环码的全部码组

码组编号 信息位 (a_6a_5a_4) 监督位 (a_3a_2a_1a_0) 码组编号 信息位 (a_6a_5a_4) 监督位 (a_3a_2a_1a_0)
1 000 0000 5 100 1011
2 001 0111 6 101 1100
3 010 1110 7 110 0101
4 011 1001 8 111 0010

一般来说,若(an−1an−2⋯a0)(a_{n - 1}a_{n - 2}\cdots a_0)(an1an2a0)是循环码的一个码组,则循环移位后的码组:

(an−2an−3⋯a0an−1)(an−3an−4⋯an−1an−2)⋮(a0an−1⋯a2a1) \begin{align*} &(a_{n - 2}a_{n - 3}\cdots a_0a_{n - 1})\\ &(a_{n - 3}a_{n - 4}\cdots a_{n - 1}a_{n - 2})\\ &\vdots\\ &(a_0 a_{n - 1} \cdots a_2a_1) \end{align*} (an2an3a0an1)(an3an4an1an2)(a0an1a2a1)

仍然是该编码中的码组。

1.2 码组的多项式表示

在代数编码理论中,为了便于计算,把码组中的各个码元当做一个多项式的系数。这样,一个长度为(n)的码组就可以表示成:

T(x)=an−1xn−1+an−2xn−2+⋯+a1x+a0(1−1)T(x) = a_{n - 1}x^{n - 1} + a_{n - 2}x^{n - 2} + \cdots + a_1x + a_0 \quad (1- 1)T(x)=an1xn1+an2xn2++a1x+a0(11)

应当注意,上式中 xxx 的值没有任何意义,我们也不必关心它,仅用它的幂代表码元的位置。这种多项式有时被称为码多项式。

例如,表1中的任意一个码组可以表示为:

T(x)=a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0(1−2) T(x) = a_{6}x^{6} + a_{5}x^{5} + a_{4}x^{4} + a_{3}x^{3} + a_{2}x^{2} + a_{1}x + a_{0} (1 - 2)T(x)=a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a012

其中第7个码组可以表示为:T(x)=1×x6+1×x5+0×x4+0×x3+1×x2+0×x+1=x6+x5+x2+1(1−3) \begin{align*} T(x)&= 1\times x^{6} + 1\times x^{5} + 0\times x^{4} + 0\times x^{3} + 1\times x^{2} + 0\times x + 1\\ &= x^{6} + x^{5} + x^{2} + 1 \end{align*} (1 - 3) T(x)=1×x6+1×x5+0×x4+0×x3+1×x2+0×x+1=x6+x5+x2+113

2 循环码的运算

2.1 模2运算的启发

在整数运算中,有模nnn运算。例如,在模2运算中,有:

1+1=2≡0(模 2)1+2=3≡1(模 2)2×3=6≡0(模 2) 1 + 1 = 2 \equiv 0(\text{模 }2) \quad 1 + 2 = 3 \equiv 1(\text{模 }2) \quad 2 \times 3 = 6 \equiv 0(\text{模 }2) 1+1=20( 2)1+2=31( 2)2×3=60( 2)

一般来说,若一个整数mmm可以表示为:

mn=Q+pnp<n−−−−−−−(1−4)\frac{m}{n} = Q + \frac{p}{n} \quad p < n \quad -------(1 - 4)nm=Q+npp<n14

式中,Q为整数。则在模n运算下Q为整数。则在模n运算下Q为整数。则在模n运算下,有:

m≡p(模 n)−−−−−−−−−(1−5)m \equiv p \quad (\text{模 }n) \quad---------(1 - 5)mp( n)15

所以:

在模n运算下,一个整数m等于它被n除得的余数。在模n运算下,一个整数m等于它被n除得的余数。在模n运算下,一个整数m等于它被n除得的余数。

2.2 码多项式按模运算

上面是复习整数的按模运算。现在码多项式也可以按模运算。

若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x)若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x)若任意一个多项式F(x)被一个n次多项式N(x)除,得到商式Q(x)和一个次数小于n的余式R(x),即:
F(x)=N(x)Q(x)+R(x)−−−−−−−(1−6) F(x) = N(x)Q(x) + R(x) \quad -------(1 - 6)F(x)=N(x)Q(x)+R(x)16

则在按模N(x)运算下,有则在按模N(x)运算下,有则在按模N(x)运算下,有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值