def prbs7_generator():
# 初始状态,选择一个非零的7位二进制数作为初始种子
# 这里使用 0b1000001 作为初始状态,即十进制中的 65
# state = 0b1000001
state = 0b0111100
# 无限循环,生成 PRBS-7 序列
while True:
# 提取最高位(最左边)作为输出
output = (state >> 6) & 1
# 更新状态
# 移位,并基于 x^7 + x^6 + 1 多项式进行反馈
# 反馈发生在最高位(x^6)和次高位(x^7,即原来的最高位)
next_bit = ((state >> 6) ^ (state >> 5)) & 1
state = (state << 1) | next_bit
# 输出当前位
yield output
# 使用生成器
prbs7_seq = prbs7_generator()
# 打印前 128 个 PRBS-7 序列位
for _ in range(128):
print(next(prbs7_seq), end='')
PRBS7:
01111001000101100111010100111110100001110001001001101101011011110110001101001011101110011001010101111111000000100000110000101000