基于Excel的QR二维码生成工具——原理及算法详解(之二)
来源:互联网 发布:django redis mysql 编辑:程序博客网 时间:2024/06/05 12:38
在前一篇文章中,我们探索了在Excel中通过一组工作表函数计算出了伽罗华域
RS码通常可以表示为
为了完成上述计算,通常将所有的数组都写成多项式的形式,其中每一项的系数就是编码各位置上的元素,比如,要计算以下数据码的
其中,
数据码:
接下来,只要将数据码多项式对生成多项式求余,就可以得到EC多项式了:
从上面的理论计算过程可以发现,在Excel中实现的难点有两个:
- 实现多项式的求余,并且要采用伽罗华域的运算法则
- 计算生成多项式
上面两个问题都可以通过工作表函数来实现,当然,VBA也没问题,下面先探讨工作表函数的方法。
首先需要解决伽罗华域上的加法和乘法的问题,伽罗华域上的加法其实是Xor运算,Excel的工作表并没有给出异或运算的函数,因此我的解决办法是自己写一个工作表函数CALCXOR(n1,n2)用于计算异或:
Private Function calcXor(n1 as long, n2 as long)as long calcXor = n1 Xor n2End Function
而乘法运算的定义是两个元素的本原元幂次相加,因此计算乘法需要两步,首先找出两个本原元的幂次,相加后再找到新的元素值,如:在
接下来,就需要完成多项式的求余,如果我们将多项式的系数写在表格中,那么前面的例子可以列表如下:
于是,根据上表最终计算出余数,就是数据码的纠错码多项式,因此完整的纠错码多项式为:
在Excel中我使用了一系列的工作表函数填充到类似上表的单元格中,完成了计算纠错码的任务:
上图中,Codeword后的那一列是数据码的输入,黄色底纹的单元格则是计算结果。图中可以看到计算的是RS(26,19),也就是说19个输入码字,输出7个纠错码字。一般来说,使用这样的工作表函数阵列,只需要重复乘数*
在这篇文章里,我们讨论了使用工作表函数计算RS纠错码,下一篇文章里,我们再来看如何计算生成多项式
- 基于Excel的QR二维码生成工具——原理及算法详解(之二)
- 基于Excel的QR二维码生成工具——原理及算法详解(之三)
- 基于Excel的QR二维码生成工具——原理及算法详解(之四)
- 基于Excel的QR二维码生成工具——原理及算法详解(之五)
- 基于Excel的QR二维码生成工具——原理及算法详解(之六)
- 基于Excel的QR二维码生成工具——原理及算法详解(之七)
- 基于Excel的QR二维码生成工具——原理及算法详解(之一)
- 基于Excel的QR二维码生成工具——原理及算法详解(最终篇)
- 二维码(QR code)基本结构及生成原理
- 二维码(QR code)基本结构及生成原理
- 安卓系统下生成QR码(二)——自定义二维码的纠错等级
- QR的生成(二维码)
- Android应用--QR的生成(二维码)
- Android应用--QR的生成(二维码)
- Android应用--QR的生成(二维码)
- Android应用--QR的生成(二维码)
- 安卓系统下生成QR码(三)——自定义二维码的颜色
- Java利用QR Code生成二维码(二)
- tomcat系列 启动慢
- UVA 12338
- 二维码功能实现简单例子
- RabbitMQ管理(1)——多租户与权限
- 监控器物检测object detection实战
- 基于Excel的QR二维码生成工具——原理及算法详解(之二)
- MacOS 开发
- Linux下安装JDK和Eclipse(实用)
- Hexo博客搭建
- ES6——Function扩展
- Runtime的入门与应用之五-消息发送与转发
- CC2640R2F之ADC篇
- 输入一个非负整数,判断奇数和偶数
- C++