Main Content

wlanBCCDeinterleave

Deinterleave BCC-interleaved input

Description

y = wlanBCCDeinterleave(bits,type,numCBPSSI,cbw) returns the binary convolutionally deinterleaved 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 = wlanBCCDeinterleave(bits,type,numCBPSSI) outputs the deinterleaved 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;
chanBW = 'CBW20';
numSS = 4;

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

bits = randi([0 1],(2*numCBPSSI),numSS,1);

Perform BCC interleaving on the bits.

intBits = wlanBCCInterleave(bits,'VHT',numCBPSSI,chanBW);

Perform BCC deinterleaving on the interleaved bits.

out = wlanBCCDeinterleave(intBits,'VHT',numCBPSSI,chanBW);

Verify that the deinterleaved data matches the original data.

isequal(bits,out)
ans = logical
   1

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.

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

Perform BCC interleaving on the bits.

intBits = wlanBCCInterleave(bits,'Non-HT',numCBPSSI);

Perform BCC deinterleaving on the interleaved bits.

out = wlanBCCDeinterleave(intBits,'Non-HT',numCBPSSI);

Verify that the deinterleaved data matches the original data.

isequal(bits,out)
ans = logical
   1

Input Arguments

collapse all

Input sequence containing binary convolutionally interleaved 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: single | double

The 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: single | 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', then cbw is optional.

Data Types: char | string

Output Arguments

collapse all

Deinterleaved 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