小言_互联网的博客

2、fec编解码-rs算法

751人阅读  评论(0)

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

Reed Solomon利用范特蒙矩阵或者柯西矩阵的特性来实现纠错码的功能。下面着重介绍Reed Solomon编解码原理

一、Reed Solomon编码
把输入数据视为向量D=(D1,D2,…, Dn), 编码后数据视为向量(D1, D2,…, Dn, C1, C2,…, Cm),RS编码可视为如下图所示矩阵运算。

编码矩阵B必须具有任意子矩阵可逆的特性。

二、Reed Solomon解码
RS最多能容忍m个数据块被删除,m包括实际数据和冗余数据。 数据恢复的过程如下:
(1)假设D1、D4、C2丢失,从编码矩阵中删掉丢失的数据块/编码块对应的行。

根据图1所示RS编码运算等式,可以得到如下B’ 以及等式。
(2)由于B’ 是可逆的,记B’的逆矩阵为 (B’^-1),则B’ * (B’^-1) = I 单位矩阵。两边左乘B’ 逆矩阵。

(3)得到如下原始数据D的计算公式

注:
FEC_matrix是一个比较常用的算法,Vandermonde,范德蒙矩阵是法国数学家范德蒙提出的一种各列为几何级数的矩阵。

范德蒙矩阵的定义:

其第i 行、第j 列可以表示为(αi)^(j-1)

范德蒙矩阵的性质:范德蒙矩阵行数为m,列数为n,矩阵具有最大的秩min(m, n)。

范德蒙矩阵的应用:范德蒙矩阵应用之一就是在纠错编码中,常用的纠错码Reed-solomon 编码中冗余块的编码采用的即为范德蒙矩阵。

在块编码中,信道编码器将对码流中连续的k个比特划分成一块,然后对这k个比特添加n-k个冗余比特,产生一个n比特的编码块。编码块经过信道后传送到接收端,这种编码块称为(n,k)块编码,其中k个比特称作信息位,n-k个比特称作校验位

注:FEC_matrix是一个比较常用的算法,Vandermonde,范德蒙矩阵是法国数学家范德蒙提出的一种各列为几何级数的矩阵。

范德蒙矩阵的定义:

其第i 行、第j 列可以表示为(αi)^(j-1)。
范德蒙矩阵的应用:范德蒙矩阵应用之一就是在纠错编码中,常用的纠错码Reed-solomon 编码中冗余块的编码采用的即为范德蒙矩阵。

基于范德蒙德(Vandermonde)矩阵

在线性代数中有一种矩阵称为范德蒙德矩阵,它的任意的子方阵均为可逆方阵。一个m行n列的范德蒙德矩阵定义如下,其中Ai 均不相同,且不为0。


转载:https://blog.csdn.net/oHuiJian1/article/details/101460005
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场