多元域加法乘法c语言实现,R-S码(一):多元域表示,加法和乘法

循环码由于其便于实现,从而得到了广泛的应用,这其中较为常见的有CRC校验,BCH码和RS码。CRC主要用于检验被保护数据段的有效性,而并不用于纠错。狭义的BCH码是二进制码,即编码是针对二进制序列,输出同样也是二进制序列。RS码可以看作是BCH码在多元域上的拓展,从生成多项式的角度看,多项式的系数取自多元域(通常是二元域的扩域),信息多项式及码多项式系数也均取自多元域。当然,由于整个数字系统本身是二进制的,所以在编码前需要经过串并转换将二进制序列映射到多元域上的元素,在编码后也需要相应的并串转换将多元域元素映射到二进制序列。

在定义RS编码之前,首先需要确定二进制序列到多元域元素的映射关系

a4c26d1e5885305701be709a3d33442f.png。由于常用的RS码建立在二元扩域上,所以接下来的内容中涉及到多元域均只针对二元扩域。二元扩域GF(2^m)中一共包含2^m个元素。给定本原元

a4c26d1e5885305701be709a3d33442f.png,这2^m个元素分别是

a4c26d1e5885305701be709a3d33442f.png。显然,为了表示多元域上的元素,需要m个二进制比特。很容易想到用alpha的阶来表示多元域元素,这2^m个元素的阶分别为

a4c26d1e5885305701be709a3d33442f.png。这种表示方法虽然可行,却不利于硬件实现。选择二进制表示的问题本质上就是确定一组多元域上的维数为m的基,任意一个元素的二进制表示即为该元素在这组基上的坐标。除了前面说的指数基之外,还可以将

a4c26d1e5885305701be709a3d33442f.png作为一组基,每个元素都可以表示为它们的线性组合,一共有2^m种。这组基应用十分广泛,在这里我们称之为标准基。除了这两种易于理解的表示外,还有一种十分重要但定义较为复杂的基叫做对偶基。首先需要定义多元域元素的迹如下:

a4c26d1e5885305701be709a3d33442f.png

设某组基为

a4c26d1e5885305701be709a3d33442f.png,与之对偶的基为

a4c26d1e5885305701be709a3d33442f.png。假设某元素基于对偶基的表示为

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png。称

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png的对偶基。同时,也常将标准基的对偶基直接简称为对偶基。之所以引入对偶基,是为了方便硬件实现,尤其是多元域乘法的实现。在介绍对偶基乘法之前,首先列出迹的主要性质:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

接下来考虑乘法算式W=ZG的实现,其中Z用对偶基表示为

a4c26d1e5885305701be709a3d33442f.png

G用标准基表示为

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png的坐标为

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png,其值可如下迭代得到:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png的计算需要用到本原元的表达式

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

所以

a4c26d1e5885305701be709a3d33442f.png可以用m-1低阶量的线性组合表示,显然可以用反馈电路实现

a4c26d1e5885305701be709a3d33442f.png随着k的更新。根据

a4c26d1e5885305701be709a3d33442f.png和g_i的值可以得到乘积W=ZG在对偶基下的坐标。注意到,上面讨论的基于反馈电路的设计是串行实现,为了提高速度还可以采取并行实现(to

be appended)。

总而言之,基于对偶基的乘法要求其中被乘数为对偶基表示,乘数为标准基表示,乘积输出为对偶基,即product(dual) =

multiplicand(dual) *

multiplier(standard),了解这一点很重要,后面我们将看到选择哪一个作为乘数是有讲究的。

相比于乘法而言,加法则十分简单。无论是采用标准基,还是对偶基,两个多元域元素相加,只要将它们对应的坐标相加就可以得到和的坐标。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值