Моя реализация бит-скремблера имеет недостатки? - PullRequest
1 голос
/ 15 апреля 2020

В настоящее время я работаю над реализацией python для соответствия 802.11 dm package-crafter. Сейчас я борюсь с реализацией бит-скремблера, поскольку он производит вывод, отличный от показанного в стандарте IEEE.

Блок-схема и полином генератора показаны на рисунке: Блок-схема из стандарта IEEE 802.11

Начальное значение скремблирования, то есть начальное состояние скремблера, приведено в Пример стандарта с [1, 0, 1, 1, 1, 0, 1]. Я трижды проверил, что мой входной битовый массив для скремблера такой же, как в примере. Мой вывод, однако, похож на только в начале и в конце скремблированного массива.

Моя реализация до сих пор (с использованием numpy):

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

Моя реализация несовершенна? Спасибо за каждую подсказку и ваше время!

Приветствия Луке

...