Main Content

wlanBCCInterleave

Interleave BCC-encoded input

Description

y = wlanBCCInterleave(bits,type,numCBPSSI,cbw) returns the interleaved binary convolutionally encoded (BCC) input bits for a specified interleaver type, as defined in Sections 21.3.10.8 and 23.3.9.8 of IEEE® 802.11™-2020. numCBPSSI is the number of coded bits per OFDM symbol per spatial stream per interleaver block and cbw is the channel bandwidth.

example

y = wlanBCCInterleave(bits,type,numCBPSSI) outputs the interleaved input bits for the non-HT interleaver type.

example

Examples

collapse all

Define the input parameters. Set the number of coded bits per OFDM symbol per spatial stream per interleaver block to 52, the channel bandwidth to 20 MHz, and the number of spatial streams to 4.

numCBPSSI = 52;
cbw = 'CBW20';
numSS = 4;

Create a sequence of bits for two OFDM symbols, four spatial streams, and one segment.

inBits = randi([0 1],2*numCBPSSI,numSS,1,'int8');

Perform BCC interleaving on the bits.

out = wlanBCCInterleave(inBits,'VHT',numCBPSSI,cbw);

Define the input parameters. Set the number of coded bits per OFDM symbol per spatial stream per interleaver block to 48.

numCBPSSI = 48;

Create a sequence of random bits for one OFDM symbol, one spatial stream, and one segment.

inBits = randi([0 1],numCBPSSI,1);

Perform BCC interleaving on the bits.

out = wlanBCCInterleave(inBits,'Non-HT',numCBPSSI);

Compare the original sequence with the interleaved one.

disp([inBits(1:10) out(1:10)])
     1     1
     1     0
     0     0
     1     1
     1     1
     0     0
     0     0
     1     1
     1     0
     1     1

Define the input parameters. Set the number of coded bits per OFDM symbol per spatial stream per interleaver block to 192.

numCBPSSI = 192;

Create a numeric sequence from 1 to numCBPSSI.

seq = (1:numCBPSSI).';

Perform BCC interleaving on the numeric sequence.

intSeq = wlanBCCInterleave(seq,'Non-HT',numCBPSSI);
disp(intSeq(1:10))
     1
    17
    33
    49
    65
    81
    97
   113
   129
   145

Input Arguments

collapse all

Input sequence containing BCC data, specified as an (NCBPSSI×NSYM)-by-NSS-by-NSEG array, where:

  • NCBPSSI is the number of coded bits per OFDM symbol per spatial stream per interleaver block.

  • NSYM is the number of OFDM symbols.

  • NSS is the number of spatial streams.

    • If type= 'Non-HT', then NSS must be 1.

    • If type= 'VHT', then NSS must be from 1 to 8.

  • NSEG is the number of segments.

Data Types: double | int8

Type of interleaving, specified as 'VHT' or 'Non-HT'.

Data Types: char | string

Number of coded bits per OFDM symbol per spatial stream per interleaver block specified as a positive integer. As defined in IEEE 802.11ac™-2013 Table 22-6, the value of numCBPSSI depends on the interleaving type:

'Non-HT'NSD×NBPSCS
'VHT'NSD×NBPSCS/NSEG

where:

  • NSD is the number of data subcarriers.

  • NBPSCS is the number of coded bits per subcarrier per spatial stream, specified as 1, 2, 4, 6, or 8.

  • NSEG is the number of segments.

When type= 'Non-HT', numCBPSSI can be 48, 96, 192, 288, and 384, since NCBPSSI = 48 × NBPSCS.

When type= 'VHT', numCBPSSI can be 24, 48, 96, 144, and 192, since NCBPSSI = 24 × NBPSCS.

Data Types: double

Channel bandwidth in MHz, specified as 'CBW1','CBW2', 'CBW4','CBW8', 'CBW10', 'CBW16', 'CBW20', 'CBW40', 'CBW80', or 'CBW160'. When the interleaver type is set to 'Non-HT', cbw is optional.

Data Types: char | string

Output Arguments

collapse all

Interleaved output, returned as an (NCBPSSI×NSYM)-by-NSS-by-NSEG array, where:

  • NCBPSSI is the number of coded bits per OFDM symbol per spatial stream per interleaver block.

  • NSYM is the number of OFDM symbols.

  • NSS is the number of spatial streams.

  • NSEG is the number of segments.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2017b