Scramble and descramble binary input sequence
y = wlanScramble(bits,scramInit)
or descrambles the binary input
y = wlanScramble(
bits for the specified initial
scramble state, using a 127-length frame-synchronous scrambler. The
frame-synchronous scrambler uses the generator polynomial defined in IEEE®
802.11™-2012, Section 184.108.40.206 and IEEE
802.11ad™-2012, Section 21.3.9. The same scrambler is used to scramble bits at
the transmitter and descramble bits at the receiver.
Create the scrambler initialization and the input sequence of random bits.
scramInit = 93; bits = randi([0,1],1000,1);
Scramble and descramble the bits by using the scrambler initialization.
scrambledData = wlanScramble(bits,scramInit); descrambledData = wlanScramble(scrambledData,scramInit);
Verify that the descrambled data matches the original data.
ans = logical 1
bits— Input sequence
Input sequence to be scrambled, specified as a binary column vector or matrix.
scramInit— Initial state of scrambler
Initial state of the scrambler, specified as an integer from 1 to 127, or a corresponding 7-by-1 column vector of binary bits.
The scrambler initialization used on the transmission data follows the process described in IEEE Std 802.11-2012, Section 220.127.116.11 and IEEE Std 802.11ad-2012, Section 21.3.9. The header and data fields that follow the scrambler initialization field (including data padding bits) are scrambled by XORing each bit with a length-127 periodic sequence generated by the polynomial S(x) = x7+x4+1. The octets of the PSDU (Physical Layer Service Data Unit) are placed into a bit stream, and within each octet, bit 0 (LSB) is first and bit 7 (MSB) is last. The generation of the sequence and the XOR operation are shown in this figure:
Conversion from integer to bits uses left-MSB orientation. For the
initialization of the scrambler with decimal
1, the bits are mapped to the
To generate the bit stream equivalent to a decimal, use
de2bi. For example, for decimal
de2bi(1,7,'left-msb') ans = 0 0 0 0 0 0 1
scramInitis applied across all the columns of
bitswhen the input is a matrix.
[0 0 0 0 0 0 1]'
Usage notes and limitations:
Use in a MATLAB Function block is not supported.