calibrate by gf4
This commit is contained in:
60
Class/detection/GFmatrix.py
Normal file
60
Class/detection/GFmatrix.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# plus、multi、GF三个函数用于生成伪随机矩阵
|
||||
def plus(x, y):
|
||||
if x == y:
|
||||
return 0
|
||||
elif (x == 1 and y == 2) or (x == 2 and y == 1):
|
||||
return 3
|
||||
elif (x == 1 and y == 3) or (x == 3 and y == 1):
|
||||
return 2
|
||||
elif (x == 2 and y == 3) or (x == 3 and y == 2):
|
||||
return 1
|
||||
elif x == 0:
|
||||
return y
|
||||
elif y == 0:
|
||||
return x
|
||||
|
||||
|
||||
def multi(x, y):
|
||||
if x == 0 or y == 0:
|
||||
return 0
|
||||
elif x == 1:
|
||||
return y
|
||||
elif y == 1:
|
||||
return x
|
||||
elif x == 2 and y == 2:
|
||||
return 3
|
||||
elif x == 3 and y == 3:
|
||||
return 2
|
||||
else:
|
||||
return 1
|
||||
|
||||
|
||||
def GF(a, b, c, d, e, f):
|
||||
data = []
|
||||
|
||||
for i in range(0, 4095):
|
||||
data.append(0)
|
||||
|
||||
data[0] = a
|
||||
data[1] = b
|
||||
data[2] = c
|
||||
data[3] = d
|
||||
data[4] = e
|
||||
data[5] = f
|
||||
|
||||
for i in range(6, 4095):
|
||||
data[i] = plus(data[i - 1], multi(data[i - 2], 3))
|
||||
data[i] = plus(data[i], multi(data[i - 3], 2))
|
||||
data[i] = plus(data[i], multi(data[i - 4], 1))
|
||||
data[i] = plus(data[i], multi(data[i - 5], 1))
|
||||
data[i] = plus(data[i], multi(data[i - 6], 3))
|
||||
|
||||
res = []
|
||||
for i in range(0, 65):
|
||||
res.append([])
|
||||
for j in range(0, 63):
|
||||
res[i].append(0)
|
||||
for i in range(0, 4095):
|
||||
res[i % 65][i % 63] = data[i]
|
||||
|
||||
return res
|
||||
Reference in New Issue
Block a user