wlanScramble

Скремблируйте и дескремблируйте двоичную входную последовательность

Описание

пример

y = wlanScramble(bits,scramInit) скремблирует или дескремблирует двоичный вход bits для заданного начального состояния скремблирования, с использованием 127-длинного кадра-синхронного скремблера. Синхронный по кадру скремблер использует полином генератора, заданный в IEEE® 802.11™-2012, раздел 18.3.5.5 и 802.11ad™-2012 IEEE, раздел 21.3.9. Тот же скремблер используется для скремблирования бит в передатчике и дескремблирования бит в приемнике.

Примеры

свернуть все

Создайте инициализацию скремблера и входную последовательность случайных бит.

scramInit = 93;
bits = randi([0,1],1000,1);

Скремблируйте и дескремблируйте биты при помощи инициализации скремблера.

scrambledData = wlanScramble(bits,scramInit);
descrambledData = wlanScramble(scrambledData,scramInit);

Проверьте, что дескремблированные данные совпадают с исходными данными.

isequal(bits,descrambledData)
ans = logical
   1

Входные параметры

свернуть все

Входная последовательность, которая будет скремблирована, задается как двоичный вектор-столбец или матрица.

Типы данных: double | int8

Начальное состояние скремблера, заданное в виде целого числа в интервале [1, 127] или соответствующего двоичного вектора-столбца длины 7.

Раздел 17.3.5.5 [1] определяет процесс скремблирования и дескремблирования, применяемый к передаваемым данным. Заголовок и поля данных, которые следуют за полем инициализации скремблера (включая биты заполнения данных), скремблируются XORing каждым битом с периодической последовательностью length-127, сгенерированной полиномиальным S(x) = x7+ x4+1. Октеты PSDU помещаются в поток битов, и в каждом октете бит 0 (LSB) является первым и бит 7 (MSB) является последним. Этот рисунок демонстрирует генерацию последовательности и операцию XOR.

Преобразование из целого числа в биты использует ориентацию слева MSB. Для инициализации скремблера с десятичной 1биты сопоставлены с показанными элементами.

ЭлементX7X6X5X4X3X2X1
Битовое значение0000001

Чтобы сгенерировать битовый поток, эквивалентный десятичному числу, используйте de2bi функция. Для примера, для десятичного числа 1:

de2bi(1,7,'left-msb')
ans =

     0     0     0     0     0     0     1

Пример: [1; 0; 1; 1; 1; 0; 1] передает состояние инициализации скремблера 93 в виде двоичного значения columnm вектора.

Типы данных: double

Выходные аргументы

свернуть все

Скремблированный или дескремблированный выход, возвращенный как двоичный вектор-столбец или матрица с тем же размером и типом, что и bits.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2017b