wlanStreamParse

Stream-parse encoded streams

Syntax

``y = wlanStreamParse(bits,numSS,numCBPS,numBPSCS)``

Description

example

````y = wlanStreamParse(bits,numSS,numCBPS,numBPSCS)` stream-parses encoded streams `bits` into `numSS` spatial streams for the specified number of coded bits per OFDM symbol, `numCBPS`, and coded bits per subcarrier per spatial stream, `numBPSCS`. The function implements the operation defined in sections 19.3.11.8.2 and 21.3.10.6 of [1] and section 27.3.12.6 of [2].```

Examples

collapse all

Stream-parse three OFDM symbols with two encoded streams into five spatial streams.

Specify the number of coded bits per OFDM symbol, coded bits per subcarrier per spatial stream, encoded streams, spatial streams, and OFDM symbols.

```numCBPS = 3240; numBPSCS = 6; numES = 2; numSS = 5; numSym = 3;```

Create a random encoded stream of bits.

`bits = randi([0 1],numCBPS*numSym/numES,numES,"int8");`

Stream-parse the encoded stream.

`y = wlanStreamParse(bits,numSS,numCBPS,numBPSCS);`

Verify the size of the stream-parsed bits.

`size(y)`
```ans = 1×2 1944 5 ```

Get the bit order of an OFDM symbol after stream-parsing one encoded stream into three spatial streams.

Specify the number of coded bits per OFDM symbol, coded bits per subcarrier per spatial stream, encoded streams, spatial streams, and OFDM symbols.

```numCBPS = 156; numBPSCS = 1; numES = 1; numSS = 3; numSym = 1;```

Create an input sequence of ordered symbols with appropriate dimensions.

```sequence = (1:numCBPS*numSym).'; bits = reshape(sequence,numCBPS*numSym/numES,numES);```

Stream-parse the symbols.

`y = wlanStreamParse(bits,numSS,numCBPS,numBPSCS);`

Input Arguments

collapse all

Encoded streams, specified as a real-valued matrix of size (NCBPS × NSym ÷ NES)-by-NES.

• NCBPS is the number of coded bits per OFDM symbol (that is, the `numCBPS` input).

• NSym is the number of OFDM symbols.

• NES is the number of encoded streams.

Data Types: `single` | `double` | `int8`

Number of spatial streams, specified as a positive integer.

Data Types: `double`

Number of coded bits per OFDM symbol, specified as a positive integer. This value is typically NBPSCS × NSS × NSD, where:

• NBPSCS is the number of coded bits per subcarrier per spatial stream (that is, the `numBPSCS` input).

• NSS is the number of spatial streams.

• NSD is the number of complex data numbers per frequency segment.

Data Types: `double`

Number of coded bits per subcarrier per spatial stream, specified as `1` or a positive even integer.

Data Types: `double`

Output Arguments

collapse all

Stream-parsed data, returned as a real-valued matrix of size (NCBPSS × NSym)-by-NSS.

• NCBPSS is the number of coded bits per OFDM symbol per spatial stream.

• NSym is the number of OFDM symbols.

• NSS is the number of spatial streams.

The function returns this output with the same data type as the `bits` input.

Data Types: `single` | `double` | `int8`

References

[1] IEEE Std 802.11™-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements.

[2] IEEE® Std 802.11ax™-2021 (Amendment to IEEE Std 802.11-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems. Local and Metropolitan Area Networks — Specific Requirements.

Version History

Introduced in R2017b