Main Content

ruInfo

Resource unit allocation information

Description

info = ruInfo(cfg) returns info, resource unit (RU) allocation information for a format configuration object cfg.

example

Examples

collapse all

Create a single-user HE configuration object. Get and display the RU allocation information for the configured object.

cfgHESU = wlanHESUConfig;
infoHESU = ruInfo(cfgHESU);
disp(infoHESU)
                    NumUsers: 1
                      NumRUs: 1
                   RUIndices: 1
                     RUSizes: 242
               NumUsersPerRU: 1
    NumSpaceTimeStreamsPerRU: 1
       PowerBoostFactorPerRU: 1
                   RUNumbers: 1
                  RUAssigned: 1

Now create a multiuser HE configuration object with the allocation index set to 5, which configures the object with seven users. Get and display the RU allocation information for the configured object.

cfgHEMU = wlanHEMUConfig(5);
infoHEMU = ruInfo(cfgHEMU);
disp(infoHEMU)
                    NumUsers: 7
                      NumRUs: 7
                   RUIndices: [1 2 2 5 6 7 4]
                     RUSizes: [26 26 52 26 26 26 52]
               NumUsersPerRU: [1 1 1 1 1 1 1]
    NumSpaceTimeStreamsPerRU: [1 1 1 1 1 1 1]
       PowerBoostFactorPerRU: [1 1 1 1 1 1 1]
                   RUNumbers: [1 2 3 4 5 6 7]
                  RUAssigned: [1 1 1 1 1 1 1]

Create a multiuser HE configuration object with the allocation index set to 96. This setting specifies a configuration with two 106-tone RUs, both with one user. Display the RU allocation information to show this.

cfg = wlanHEMUConfig(96);
info = ruInfo(cfg);
disp(info)
                    NumUsers: 2
                      NumRUs: 2
                   RUIndices: [1 2]
                     RUSizes: [106 106]
               NumUsersPerRU: [1 1]
    NumSpaceTimeStreamsPerRU: [1 1]
       PowerBoostFactorPerRU: [1 1]
                   RUNumbers: [1 2]
                  RUAssigned: [1 1]

Set the station identity to 2046 for the second user. The RU allocation information now shows that only the first RU is assigned.

cfg.User{2}.STAID = 2046;
info = ruInfo(cfg);
disp(info)
                    NumUsers: 2
                      NumRUs: 2
                   RUIndices: [1 2]
                     RUSizes: [106 106]
               NumUsersPerRU: [1 1]
    NumSpaceTimeStreamsPerRU: [1 1]
       PowerBoostFactorPerRU: [1 1]
                   RUNumbers: [1 2]
                  RUAssigned: [1 0]

Create a wlanEHTMUConfig object with the allocation index set to the vector [27 64 64 64]. This setting specifies four 242-tone RUs. The RU represented by allocation index 27 is unassigned, which means that it does not transmit any user data. The remaining three RUs each have one user.

cfgUnassigned = wlanEHTMUConfig([27 64 64 64]);

Show the allocation and the RU information for the configuration. Both show three RUs and ignore the unassigned RU.

showAllocation(cfgUnassigned);

Figure RU/MRU Assignment and Occupied Subcarriers contains an axes object. The axes object with ylabel Subcarrier Index contains 15 objects of type patch, line, text.

infoUnassigned = ruInfo(cfgUnassigned);
disp(infoUnassigned)
                    NumUsers: 3
                      NumRUs: 3
                   RUIndices: {[2]  [3]  [4]}
                     RUSizes: {[242]  [242]  [242]}
               NumUsersPerRU: [1 1 1]
    NumSpaceTimeStreamsPerRU: [1 1 1]
       PowerBoostFactorPerRU: [1 1 1]
                   RUNumbers: [1 2 3]
                  RUAssigned: [1 1 1]

Now create a wlanEHTMUConfig object with the allocation index set to the vector [64 64 64 64]. This setting specifies the same configuration as before, except the first RU is assigned.

cfgSTAID = wlanEHTMUConfig([64 64 64 64]);

Now set the STAID property of the first user to 2046. This setting specifies that the user's corresponding RU is unassigned.

cfgSTAID.User{1}.STAID=2046;

Show the allocation. This allocation is the same as in the first case, except that the RUs are numbered 2–4 instead of 1–3. The object now considers the first RU to be present, even though the RU does not transmit user data.

showAllocation(cfgSTAID)

Figure RU/MRU Assignment and Occupied Subcarriers contains an axes object. The axes object with ylabel Subcarrier Index contains 15 objects of type patch, line, text.

Show the RU information. All four RUs are present, but the first one is shown as unassigned.

infoSTAID = ruInfo(cfgSTAID);
disp(infoSTAID)
                    NumUsers: 4
                      NumRUs: 4
                   RUIndices: {[1]  [2]  [3]  [4]}
                     RUSizes: {[242]  [242]  [242]  [242]}
               NumUsersPerRU: [1 1 1 1]
    NumSpaceTimeStreamsPerRU: [1 1 1 1]
       PowerBoostFactorPerRU: [1 1 1 1]
                   RUNumbers: [1 2 3 4]
                  RUAssigned: [0 1 1 1]

Input Arguments

collapse all

Format configuration object, specified as an object of type wlanEHTMUConfig, wlanEHTTBConfig, wlanHEMUConfig, wlanHESUConfig, or wlanHETBConfig.

Output Arguments

collapse all

Information about the RU properties of the input object, returned as a structure.

Number of users, returned as an integer in the range [1, 144]. When you specify cfg as an object of type wlanHEMUConfig, wlanHESUConfig, or wlanHETBConfig, the maximum number of users is 74. When you specify cfg as an object of type wlanEHTMUConfig or wlanEHTTBConfig, the maximum number of users is 144.

Data Types: double

Number of RUs, returned as an integer in the range [1, 144]. When you specify cfg as an object of type wlanHEMUConfig, wlanHESUConfig, or wlanHETBConfig, the maximum number of RUs is 74. When you specify cfg as an object of type wlanEHTMUConfig or wlanEHTTBConfig, the maximum number of RUs is 144.

Data Types: double

RU indices, returned as:

Data Types: double | cell

Resource unit sizes, returned as:

  • An integer or a 1-by-NumRUs vector with elements that have integer values of 26, 52, 106, 242, 484, 968, 996, or 1992. This applies when you specify cfg as an object of type wlanHEMUConfig, wlanHESUConfig, or wlanHETBConfig.

  • A 1-by-NumRUs cell array of vectors with elements that have integer values of 26, 52, 106, 242, 484, 968, 996, 1992, or 3984. This applies when you specify cfg as an object of type wlanEHTMUConfig or wlanEHTTBConfig.

Data Types: double

Number of users per RU, returned as an integer or a 1-by-NumRUs vector with elements that have integer values in the range [1, 8].

Data Types: double

Number of space-time streams per RU, returned as an integer or a 1-by-NumRUs vector with elements that have integer values in the range [1, 8].

Data Types: double

Power boost factor per RU, returned as an integer or a 1-by-NumRUs vector with elements that have scalar values in the range [0.5, 2].

Data Types: double

RU numbers, returned as an integer or a 1-by-NumRUs vector with elements that have integer values in the range [1, 144]. RUNumbers correspond to the indices for each active RU configured in the cfg.RU object. An RU is inactive when it contains a single station with its station identifier set to 2046.

Data Types: double

Since R2025a

Indication of assigned RUs, returned as a logical scalar or logical vector. The size of the vector is 1-by-NumRUs. When an RU is assigned, the corresponding vector entry is 1. When you make an RU unassigned by setting the STAID property of one of its users to 2046, the corresponding vector entry is 0.

Data Types: logical

Data Types: struct

Extended Capabilities

expand all

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

Version History

Introduced in R2018b

expand all