主要内容

rsenc

里德-所罗门编码器

说明

code = rsenc(msg,n,k) 使用窄义生成器多项式对 msg 中的消息进行 [n,k] 里德-所罗门码编码。n 是码字长度,k 是消息长度。输出 code 是里德-所罗门码。

示例

code = rsenc(msg,n,k,genpoly) 指定码的生成器多项式。

code = rsenc(___,paritypos) 指定添加到输入消息以形成 code 的奇偶校验符号的位置。

示例

全部折叠

设置代码参数。

m = 3;           % Number of bits per symbol
n = 2^m - 1;     % Codeword length 
k = 3;           % Message length

基于 GF(8) 创建两个消息。

msg = gf([2 7 3; 4 0 6],m)
 
msg = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   2   7   3
   4   0   6

生成 RS (7,3) 码字。

code = rsenc(msg,n,k)
 
code = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   2   7   3   3   6   7   6
   4   0   6   4   2   2   0

这些码是系统化码,因此每行的前三个符号与 msg 的行匹配。

输入参数

全部折叠

输入消息,指定为所有值都大于或等于零的矩阵。msg 是由符号组成的伽罗华数组,每个符号具有 m 个位。msg 的每个包含 k 个元素的行表示一个消息字,其中最左侧符号是最高有效符号。

数据类型: double

码字长度,指定为 2m–1 形式的整数,其中 m 在范围 [3, 16] 内。n 必须在范围 [7, 65535] 内。

如果 n 并不恰好为 2m-1,rsenc 将使用缩短的里德-所罗门码。

注意

nk 必须相差一个正偶数。

数据类型: double

消息长度,指定为正整数。

数据类型: double

按降序排列的生成器多项式系数,以伽罗华行向量形式返回。genpoly 表示窄义生成器多项式的系数,按降幂顺序排列。要使用默认窄义生成器多项式,请将 genpoly 设置为 []

生成器多项式的次数必须为 n-k

数据类型: double

指示添加到输入消息以形成 code 的奇偶校验符号的位置,指定为以下选项之一。

  • "end" - 将奇偶校验符号追加到输入消息。

  • "beginning" - 将奇偶校验符号前追加到输入消息。

数据类型: char | string

输出参量

全部折叠

里德-所罗门码,以所有值都大于或等于零的矩阵形式返回。奇偶校验符号位于此输出伽罗华数组码中每个字的末尾。

数据类型: double

版本历史记录

在 R2006a 之前推出