Main Content

wlanBCCDeinterleave

Deinterleave binary convolutionally interleaved input

Description

example

y = wlanBCCDeinterleave(bits,type,numCBPSSI,cbw) outputs 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 specifies the number of coded bits per OFDM symbol per spatial stream per interleaver block and cbw specifies the channel bandwidth.

example

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

Examples

collapse all

Perform BCC interleaving and deinterleaving for the VHT interleaving type.

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 20Mhz and the number of spatial streams, named as numSS, 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

Perform BCC interleaving and deinterleaving for the non-HT interleaving type.

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