矩阵乘法以及Reed-Solomon编码

1、矩阵表达式

要表达一个矩阵有几行和几列,我们通常写 行×列

例子:这是个 2×3 矩阵(2行和3列):


乘法规则:

乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

 

2、可逆矩阵

在线性代数中,给定一个n方阵A,若存在一n方阵B使得AB=BA=E(或AB=EBA=E任满足一个),其中En单位矩阵,则称A是可逆的,且BA的逆阵,记作A^(-1)。

若方阵A的逆阵存在,则称A为非奇异方阵或可逆方阵。

 

 

3、Reed-Solomon编码


把输入数据视为向量D=(D1,D2,…,Dn),编码后数据视为向量(D1,D2,…Dn,C1,C2,…,Cm),RS编码可以看做为如下图的矩阵运算。编码矩阵B必须具有任意子矩阵可逆的特性。
在这里插入图片描述

RS最多能容忍m个数据块被删除,m包括实际数据和冗余数据。数据恢复的过程如下:
(1)假设D1,D4,C2丢失,从编码矩阵中删掉丢失的数据块/编码块对应的行。
在这里插入图片描述
根据上图所示RS编码运算等式,可以得到如下B’以及等式。
在这里插入图片描述
(2)由于B’是可逆的,记B’的逆矩阵为(B’ ^ -1),则B’*(B’^-1)=I单位矩阵。两边左乘B’逆矩阵。

在这里插入图片描述
(3)得到如下原始数据D的计算公式,根据矩阵乘法A(BC)=(AB)C,可以推出
在这里插入图片描述

有限域:

假设每一个向量元素由8bit组成,那么矩阵相乘后的结果必然要超过8bit的范围,为了解决这个问题,提出有限域的概念。
1.域
一组元素的集合,以及在集合上的四则运算,构成一个域。其中加法和乘法必须满足交换、结合和分配的规律。加法和乘法具有封闭性,即加法和乘法结果仍然是域中的元素。
域中必须有加法单位元和乘法单位元,且每一个元素都有对应的加法逆元和乘法逆元。但不要求域中的0有乘法逆元。
2.有限域
有限域又称为伽罗华域,其仅含有限多个元素的域。GF(2^ w)表示含有2^ w个元素的有限域,那么在计算机中常用的有限域是GF(2^8)
3.单位元
Identity Element,也叫幺元,通常使用e来表示单位元,单位元和其他元素结合时,并不会改变那些元素。
对于二元运算 * ,若a * e=a,e称为右单位元;若e * a=a,e称为左单位元,若a * e=e*a =a,则称e为单位元。
4.逆元
对于二元运算 *,若a * b=e,则a称为b的左逆元素,b称为a的右逆元素。若a * b=b * a=e,则称a为b的逆元,b为a的逆元。
5.本原多项式
域中不可约多项式是不能够进行因子分解的多项式,本原多项式是一种特殊的不可约多项式,当一个域上的本原多项式确定了,这个域上的运算也就确定了。

**RS-Code是纠删码的一种,**Erasure Code(EC),即纠删码,是一种前向错误纠正技术。主要应用在网络传输中避免包的丢失,存储系统利用它来提高存储的可靠性。相比多副本复制而言,纠删码能够以更小的数据冗余度获得更高数据可靠性,但编码方式较复杂,需要大量计算。纠删码只能容忍数据丢失,无法容忍数据篡改。

EC是一种编码技术,它可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。即如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。

目前,纠删码技术在分布式存储系统中应用主要有三类,阵列纠删码(Array Code:RAID5\RAID6)、RS、LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值