伪随机序列又称为伪噪声序列。其中二进制伪随机序列在信号同步、扩频通信和多址通信等领域得到了广泛的应用。例如,在扩频通信中,使用伪噪声序列作为扩频信号,可使得扩频后的信号具有很宽的频谱,因此具有频率谱密度很小的特性。下面重点介绍m序列的实现。
m序列是最长线性移位寄存器序列的简称。其最大长度决定于移位寄存器的级数,码的结构决定于反馈抽头的位置和数量。不同的抽头的组合可以产生不同长度和不同结构的码序列。m序列实现的关键是模2加法器。
代码实现如下:
# 伪随机序列
# pseudo_random_state表示从界面上获取的状态值,分别对应着7,9,15,16,20,21,23和用户自定义
# init_value表示初始值,用字符串保存;expression为本原表达式的幂,用列表保存
# 字典用伪随机状态作为键,包含初始值和本原表达式的幂的列表作为值,进行一一对应
def generate_prbs(pseudo_random_state, init_value=None, expression=None):
if pseudo_random_state == 'user_define':
pseudo_random_sequence = real_calculate_prbs(init_value, expression)
else:
pseudo_rand