RS代码的Matlab代码

我发帖的时间太长了。要开始踢球,
我继续学习RS编码理论。
下面是一个简单的Matlab代码(可以在Matlab帮助中找到,这里有一点详细的解释),用于更好地理解RS代码

%RS编码和解码的Matlab代码

n=7;k=3; %码字和消息字长度
m=3;%每个符号的位数
味精=gf([5 2 3;0 1 7;3 6 1],米)%两个k符号消息字
%消息向量是在Galois字段上定义的,其中数字必须
%范围从0到2^m-1

codedMessage=rsenc(消息,n,k)%两个n符号码字

dmin=n-k+1%显示dmin
t=(dmin-1)/2%代码的显示纠错能力

%生成噪音–使用第一个单词添加2个连续符号错误;
%2个带有第二个单词的不连续符号错误和3个分布式符号
%最后一个单词的错误
噪声=gf([0 0 0 2 3 0;6 0 1 0 0;5 0 6 0 4 0],m)

已接收=噪声+编码消息

%dec包含解码的消息,cnumer包含
%已更正每行的符号错误。此外,如果cnumer(i)=-1,则表示
%第i行包含不可恢复的错误
[dec,cnumerr]=rsdec(已接收,n,k)
%打印原始邮件进行比较
消息

%下面给出了程序的输出。仅解码消息、数字和原始
%此处给出消息(内联注释)

%定义GF的默认基本多项式为D^3+D+1(十进制为1011->11)。

dec=GF(2^3)阵列。本原多项式=D^3+D+1(十进制)

数组元素=

5 2 3
0 1 7
6 6 7

消费者=

2
2
-1->>>最后一行错误->此错误是由于我们在最后一行中添加了3个分布式错误,因为RS代码只能纠正2个错误。将解码消息与下面给出的原始消息进行比较以进行确认

%打印原始消息以进行比较
msg=GF(2^3)数组。本原多项式=D^3+D+1(十进制)

数组元素=

5 2 3
0 1 7
3 6 1

参考:
[1] RS代码背后的数学——Bernard Sklar——单击此处

发表您的宝贵意见!!!