【发布时间】:2019-10-29 15:25:29
【问题描述】:
我有一个编码器 BCH 的输出矩阵 (3,63),但这个矩阵是一个伽罗瓦域,我需要将这个伽罗瓦域转换为矩阵二进制,因为 matlab 将伽罗瓦域中的元素视为字符串,我需要处理这个值是二进制数。
---------------------------------------------------------------------------
ENCODE
----------------------------------------------------------------------------
M = 6; %
n = 2^M-1; % Codeword length
k=36; % Message length
rows2=3;
msg=reshape(matrix2,[rows2,k]);
gfmsg=gf(msg);
[genploy,t]=bchgenpoly(n,k);
code=bchenc(gfmsg,n,k);
noisycode = code + randerr(rows2,n,1:t);
我需要将代码列与 000,010、... 与 switch case 或 if 进行比较,但代码矩阵的行是 Galois 字段格式 我遇到问题的代码如下,matlab 错误是 SWITCH 表达式必须是标量或字符向量。
for i=1:63
test =code(1:3,i)
switch test
case 000
symbol=R(1:500,1);
case 100
symbol=R(1:500,2);
case 010
symbol=R(1:500,3);
case 110
symbol=R(1:500,4);
case 001
symbol=R(1:500,5);
case 101
symbol=R(1:500,6);
case 011
symbol=R(1:500,7);
case 111
symbol=R(1:500,8);
end
symbol=(symboltx(:,i))
end
【问题讨论】:
-
请发布可重现您的问题的可运行代码
-
@zurbaranf,您尝试过我发布的解决方案吗?
标签: matlab galois-field