Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的位扰频器实现有缺陷吗?_Python_Algorithm_Encoding_Wifi_Scramble - Fatal编程技术网

Python 我的位扰频器实现有缺陷吗?

Python 我的位扰频器实现有缺陷吗?,python,algorithm,encoding,wifi,scramble,Python,Algorithm,Encoding,Wifi,Scramble,我目前正在为符合802.11标准的ofdm数据包制作程序开发python实现。现在我正在努力实现位扰频器,因为它产生的输出与IEEE标准中显示的不同 方框图和生成器多项式如图所示: 在标准的示例中,用[1,0,1,1,1,1,0,1]给出了加扰种子,即初始加扰器状态。我检查了tripple,确认我的扰码器输入位数组与示例中的相同。然而,我的输出仅在加扰数组的开始和结束时相似 到目前为止我的实现(使用numpy): 我的实现有缺陷吗? 谢谢你的每一个提示和宝贵的时间 干杯 Luuke在图中有一个开

我目前正在为符合802.11标准的ofdm数据包制作程序开发python实现。现在我正在努力实现位扰频器,因为它产生的输出与IEEE标准中显示的不同

方框图和生成器多项式如图所示:

在标准的示例中,用[1,0,1,1,1,1,0,1]给出了加扰种子,即初始加扰器状态。我检查了tripple,确认我的扰码器输入位数组与示例中的相同。然而,我的输出仅在加扰数组的开始和结束时相似

到目前为止我的实现(使用numpy):

我的实现有缺陷吗? 谢谢你的每一个提示和宝贵的时间

干杯
Luuke

在图中有一个开关,它将在第一个
len(seed)
位之后翻转。因此,我认为头7个
inbit
应该直接使用种子位进行+'ed,只有在这之后,才应该像您的实现那样开始使用
state[0]^state[3]
进行+'ing。但不完全确定/@Jeronimo谢谢你的提示,我已经尝试过了(应该提到,对不起),但是它偏离了期望的输出。运行
扰码器([0]*128,[1,0,1,1,1,0,1])
返回
[01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01。这种东西的常见问题是比特流首先是比特0。@ChrisHall谢谢!我的比特顺序确实是个问题。在图中有一个开关,它会在第一个
len(seed)之后翻转
位。因此,我认为头7个
位应该直接与种子位进行+'ed,只有在这之后,才应该像您的实现一样开始与
状态[0]^state[3]
进行+'ing。不过,还不能完全确定。:/Jeronimo谢谢您的提示,我已经尝试过了(应该提到它,对不起)但它与期望的输出相差更大。运行
扰码器([0]*128[1,0,1,1,1,0,1])
返回
[01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01。通常这种东西的错误是位流首先是位0。@ChrisHall谢谢!我的位顺序确实是个问题。
def scrambler(inBits, seed):
    state = np.array(seed, dtype=np.uint8)
    outBits = np.zeros(len(inBits), dtype=np.uint8)
    for idx in range(len(inBits)):
        feedback = state[0] ^ state[3]
        outBits[idx] = feedback ^ inBits[idx]
        state[0:6] = state[1:]
        state[-1] = feedback
    return outBits