What is the error in this?
Show older comments
function DECout = gf2dec(HA)
c=0:[(2^8)-1];
GFRefarray=gf(c);
for i=1:length(HA)
for k=0:(2^8)-1
temp=isequal(HAHA(i),GFRefarray(i));
if (temp==1)
DECout(i)=k;
end
end
end
The error is: >> gf2dec Error using gf (line 65) X must be between 0 and 2^m-1
Error in gf2dec (line 3) GFRefarray=gf(c); How to solve this??
The value of HA is:
HA = GF(2^8) array. Primitive polynomial = D^8+D^4+D^3+D^2+1 (285 decimal)
Array elements =
172
106
200
187
68
251
103
2
149
131
25
55
237
110
129
231
I am trying to convert the galois polynomial, HA into a numeric value. I want to encrypt the data. So, how can I convert this ?
Answers (1)
Walter Roberson
on 3 Jan 2018
>> help gf
gf Create a Galois field array.
X_GF = gf(X,M) creates a Galois field array from X in the field
gf(2^M), for 1<=M<=16. The elements of X must be integers between 0
and 2^M-1. [...]
X_GF = gf(X) uses a default value of M = 1.
9 Comments
Darsana P M
on 4 Jan 2018
Darsana P M
on 4 Jan 2018
Walter Roberson
on 4 Jan 2018
function DECout = gf2dec(HA)
N = 8;
c = 0 : (2^N)-1;
GFRefarray = gf(c, N);
for i = 1:length(HA)
for k = c
if isequal(HAHA(i),GFRefarray(i));
DECout(i)=k;
end
end
end
... looks pretty inefficient to me.
Darsana P M
on 5 Jan 2018
Walter Roberson
on 9 Jan 2018
function DECout = gf2dec(HA)
N = 8;
c = 0 : (2^N)-1;
GFRefarray = gf(c, N);
for i = 1:length(HA)
for k = c
if isequal(HA(i),GFRefarray(k+1));
DECout(i)=k;
end
end
end
Darsana P M
on 10 Jan 2018
Walter Roberson
on 10 Jan 2018
You would get that error if you did not pass HA to gf2dec.
result = gf2dec(HA)
I would note that the code from the other thread, accessing the properties of the field, would be a lot more efficient.
Darsana P M
on 10 Jan 2018
Darsana P M
on 10 Jan 2018
Categories
Find more on Error Detection and Correction in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!