问题: MATLAB自带RS编码函数 rsenc,解码函数 rsdec:
1、rsenc 编码后的输出为 gf 类型的数据, 我们通常希望将其转化为能处理的数组,那么该如何操作?
2、rsdec 解码之前需要将编码数组转化为函数可处理的 gf 类型数据,那么该如何操作?
1、对于问题 1, 例如:
m = 3; % Number of bits per symbol
n = 2^m - 1; % Codeword length .
k = 3; % Message length
msg = gf([2 7 3; 4 0 6],m,13);
code = rsenc(msg,n,k)
生成的 code 是 gf 类型的数据:
code = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
Array elements =
7 4 3 7 0 0 4
6 2 2 7 6 7 3
3 0 5 5 6 0 6
当我们需要提取编码后的数据时,操作如下:
RS_output = double(code.x)
得到 double 型数组:
RS_output =
7 4 3 7 0 0 4
6 2 2 7 6 7 3
3 0 5 5 6 0 6
原因: 不详,可能 code 为一个结构体。
2 、对于问题 2,先利用 gf 函数将编码数组转化为 gf 类型数据:
msg = gf(RS_output,m)
然后就可以使用 rsdec 解码函数了。