37 lines
578 B
Python
37 lines
578 B
Python
import numpy as np
|
|
|
|
|
|
def project_bit(bit):
|
|
n = len(bit)
|
|
q_min = 0.1
|
|
q_max = 0.5
|
|
|
|
reverse_bit = np.flip(bit)
|
|
dec = np.uint64(0)
|
|
|
|
for i in range(n):
|
|
dec += np.uint64(2)**i * reverse_bit[i]
|
|
|
|
q = q_min + ((q_max - q_min) / (2**n - 1)) * dec
|
|
|
|
return q
|
|
|
|
|
|
|
|
def bit_to_grey(bit):
|
|
grey = [bit[0]]
|
|
|
|
for i in range(1, len(bit)):
|
|
grey.append(bit[i-1] ^ bit[i])
|
|
|
|
return np.array(grey)
|
|
|
|
|
|
|
|
def grey_to_bit(grey):
|
|
bit = [grey[0]]
|
|
|
|
for i in range(1, len(grey)):
|
|
bit.append(bit[i-1] ^ grey[i])
|
|
|
|
return np.array(bit) |