How to solve the code}

2 次查看(过去 30 天)
Darsana P M
Darsana P M 2017-10-23
评论: Darsana P M 2017-10-24
How to find GF(2^m)
clc;
clear all;
close all;
x1='1100110011';
x2='1111001100';
y0='0000000000';
H ='1111011010'
yy= xor(y0-'0',x1-'0');
y1=gfmul(yy,H);
I got an error as this: Error using gfmul All inputs must be real integers.
Error in hash1 (line 11) y1=gfmul(yy,H);
What correction should i make?
  1 个评论
KSSV
KSSV 2017-10-23
Read the doc here: https://in.mathworks.com/help/comm/ref/gfmul.html gfmul accepts double i.e matrix as input. You are inputting a string and logical which is not correct.

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2017-10-23
It's not very clear what exactly you're intending to gfmul. If it's the two numbers that are represented by the binary pattern in yy and H (one being a vector of bits, the other a char array of bits), then maybe:
x1 = '1100110011';
x2 = '1111001100';
y0 = '0000000000';
H = '1111011010';
yy = xor(y0-'0',x1-'0');
y1 = gfmul(polyval(yy, 2), bin2dec(H));
polyval(b, 2) converts a vector of bits into the corresponding decimal value. bin2dec(s) converts a char array of bits into the corresponding decimal value. And as you already know, b = s - '0' (and s = char(b + '0')).
  4 个评论
Guillaume
Guillaume 2017-10-24
xor is a logical operator and hence return logical arrays. Converting that to double should resolve your problem (I don't have the comms toolbox):
y1 = gfconv(double(yy), [1 1 1 1 0 1 1 0 1 0],2);
Note that the doc says that if p is 2, you can use the normal operations conv and .*.
Darsana P M
Darsana P M 2017-10-24
Yes now its correct. Thanks a lot.

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2017-10-23
y1 = gfmul(yy, bin2dec(H));
  2 个评论
Darsana P M
Darsana P M 2017-10-23
Thanks. The above error mentioned s not there. But now the error is: Error using gfmul The inputs must have the same size and orientation.
Error in hash1 (line 11) y1 = gfmul(yy, bin2dec(H));
clc;
clear all;
close all;
x1='1100110011';
x2='1111001100';
y0='0000000000';
H ='1111011010'
yy= xor(y0-'0',x1-'0');
y1 = gfmul(yy, bin2dec(H));
Walter Roberson
Walter Roberson 2017-10-23
gfmul needs three inputs, the third of which describes the galois field.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Error Detection and Correction 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by