对于通信系统,我需要一种特殊的格雷码.要求是:
这种格雷码的一个例子是,对于5位且mrl = 4:
01111000011110000111100001111000
00111100000011111100001111110000
00011110000111100001111000011110
00001111110000111111000000111100
00000000111111110000000011111111
Run Code Online (Sandbox Code Playgroud)
本文给出了不同位数的最佳mrl值.然后,通过使用详尽的计算机搜索找到这些值.
我有python代码,适用于少量位,最多6位:
N = 5 # number of bit
mrl = 4 # minimum run length
first_transition = [0]
first_code = [0]
def Recur(previous_transitions, previous_codes):
if len(previous_codes) == (2**N):
for b in xrange(N):
print ''.join([str((code >> (N-b-1)) & 1) for code in previous_codes])
print
return
new_transition_list = range(N)
for new_transition in new_transition_list:
ok = True
for i in xrange(mrl-1): #look back for transitions that are too close …Run Code Online (Sandbox Code Playgroud)