802.11ax Waveform Generation
802.11ax 波形生成
This example shows how to parameterize and generate different IEEE® 802.11ax™ (Wi-Fi 6) high efficiency (HE) format packets.
这个示例展示了如何对 IEEE® 802.11ax™(Wi-Fi 6)高效(HE)格式的数据包进行参数化和生成。
Introduction 介绍
IEEE Std 802.11ax™-2021 [ 1 ] specifies four high efficiency (HE) packet formats:
IEEE Std 802.11ax™-2021 [ 1 ] 指定四个高效率(HE)数据包格式:
Single-user 单用户
Extended-range single-user
扩展范围的单用户Multi-user 多用户
Trigger-based 基于触发器
This example shows how packets can be generated for these different formats, and demonstrates some of the key features of the draft standard [ 1 ].
这个示例展示了如何为这些不同格式生成数据包,并展示了草案标准[ 1 ]的一些关键特性。
HE Single-User Format HE 单用户格式
An HE single-user (SU) packet is a full-band transmission to a single user. The transmit parameters for the HE SU format are configured using a wlanHESUConfig
object. The wlanHESUConfig
object can be configured to operate in extended-range mode. To enable or disable this mode, set the ExtendedRange
property to true
or false
. In this example we create a configuration for an HE SU transmission and configure transmission properties.
一个 HE 单用户(SU)包是向单个用户的全波段传输。HE SU 格式的传输参数使用对象配置。可以配置对象以在扩展范围模式下运行。要启用或禁用此模式,请将属性设置为或。在本示例中,我们创建了一个针对 HE SU 传输的配置并配置传输属性。
cfgSU = wlanHESUConfig; cfgSU.ExtendedRange = false; % Do not use extended-range format cfgSU.ChannelBandwidth = 'CBW20'; % Channel bandwidth cfgSU.APEPLength = 1000; % Payload length in bytes cfgSU.MCS = 0; % Modulation and coding scheme cfgSU.ChannelCoding = 'LDPC'; % Channel coding cfgSU.NumSpaceTimeStreams = 1; % Number of space-time streams cfgSU.NumTransmitAntennas = 1; % Number of transmit antennas
A single-user packet can be generated with the waveform generator, wlanWaveformGenerator
. The getPSDULength()
method returns the required PSDU length given the transmission configuration. This length is used to create a random PSDU for transmission.
可以使用波形生成器wlanWaveformGenerator
生成单用户数据包。 getPSDULength()
方法返回给定传输配置所需的 PSDU 长度。该长度用于创建用于传输的随机 PSDU。
psdu = randi([0 1],getPSDULength(cfgSU)*8,1,'int8'); % Random PSDU txSUWaveform = wlanWaveformGenerator(psdu,cfgSU); % Create packet
HE Extended-Range Single-User Format
HE 扩展范围单用户格式
An extended-range single-user packet has the same fields as the standard single-user format, but the powers of some fields are boosted, and some fields are repeated to improve performance at low SNRs. An extended-range packet can be configured using a wlanHESUConfig
object with ChannelBandwidth
set to 'CBW20'
and ExtendedRange
set to true
. An extended-range packet has an option to only transmit in the upper 106-tone resource unit (RU) within the 20 MHz channel, or over the entire bandwidth. This can be configured with the Upper106ToneRU
property:
扩展范围的单用户数据包具有与标准单用户格式相同的字段,但某些字段的功率被提升,而某些字段被重复以改进低信噪比下的性能。可以使用具有 wlanHESUConfig
对象配置扩展范围数据包,其中将 ChannelBandwidth
设置为 'CBW20'
,并将 ExtendedRange
设置为 true
。扩展范围的数据包有一个选项,可以选择仅在 20 MHz 信道内的上 106-tone 资源单元(RU)中传输,或在整个带宽上进行传输。这可以通过设置 Upper106ToneRU
属性来配置:
cfgExtSU = cfgSU; cfgExtSU.ExtendedRange = true; % Enable extended-range format cfgExtSU.Upper106ToneRU = true; % Use only upper 106-tone RU % Generate a packet psdu = randi([0 1],getPSDULength(cfgExtSU)*8,1,'int8'); % Random PSDU txExtSUWaveform = wlanWaveformGenerator(psdu,cfgExtSU); % Create packet
Look at the spectrum and spectrogram of the generated signal. In the spectrogram you can see that the packet headers use the available bandwidth, however, the data portion only occupies the upper half of the channel.
查看生成信号的频谱和光谱图。在光谱图中,您可以看到数据包头使用了可用带宽,但数据部分仅占用了通道的上半部分。
fs = wlanSampleRate(cfgExtSU); % Get baseband sample rate ofdmInfo = wlanHEOFDMInfo('HE-Data',cfgExtSU); fftsize = ofdmInfo.FFTLength; % Use the data field fft size rbw = fs/fftsize; % Resoluton bandwidth spectrumScope = spectrumAnalyzer(SampleRate=fs,... RBWSource='property',RBW=rbw,... AveragingMethod='exponential',ForgettingFactor=0.25,... YLimits=[-50,20],... Title='HE Extended-Range SU with Active Upper 106-Tone RU'); spectrumScope.ViewType = 'Spectrum and Spectrogram'; spectrumScope.TimeSpanSource = 'Property'; spectrumScope.TimeSpan = length(txExtSUWaveform)/fs; spectrumScope(txExtSUWaveform)
If you compare the power of the L-STF and L-LTF fields you can see that the extended-range transmission is boosted by 3 dB.
如果你比较 L-STF 和 L-LTF 领域的功率,你会发现扩展范围传输增强了 3 dB。
figure; ind = wlanFieldIndices(cfgExtSU); t = (0:(double(ind.LLTF(2))-1))/fs*1e6; plot(t,20*log10(movmean(abs(txSUWaveform(1:ind.LLTF(2))),20)),'-b') hold on; plot(t,20*log10(movmean(abs(txExtSUWaveform(1:ind.LLTF(2))),20)),'-r') grid on; title('Power of L-STF and L-LTF (1 us Moving Average)'); xlabel('Time (us)'); ylabel('Power (dBW)'); legend('HE SU','HE Extended-Range SU','Location','SouthWest');
HE Multi-User Format - OFDMA
HE 多用户格式 - OFDMA
The HE multi-user (HE MU) format can be configured for an OFDMA transmission, a MU-MIMO transmission, or a combination of the two. This flexibility allows an HE MU packet to transmit to a single user over the whole band, multiple users over different parts of the band (OFDMA), or multiple users over the same part of the band (MU-MIMO).
HE 多用户(HE MU)格式可配置为 OFDMA 传输,MU-MIMO 传输,或两者的组合。这种灵活性允许 HE MU 数据包向单个用户在整个频段传输,向不同频段的多个用户传输(OFDMA),或向同一频段的多个用户传输(MU-MIMO)。
For an OFDMA transmission, the channel bandwidth is divided into resource units (RUs). An RU is a group of subcarriers assigned to one or more users. An RU is defined by a size (the number of subcarriers) and an index. The RU index specifies the location of the RU within the channel. For example, in an 80 MHz transmission there are four possible 242-tone RUs, one in each 20 MHz subchannel. RU# 242-1 (size 242, index 1) is the RU occupying the lowest absolute frequency within the 80 MHz, and RU# 242-4 (size 242, index 4) is the RU occupying the highest absolute frequency. The draft standard defines possible sizes and locations of RUs in Section 27.3.2.2 of [ 1 ].
对于 OFDMA 传输,信道带宽分成资源单元(RUs)。一个 RU 是一组分配给一个或多个用户的子载波。RU 由大小(子载波数量)和索引定义。RU 索引指定 RU 在信道内的位置。例如,在 80MHz 传输中有四个可能的 242-tone RUs,每个 20MHz 子信道中有一个。RU#242-1(大小 242,索引 1)是占据 80MHz 内最低绝对频率的 RU,RU#242-4(大小 242,索引 4)是占据最高绝对频率的 RU。草案标准在[1]的 27.3.2.2 节中定义了 RU 的可能大小和位置。
The assignment of RUs in a transmission is defined by the allocation index. The allocation index is defined in Table 27-26 of [ 1 ]. For each 20 MHz subchannel, an 8-bit index describes the number and size of RUs, and the number of users transmitted on each RU. The allocation index also determines which content channel is used to signal a user in HE-SIG-B. The allocation indices within Table 27-26, and the corresponding RU assignments, are provided in the table returned by the function heRUAllocationTable
. The first 10 allocations within the table are shown below. For each allocation index, the 8-bit allocation index, the number of users, number of RUs, RU indices, RU sizes, and number of users per RU are displayed. A note is also provided about allocations which are reserved, or serve a special purpose. The allocation table can also be viewed in the Appendix.
传输中 RU 的分配是由分配索引定义的。分配索引在[ 1 ]的第 27-26 表中定义。对于每个 20 MHz 子信道,一个 8 位索引描述了 RU 的数量和大小,以及每个 RU 上传输的用户数量。分配索引还确定了在 HE-SIG-B 中用于信号用户的内容信道。在表格 heRUAllocationTable 返回的表中提供了第 27-26 表中的分配索引以及相应的 RU 分配。表中显示了前 10 个分配。对于每个分配索引,显示了 8 位分配索引、用户数量、RU 数量、RU 索引、RU 大小以及每个 RU 的用户数量。还提供了有关保留的或具有特殊目的的分配的注释。分配表也可以在附录[ Appendix ]中查看。
allocationTable = heRUAllocationTable;
disp('First 10 entries in the allocation table: ')
disp(allocationTable(1:10,:));
First 10 entries in the allocation table: Allocation BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU Note __________ _____________ ________ ______ _____________________ ______________________________ _____________________ ____ 0 "00000000" 9 9 {[1 2 3 4 5 6 7 8 9]} {[26 26 26 26 26 26 26 26 26]} {[1 1 1 1 1 1 1 1 1]} "" 1 "00000001" 8 8 {[ 1 2 3 4 5 6 7 4]} {[ 26 26 26 26 26 26 26 52]} {[ 1 1 1 1 1 1 1 1]} "" 2 "00000010" 8 8 {[ 1 2 3 4 5 3 8 9]} {[ 26 26 26 26 26 52 26 26]} {[ 1 1 1 1 1 1 1 1]} "" 3 "00000011" 7 7 {[ 1 2 3 4 5 3 4]} {[ 26 26 26 26 26 52 52]} {[ 1 1 1 1 1 1 1]} "" 4 "00000100" 8 8 {[ 1 2 2 5 6 7 8 9]} {[ 26 26 52 26 26 26 26 26]} {[ 1 1 1 1 1 1 1 1]} "" 5 "00000101" 7 7 {[ 1 2 2 5 6 7 4]} {[ 26 26 52 26 26 26 52]} {[ 1 1 1 1 1 1 1]} "" 6 "00000110" 7 7 {[ 1 2 2 5 3 8 9]} {[ 26 26 52 26 52 26 26]} {[ 1 1 1 1 1 1 1]} "" 7 "00000111" 6 6 {[ 1 2 2 5 3 4]} {[ 26 26 52 26 52 52]} {[ 1 1 1 1 1 1]} "" 8 "00001000" 8 8 {[ 1 3 4 5 6 7 8 9]} {[ 52 26 26 26 26 26 26 26]} {[ 1 1 1 1 1 1 1 1]} "" 9 "00001001" 7 7 {[ 1 3 4 5 6 7 4]} {[ 52 26 26 26 26 26 52]} {[ 1 1 1 1 1 1 1]} ""
A wlanHEMUConfig
object is used to configure the transmission of an HE MU packet. The allocation index for each 20 MHz subchannel must be provided when creating an HE MU configuration object, wlanHEMUConfig
. An integer between 0 and 223, corresponding to the 8-bit number in Table 27-26 of [ 1 ], must be provided for each 20 MHz subchannel.
一个 wlanHEMUConfig
对象用于配置 HE MU 数据包的传输。创建 HE MU 配置对象wlANHEMUConfig
时,必须提供每个 20 MHz 子信道的分配索引。必须为每个 20 MHz 子信道提供一个 0 到 223 之间的整数,该整数对应于[1]中表 27-26 的 8 位数。
The allocation index can be provided as a decimal or 8-bit binary sequence. In this example, a 20 MHz HE MU configuration is created with 8-bit allocation index "10000000". This is equivalent to the decimal allocation index 128. This configuration specifies 3 RUs, each with one user.
分配索引可以作为十进制或 8 位二进制序列提供。在这个例子中,使用 8 位分配索引“10000000”创建了 20 MHz HE MU 配置。这相当于十进制分配索引 128。此配置指定了 3 个 RU,每个 RU 都有一个用户。
allocationIndex = "10000000"; % 3 RUs, 1 user per RU cfgMU = wlanHEMUConfig(allocationIndex);
The showAllocation
method visualizes the occupied RUs and subcarriers for the specified configuration. The colored blocks illustrate the occupied subcarriers in the pre-HE and HE portions of the packet. White indicates subcarriers are unoccupied. The pre-HE portion illustrates the occupied subcarriers in the fields preceding HE-STF. The HE portion illustrates the occupied subcarriers in the HE-STF, HE-LTF and HE-Data field and therefore shows the RU allocation. Clicking on an RU will display information about the RU. The RU number corresponds to the i-th RU element of the cfgMU.RU
property. The size and index are the details of the RU. The RU index is the i-th possible RU of the corresponding RU size within the channel bandwidth, for example Index 2 is the 2nd possible 106-tone RU within the 20 MHz channel bandwidth. The user number corresponds to the i-th User element of the cfgMU.User
property, and the user field in HE-SIG-B. Note the middle RU (RU #2) is split across the DC subcarriers.showAllocation
方法可视化指定配置中占用的 RUs 和子载波。彩色块表示数据包的 pre-HE 和 HE 部分中已占用的子载波。白色表示子载波未被占用。pre-HE 部分表示 HE-STF 之前字段中已占用的子载波。HE 部分表示 HE-STF、HE-LTF 和 HE-Data 字段中已占用的子载波,从而显示 RU 分配。单击 RU 将显示有关 RU 的信息。RU 编号对应于cfgMU.RU
属性的第 i 个 RU 元素。大小和索引是 RU 的详细信息。RU 索引是通道带宽内相应 RU 大小的第 i 个可能 RU,例如索引 2 是 20 MHz 通道带宽内第二可能的 106-tone RU。用户编号对应于cfgMU.User
属性的第 i 个用户元素,HE-SIG-B 中的用户字段。请注意,中间 RU(RU #2)跨越 DC 子载波。
showAllocation(cfgMU);
axAlloc = gca; % Get axis handle for subsequent plotting
The ruInfo
method provides details of the RUs in the configuration. In this case we can see three users and three RUs.ruInfo
方法提供了配置中 RU 的详细信息。 在这种情况下,我们可以看到三个用户和三个 RU。
allocInfo = ruInfo(cfgMU);
disp('Allocation info:')
disp(allocInfo)
Allocation info: NumUsers: 3 NumRUs: 3 RUIndices: [1 5 2] RUSizes: [106 26 106] NumUsersPerRU: [1 1 1] NumSpaceTimeStreamsPerRU: [1 1 1] PowerBoostFactorPerRU: [1 1 1] RUNumbers: [1 2 3]
The properties of cfgMU
describe the transmission configuration. The cfgMU.RU
and cfgMU.User
properties of cfgMU
are cell arrays. Each element of the cell arrays contains an object which configures an RU or a User. When the cfgMU
object is created, the elements of cfgMU.RU
and cfgMU.User
are configured to create the desired number of RUs and users. Each element of cfgMU.RU
is a wlanHEMURU
object describing the configuration of an RU. Similarly, each element of cfgMU.User
is a wlanHEMUUser
object describing the configuration of a User. This object hierarchy is shown below:cfgMU
的属性描述了传输配置。 cfgMU.RU
和 cfgMU.User
的cfgMU
属性是单元数组。 单元数组的每个元素包含一个配置 RU 或用户的对象。 创建 cfgMU
对象时,配置 cfgMU.RU
和 cfgMU.User
的元素以创建所需数量的 RU 和用户。 每个 cfgMU.RU
元素是描述 RU 配置的 wlanHEMURU
对象。 类似地,每个 cfgMU.User
元素是描述用户配置的 wlanHEMUUser
对象。 此对象层次结构如下:
In this example, three RUs are specified by the allocation index 128, therefore cfgMU.RU
is a cell array with three elements. The index and size of each RU are configured according to the allocation index used to create cfgMU
. After the object is created, each RU can be configured to create the desired transmission configuration, by setting the properties of the appropriate RU object. For example, the spatial mapping and power boost factor can be configured per RU. The Size
and Index
properties of each RU are fixed once the object is created, and therefore are read-only properties. Similarly, the UserNumbers
property is read-only and indicates which user is transmitted on the RU. For this configuration the first RU is size 106, index 1.
在这个示例中,通过分配索引 128 指定了 3 个 RU,因此cfgMU.RU
是带有三个元素的单元数组。每个 RU 的索引和大小根据用于创建cfgMU
的分配索引进行配置。创建对象后,可以配置每个 RU 以创建所需的传输配置,方法是设置适当 RU 对象的属性。例如,可以对每个 RU 配置空间映射和功率增强因子。每个 RU 的Size
和Index
属性在创建对象后就固定了,因此是只读属性。同样,UserNumbers
属性是只读的,表示在 RU 上传输的用户。对于这个配置,第一个 RU 的大小是 106,索引为 1。
disp('First RU configuration:')
disp(cfgMU.RU{1})
First RU configuration: wlanHEMURU with properties: PowerBoostFactor: 1 SpatialMapping: 'Direct' Read-only properties: Size: 106 Index: 1 UserNumbers: 1
In this example, the allocation index specifies three users in the transmission, therefore, cfgMU.User
contains three elements. The transmission properties of users can be configured by modifying individual user objects, for example the MCS, APEP length and channel coding scheme. The read-only RUNumber
property indicates which RU is used to transmit this user.
在这个例子中,分配索引指定了传输中的三个用户,因此,cfgMU.User
包含三个元素。用户的传输属性可以通过修改单个用户对象来配置,例如 MCS、APEP 长度和信道编码方案。只读 RUNumber
属性表示用于传输此用户的 RU。
disp('First user configuration:')
disp(cfgMU.User{1})
First user configuration: wlanHEMUUser with properties: APEPLength: 100 MCS: 0 NumSpaceTimeStreams: 1 DCM: 0 ChannelCoding: 'LDPC' STAID: 0 NominalPacketPadding: 0 PostFECPaddingSource: 'mt19937ar with seed' PostFECPaddingSeed: 1 Read-only properties: RUNumber: 1
The number of users per RU, and mapping of users to RUs is determined by the allocation index. The UserNumbers
property of an RU object indicates which users (elements of the cfgMU.User
cell array) are transmitted on that RU. Similarly, the RUNumber
property of each User object, indicates which RU (element of the cfgMU.RU
cell array) is used to transmit the user:
每个 RU 的用户数,以及用户到 RU 的映射由分配索引确定。RU 对象的UserNumbers
属性指示在该 RU 上传输的用户(cfgMU.User
单元数组的元素)。类似地,每个用户对象的RUNumber
属性指示用于传输用户的 RU(cfgMU.RU
单元数组的元素):
This allows the properties of an RU associated with a User to be accessed easily:
这使得与用户关联的 RU 的属性可以轻松访问:
ruNum = cfgMU.User{2}.RUNumber; % Get the RU number associated with user 2 disp(cfgMU.RU{ruNum}.SpatialMapping); % Display the spatial mapping
Direct
When an RU serves multiple users, in a MU-MIMO configuration, the UserNumbers
property can index multiple users:
当 RU 为多个用户提供服务时,在 MU-MIMO 配置中,UserNumbers
属性可以索引多个用户:
Once the cfgMU
object is created, transmission parameters can be set as demonstrated below.
一旦创建了cfgMU
对象,传输参数可以如下所示设置。
% Configure RU 1 and user 1 cfgMU.RU{1}.SpatialMapping = 'Direct'; cfgMU.User{1}.APEPLength = 1e3; cfgMU.User{1}.MCS = 2; cfgMU.User{1}.NumSpaceTimeStreams = 4; cfgMU.User{1}.ChannelCoding = 'LDPC'; % Configure RU 2 and user 2 cfgMU.RU{2}.SpatialMapping = 'Fourier'; cfgMU.User{2}.APEPLength = 500; cfgMU.User{2}.MCS = 3; cfgMU.User{2}.NumSpaceTimeStreams = 2; cfgMU.User{2}.ChannelCoding = 'LDPC'; % Configure RU 3 and user 3 cfgMU.RU{3}.SpatialMapping = 'Fourier'; cfgMU.User{3}.APEPLength = 100; cfgMU.User{3}.MCS = 4; cfgMU.User{3}.DCM = true; cfgMU.User{3}.NumSpaceTimeStreams = 1; cfgMU.User{3}.ChannelCoding = 'BCC';
Some transmission parameters are common for all users in the HE MU transmission.
HE MU 传输中所有用户的一些传输参数是共同的。
% Configure common parameters for all users
cfgMU.NumTransmitAntennas = 4;
cfgMU.SIGBMCS = 2;
To generate the HE MU waveform, we first create a random PSDU for each user. A cell array is used to store the PSDU for each user as the PSDU lengths differ. The getPSDULength()
method returns a vector with the required PSDU per user given the configuration. The waveform generator is then used to create a packet.
要生成 HE MU 波形,我们首先为每个用户创建一个随机 PSDU。 使用单元数组来存储每个用户的 PSDU,因为 PSDU 的长度不同。 方法getPSDULength()
返回一个向量,其中包含根据配置所需的每个用户的 PSDU。 然后使用波形生成器创建一个数据包。
psduLength = getPSDULength(cfgMU); psdu = cell(1,allocInfo.NumUsers); for i = 1:allocInfo.NumUsers psdu{i} = randi([0 1],psduLength(i)*8,1,'int8'); % Generate random PSDU end % Create MU packet txMUWaveform = wlanWaveformGenerator(psdu,cfgMU);
To configure an OFDMA transmission with a channel bandwidth greater than 20 MHz, an allocation index must be provided for each 20 MHz subchannel. For example, to configure an 80 MHz OFDMA transmission, four allocation indices are required. In this example four 242-tone RUs are configured. The allocation index 192
specifies one 242-tone RU with a single user in a 20 MHz subchannel, therefore the allocation indices [192 192 192 192]
are used to create four of these RUs, over 80 MHz:
为了配置一个信道带宽大于 20 MHz 的 OFDMA 传输,必须为每个 20 MHz 子信道提供一个分配索引。例如,要配置一个 80 MHz 的 OFDMA 传输,需要四个分配索引。在这个例子中,配置了四个 242-tone RUs。分配索引192
指定一个带有单个用户的 242-tone RU 位于一个 20 MHz 子信道中,因此使用分配索引[192 192 192 192]
来创建这四个 RU,覆盖 80 MHz 的范围:
% Display 192 allocation index properties in the table (the 193rd row) disp('Allocation #192 table entry:') disp(allocationTable(193,:)) % Create 80 MHz MU configuration, with four 242-tone RUs cfgMU80MHz = wlanHEMUConfig([192 192 192 192]);
Allocation #192 table entry: Allocation BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU Note __________ _____________ ________ ______ _________ _______ _____________ ____ 192 "11000000" 1 1 {[1]} {[242]} {[1]} ""
When multiple 20 MHz subchannels are specified, the ChannelBandwidth
property is set to the appropriate value. For this configuration it is set to 'CBW80'
as four 20 MHz subchannels are specified. This is also visible in the allocation plot.
当指定多个 20 MHz 子信道时,ChannelBandwidth
属性设置为适当的值。对于此配置,它设置为'CBW80'
,因为指定了四个 20 MHz 子信道。这也可在分配图中看到。
disp('Channel bandwidth for HE MU allocation:')
disp(cfgMU80MHz.ChannelBandwidth)
showAllocation(cfgMU80MHz,axAlloc)
Channel bandwidth for HE MU allocation: CBW80
HE Multi-User Format - MU-MIMO
HE 多用户格式 - MU-MIMO
An HE MU packet can also transmit an RU to multiple users using MU-MIMO. For a full band MU-MIMO allocation, the allocation indices between 192 and 199 configure a full-band 20 MHz allocation (242-tone RU). The index within this range determines how many users are configured. The allocation details can be viewed in the allocation table. Note the NumUsers
column in the table grows with index but the NumRUs
is always 1. The allocation table can also be viewed in the Appendix.
一个 HE MU 数据包也可以使用 MU-MIMO 将 RU 传输给多个用户。对于全频段 MU-MIMO 分配,分配索引在 192 和 199 之间配置了一个全频段 20 MHz 分配(242-tone RU)。 在这个范围内的索引确定了配置了多少用户。 可以在分配表中查看分配的详细信息。 注意表中的NumUsers
列随着索引增长,但NumRUs
始终为 1。 分配表也可以在附录中查看。
disp('Allocation #192-199 table entries:') disp(allocationTable(193:200,:)) % Indices 192-199 (rows 193 to 200)
Allocation #192-199 table entries: Allocation BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU Note __________ _____________ ________ ______ _________ _______ _____________ ____ 192 "11000000" 1 1 {[1]} {[242]} {[1]} "" 193 "11000001" 2 1 {[1]} {[242]} {[2]} "" 194 "11000010" 3 1 {[1]} {[242]} {[3]} "" 195 "11000011" 4 1 {[1]} {[242]} {[4]} "" 196 "11000100" 5 1 {[1]} {[242]} {[5]} "" 197 "11000101" 6 1 {[1]} {[242]} {[6]} "" 198 "11000110" 7 1 {[1]} {[242]} {[7]} "" 199 "11000111" 8 1 {[1]} {[242]} {[8]} ""
The allocation index 193
transmits a 20 MHz 242-tone RU to two users. In this example, we will create a transmission with a random spatial mapping matrix which maps a single space-time stream for each user, onto two transmit antennas.
分配索引 193
将一个 20 MHz 的 242-tone RU 传输给两个用户。在这个例子中,我们将创建一个使用随机空间映射矩阵的传输,该矩阵为每个用户映射一个空时流到两个发射天线。
% Configure 2 users in a 20 MHz channel cfgMUMIMO = wlanHEMUConfig(193); % Set the transmission properties of each user cfgMUMIMO.User{1}.APEPLength = 100; % Bytes cfgMUMIMO.User{1}.MCS = 2; cfgMUMIMO.User{1}.ChannelCoding = 'LDPC'; cfgMUMIMO.User{1}.NumSpaceTimeStreams = 1; cfgMUMIMO.User{2}.APEPLength = 1000; % Bytes cfgMUMIMO.User{2}.MCS = 6; cfgMUMIMO.User{2}.ChannelCoding = 'LDPC'; cfgMUMIMO.User{2}.NumSpaceTimeStreams = 1; % Get the number of occupied subcarriers in the RU ruIndex = 1; % Get the info for the first (and only) RU ofdmInfo = wlanHEOFDMInfo('HE-Data',cfgMUMIMO,ruIndex); numST = ofdmInfo.NumTones; % Number of occupied subcarriers % Set the number of transmit antennas and generate a random spatial mapping % matrix numTx = 2; allocInfo = ruInfo(cfgMUMIMO); numSTS = allocInfo.NumSpaceTimeStreamsPerRU(ruIndex); cfgMUMIMO.NumTransmitAntennas = numTx; cfgMUMIMO.RU{ruIndex}.SpatialMapping = 'Custom'; cfgMUMIMO.RU{ruIndex}.SpatialMappingMatrix = rand(numST,numSTS,numTx); % Create packet with a repeated bit sequence as the PSDU txMUMIMOWaveform = wlanWaveformGenerator([1 0 1 0],cfgMUMIMO);
A full band MU-MIMO transmission with a channel bandwidth greater than 20 MHz is created by providing a single RU allocation index within the range 200-223 when creating the wlanHEMUConfig
object. For these allocations HE-SIG-B compression is used.
通过在创建wlanHEMUConfig
对象时,在 200-223 范围内提供单个 RU 分配索引,创建具有大于 20MHz 频道带宽的全频段 MU-MIMO 传输。对于这些分配,使用 HE-SIG-B 压缩。
The allocation indices between 200 and 207 configure a full-band MU-MIMO 40 MHz allocation (484-tone RU). The index within this range determines how many users are configured. The allocation details can be viewed in the allocation table. Note the NumUsers
column in the table grows with index but the NumRUs
is always 1.
在 200 至 207 之间的分配指数配置了一个全频段 MU-MIMO 40 MHz 分配(484-tone RU)。该范围内的索引确定了配置了多少用户。分配详细信息可在分配表中查看。请注意表格中的NumUsers
列随索引增长,但NumRUs
始终为 1。
disp('Allocation #200-207 table entries:') disp(allocationTable(201:208,:)) % Indices 200-207 (rows 201 to 208)
Allocation #200-207 table entries: Allocation BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU Note __________ _____________ ________ ______ _________ _______ _____________ ____ 200 "11001000" 1 1 {[1]} {[484]} {[1]} "" 201 "11001001" 2 1 {[1]} {[484]} {[2]} "" 202 "11001010" 3 1 {[1]} {[484]} {[3]} "" 203 "11001011" 4 1 {[1]} {[484]} {[4]} "" 204 "11001100" 5 1 {[1]} {[484]} {[5]} "" 205 "11001101" 6 1 {[1]} {[484]} {[6]} "" 206 "11001110" 7 1 {[1]} {[484]} {[7]} "" 207 "11001111" 8 1 {[1]} {[484]} {[8]} ""
Similarly, the allocation indices between 208 and 215 configure a full-band MU-MIMO 80 MHz allocation (996-tone RU), and the allocation indices between 216 and 223 configure a full-band MU-MIMO 160 MHz allocation (2x996-tone RU).
类似地,208 和 215 之间的分配索引配置了全频段 MU-MIMO 80 兆赫分配(996-tone RU),而 216 和 223 之间的分配索引配置了全频段 MU-MIMO 160 兆赫分配(2x996-tone RU)。
As an example, the allocation index 203
specifies a 484-tone RU with 4 users:
作为一个例子,分配指数203
指定了一个具有 4 个用户的 484 音调 RU:
cfg484MU = wlanHEMUConfig(203); showAllocation(cfg484MU,axAlloc)
HE Multi-User Format - OFDMA with RU Sizes Greater Than 242 Subcarriers
HE 多用户格式 - RU 大小大于 242 个子载波的 OFDMA
For an HE MU transmission with a channel bandwidth greater than 20 MHz, two HE-SIG-B content channels are used to signal user configurations. These content channels are duplicated over each 40 MHz subchannel for larger channel bandwidths, as described in Section 27.3.11.8.5 of [ 1 ]. When an RU size greater than 242 is specified as part of an OFDMA system, the users assigned to the RU can be signaled on either of the two HE-SIG-B content channels. The allocation index provided when creating an wlanHEMUConfig
object controls which content channel each user is signaled on. The allocation table in the Appendix shows the relevant allocation indices.
对于带宽大于 20 MHz 的 HE MU 传输,使用两个 HE-SIG-B 内容信道来信令用户配置。针对更大的信道带宽,每个 40 MHz 子信道上复制这些内容信道,具体描述请参见[ 1 ]的第 27.3.11.8.5 节。在 OFDMA 系统中指定 RU 大小大于 242 时,分配给 RU 的用户可以在两个 HE-SIG-B 内容信道中的任一信道上进行信令。创建对象时提供的分配索引可控制每个用户所在的内容信道。附录中的分配表显示相关分配索引。
As an example, consider the following 80 MHz configuration which serves 7 users:
作为一个例子,考虑一下为 7 个用户提供服务的以下 80 MHz 配置:
One 484-tone RU (RU #1) with four users (users #1-4)
一个 484 吨的 RU(RU#1),有四个用户(用户#1-4)One 242-tone RU (RU #2) with one user (user #5)
一个带有一个用户(用户#5)的 242 吨 RU(RU#2)Two 106-tone RUs (RU #3 and #4), each with one user (users #6 and #7)
两个 106 吨的 RU(RU #3 和#4),每个有一个用户(用户#6 和#7)
To configure an 80 MHz OFDMA transmission, four allocation indices are required, one for each 20 MHz subchannel. To configure the above scenario the allocation indices below are used:
配置 80 MHz OFDMA 传输需要四个分配索引,每个 20 MHz 子信道一个。配置上述场景时,使用以下分配索引:
[X Y 192 96]
X
andY
configure the 484-tone RU, with users #1-4. The possible values ofX
andY
are discussed below.X
和Y
配置 484 调 RU,与用户 #1-4。以下讨论了X
和Y
的可能值。192
configures a 242-tone RU with one user, user #5.192
配置了一个带有一个用户,用户#5 的 242 音 RU。96
signals two 106-tone RUs, each with one user, users #6 and #7.96
信号两个 106-tone RU,每个都有一个用户,用户#6 和#7。
The selection of X
and Y
configures the appropriate number of users in the 242-tone RU, and determines which HE-SIG-B content channel is used to signal the users. A 484-tone RU spans two 20 MHz subchannels, therefore two allocation indices are required. All seven users from the four RUs will be signaled on the HE-SIG-B content channels, but for now we will only consider the signaling of users on the 484-tone RU. For the 484-tone RU, the four users can be signaled on the two HE-SIG-B content channels in different combinations as shown in Table 1.
选择X
和Y
配置 242-tone RU 中适当数量的用户,并确定使用哪个 HE-SIG-B 内容信道来向用户发出信号。484-tone RU 跨越两个 20 MHz 子信道,因此需要两个分配索引。来自四个 RU 的七个用户将在 HE-SIG-B 内容信道上进行信令,但目前我们只考虑在 484-tone RU 上对用户进行信令。对于 484-tone RU,可以在两个 HE-SIG-B 内容信道上以不同组合对四个用户进行信令,如表 1 所示。
An allocation index within the range 200-207 specifies 1-8 users on a 484-tone RU. To signal no users on a content channel, the allocation index 114
or 115
can be used, for a 484-tone or 996-tone RU. Therefore, the combinations in Table 1 can be defined using two allocation indices as shown in Table 2. The two allocation indices in each row of Table 2 are X
and Y
.
在范围为 200-207 的分配索引中,指定在一个 484-tone RU 上的 1-8 个用户。为了信号化内容信道上没有用户,可以使用分配索引114
或115
,对于 484-tone 或 996-tone RU。因此,表 1 中的组合可以使用表 2 中显示的两个分配索引来定义。表 2 中每行的两个分配索引是X
和Y
。
Therefore, to configure 'Combination E' the following 80 MHz allocation indices are used:
因此,为了配置'组合 E',将使用以下 80 MHz 分配指数:
[114 203 192 96]
114
and203
configure the 484-tone RU, with users #1-4.114
和203
配置 484 音调 RU,用户为#1-4。192
configures a 242-tone RU with one user, user #5.192
配置一个具有一个用户的 242-tone RU,用户#5。96
signals two 106-tone RUs, each with one user, users #6 and #7.96
信号两个 106 音元 RU,每个 RU 有一个用户,用户#6 和#7。
cfg484OFDMA = wlanHEMUConfig([114 203 192 96]); showAllocation(cfg484OFDMA,axAlloc);
To view the HE-SIG-B allocation signaling, use the hePlotHESIGBAllocationMapping
function. This shows the user fields signaled on each HE-SIG-B content channel, and which RU and user in the wlanHEMUConfig
object, each user field signals. In this case we can see the users on RU #1, 3 and 4 are all signaled on content channel 2, and the user of RU #2 is signaled on content channel 1. The second content channel signals six users, while the first content channel only signals one user. Therefore, the first content channel will be padded up to the length of the second for transmission. In the diagram, the RU allocation information is provided in the form index-size, e.g. RU8-106 is the 8th 106-tone RU.
要查看 HE-SIG-B 分配信令,请使用hePlotHESIGBAllocationMapping
函数。 这显示了在每个 HE-SIG-B 内容信道上传输的用户字段,以及在wlanHEMUConfig
对象中,每个用户字段信令的 RU 和用户。 在这种情况下,我们可以看到 RU#1、3 和 4 上的用户都在内容信道 2 上被传输,而 RU#2 的用户在内容信道 1 上被传输。 第二个内容信道传输六个用户,而第一个内容信道只传输一个用户。因此,为了传输,第一个内容信道将被填充到第二个内容信道的长度。 在图表中,RU 分配信息以索引-大小的形式提供,例如 RU8-106 是第 8 个 106-tone RU。
figure;
hePlotHESIGBAllocationMapping(cfg484OFDMA);
axSIGB = gca; % Get axis handle for subsequent plotting
To balance the user field signaling in HE-SIG-B, we can use 'Combination B' in Table 2 when creating the allocation index for the 484-tone RU. This results in two users being signaled on each content channel of HE-SIG-B, creating a better balance of user fields, and potentially fewer HE-SIG-B symbols in the transmission.
为了平衡 HE-SIG-B 中的用户字段信令,当为 484 音调 RU 创建分配索引时,我们可以在表格 2 中使用“组合 B”。这将导致在每个 HE-SIG-B 内容通道上信令两个用户,从而创建更好的用户字段平衡,并在传输中可能减少 HE-SIG-B 符号。
cfg484OFDMABalanced = wlanHEMUConfig([201 201 96 192]); hePlotHESIGBAllocationMapping(cfg484OFDMABalanced,axSIGB);
HE Multi-User Format - Central 26-Tone RU
HE 多用户格式 - 中心 26 音 RU
In an 80 MHz transmission, when a full band RU is not used, the central 26-tone RU can be optionally active. The central 26-tone RU is enabled using a name-value pair when creating the wlanHEMUConfig
object.
在 80 MHz 传输中,当未使用完整频段 RU 时,可以选择激活中央的 26-tone RU。在创建wlanHEMUConfig
对象时,可以使用名称-值对来启用中央的 26-tone RU。
% Create a configuration with no central 26-tone RU cfgNoCentral = wlanHEMUConfig([192 192 192 192],'LowerCenter26ToneRU',false); showAllocation(cfgNoCentral,axAlloc); % Create a configuration with a central 26-tone RU cfgCentral = wlanHEMUConfig([192 192 192 192],'LowerCenter26ToneRU',true); showAllocation(cfgCentral,axAlloc);
Similarly, for a 160 MHz transmission, the central 26-tone RU in each 80 MHz segment can be optionally used. Each central 26-tone RU can be enabled using name-value pairs when creating the wlanHEMUConfig
object. In this example only the upper central 26-tone RU is created. Four 242-tone RUs, each with one user are specified with the allocation index [200 114 114 200 200 114 114 200]
.
类似地,对于 160 MHz 传输,每个 80 MHz 段的中心 26-tone RU 可以选择使用。在创建与-name-value 对时,可以使用名称-值对来启用每个中心 26-tone RU,如wlanHEMUConfig
对象。在本示例中仅创建了上部中心 26-tone RU。分配索引 [200 114 114 200 200 114 114 200]
指定了四个 242-tone RU,每个 RU 均配有一个用户。
cfgCentral160MHz = wlanHEMUConfig([200 114 114 200 200 114 114 200],'UpperCenter26ToneRU',true);
disp(cfgCentral160MHz)
wlanHEMUConfig with properties: RU: {1x5 cell} User: {1x5 cell} PrimarySubchannel: 1 NumTransmitAntennas: 1 STBC: 0 GuardInterval: 3.2000 HELTFType: 4 SIGBMCS: 0 SIGBDCM: 0 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 Read-only properties: ChannelBandwidth: 'CBW160' AllocationIndex: [200 114 114 200 200 114 114 200] LowerCenter26ToneRU: 0 UpperCenter26ToneRU: 1
HE Multi-User Format - Preamble Puncturing
HE 多用户格式 - 前导穿孔
In an 80 MHz or 160 MHz transmission, 20 MHz subchannels can be punctured to allow a legacy system to operate in the punctured channel. This method is also described as channel bonding. To null a 20 MHz subchannel the 20 MHz subchannel allocation index 113
can be used. The punctured 20 MHz subchannel can be viewed with the showAllocation
method.
在 80 MHz 或 160 MHz 传输中,可以穿透 20 MHz 子信道以允许传统系统在穿透的信道中运行。这种方法也被描述为信道绑定。要将 20 MHz 子信道置空,可以使用 20 MHz 子信道分配索引 113
。可以使用showAllocation
方法查看穿透的 20 MHz 子信道。
% Null second lowest 20 MHz subchannel in a 160 MHz configuration cfgNull = wlanHEMUConfig([192 113 114 200 208 115 115 115]); % Plot the allocation showAllocation(cfgNull,axAlloc);
The punctured 20 MHz can also be viewed with the generated waveform and the spectrum analyzer.
20 MHz 的穿孔也可以通过生成的波形和频谱分析仪进行查看。
% Set the transmission properties of each user in all RUs cfgNull.User{1}.APEPLength = 100; cfgNull.User{1}.MCS = 2; cfgNull.User{1}.ChannelCoding = 'LDPC'; cfgNull.User{1}.NumSpaceTimeStreams = 1; cfgNull.User{2}.APEPLength = 1000; cfgNull.User{2}.MCS = 6; cfgNull.User{2}.ChannelCoding = 'LDPC'; cfgNull.User{2}.NumSpaceTimeStreams = 1; cfgNull.User{3}.APEPLength = 100; cfgNull.User{3}.MCS = 1; cfgNull.User{3}.ChannelCoding = 'LDPC'; cfgNull.User{3}.NumSpaceTimeStreams = 1; % Create packet txNullWaveform = wlanWaveformGenerator([1 0 1 0],cfgNull); % Visualize signal spectrum fs = wlanSampleRate(cfgNull); ofdmInfo = wlanHEOFDMInfo('HE-Data',cfgNull,1); fftsize = ofdmInfo.FFTLength; spectrumScope = spectrumAnalyzer(SampleRate=fs,... AveragingMethod='exponential',ForgettingFactor=0.99,... RBWSource='property',RBW=fs/fftsize,... Title='160 MHz HE MU Transmission with Punctured 20 MHz Channel'); spectrumScope(txNullWaveform);
Trigger-Based MU Format 基于触发器的 MU 格式
The HE trigger-based (TB) format allows for OFDMA or MU-MIMO transmission in the uplink. Each station (STA) transmits a TB packet simultaneously, when triggered by the access point (AP). A TB transmission is controlled entirely by the AP. All the parameters required for the transmission are provided in a trigger frame to all STAs participating in the TB transmission. In this example a TB transmission in response to a trigger frame for three users in an OFDMA/MU-MIMO system is configured; three STAs will transmit simultaneously to an AP.
HE 触发式(TB)格式允许在上行进行 OFDMA 或 MU-MIMO 传输。每个站点(STA)在由接入点(AP)触发时同时传输一个 TB 数据包。TB 传输完全由 AP 控制。传输所需的所有参数都在一个触发帧中提供给参与 TB 传输的所有 STA。在这个例子中,响应 OFDMA/MU-MIMO 系统中三个用户的触发帧配置了一个 TB 传输;三个 STA 将同时向一个 AP 传输。
The 20 MHz allocation 97
is used which corresponds to two RUs, one of which serves two users in MU-MIMO.
20 MHz 分配97
用于相当于两个 RUs,其中一个为 MU-MIMO 中的两个用户提供服务。
disp('Allocation #97 table entry:') disp(allocationTable(98,:)) % Index 97 (row 98)
Allocation #97 table entry: Allocation BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU Note __________ _____________ ________ ______ _________ ___________ _____________ ____ 97 "01100001" 3 2 {[1 2]} {[106 106]} {[1 2]} ""
The allocation information is obtained by creating a MU configuration with wlanHEMUConfig
.
获得分配信息是通过创建具有wlanHEMUConfig
的 MU 配置来获得的。
% Generate an OFDMA allocation
cfgMU = wlanHEMUConfig(97);
allocationInfo = ruInfo(cfgMU);
In a TB transmission several parameters are the same for all users in the transmission. Some of these are specified below:
在 TB 传输中,几个参数对所有用户在传输中都是相同的。以下是其中一些指定的参数:
% These parameters are the same for all users in the OFDMA system trgMethod = 'TriggerFrame'; % Method used to trigger an HE TB PPDU channelBandwidth = cfgMU.ChannelBandwidth; % Bandwidth of OFDMA system lsigLength = 142; % L-SIG length preFECPaddingFactor = 2; % Pre-FEC padding factor ldpcExtraSymbol = false; % LDPC extra symbol numHELTFSymbols = 2; % Number of HE-LTF symbols
A TB transmission for a single user within the system is configured with a wlanHETBConfig
object. In this example, a cell array of three objects is created to describe the transmission of the three users.
系统内单个用户的 TB 传输使用wlanHETBConfig
对象配置。在本示例中,创建了一个包含三个对象的单元数组,用于描述三个用户的传输。
% Create a trigger configuration for each user
numUsers = allocationInfo.NumUsers;
cfgTriggerUser = repmat({wlanHETBConfig},1,numUsers);
The non-default system-wide properties are set for each user.
非默认的系统范围属性是为每个用户设置的。
for userIdx = 1:numUsers cfgTriggerUser{userIdx}.TriggerMethod = trgMethod; cfgTriggerUser{userIdx}.ChannelBandwidth = channelBandwidth; cfgTriggerUser{userIdx}.LSIGLength = lsigLength; cfgTriggerUser{userIdx}.PreFECPaddingFactor = preFECPaddingFactor; cfgTriggerUser{userIdx}.LDPCExtraSymbol = ldpcExtraSymbol; cfgTriggerUser{userIdx}.NumHELTFSymbols = numHELTFSymbols; end
Next the per-user properties are set. When multiple users are transmitting in the same RU, in a MU-MIMO configuration, each user must transmit on different space-time stream indices. The properties StartingSpaceTimeStream
and NumSpaceTimeStreamSteams
must be set for each user to make sure different space-time streams are used. In this example user 1 and 2 are in a MU-MIMO configuration, therefore StartingSpaceTimeStream
for user two is set to 2
, as user one is configured to transmit 1 space-time stream with StartingSpaceTimeStream = 1
.
接下来设置每个用户的属性。当多个用户在相同的 RU 上传输时,在 MU-MIMO 配置中,每个用户必须在不同的空时流索引上进行传输。对于每个用户,必须设置属性StartingSpaceTimeStream
和NumSpaceTimeStreamSteams
,以确保使用不同的空时流。在这个例子中,用户 1 和 2 处于 MU-MIMO 配置中,因此用户 2 的StartingSpaceTimeStream
被设为2
,因为用户 1 被配置为使用 1 个空时流,StartingSpaceTimeStream = 1
。
% These parameters are for the first user - RU#1 MU-MIMO user 1 cfgTriggerUser{1}.RUSize = allocationInfo.RUSizes(1); cfgTriggerUser{1}.RUIndex = allocationInfo.RUIndices(1); cfgTriggerUser{1}.MCS = 4; % Modulation and coding scheme cfgTriggerUser{1}.NumSpaceTimeStreams = 1; % Number of space-time streams cfgTriggerUser{1}.NumTransmitAntennas = 1; % Number of transmit antennas cfgTriggerUser{1}.StartingSpaceTimeStream = 1; % The starting index of the space-time streams cfgTriggerUser{1}.ChannelCoding = 'LDPC'; % Channel coding % These parameters are for the second user - RU#1 MU-MIMO user 2 cfgTriggerUser{2}.RUSize = allocationInfo.RUSizes(1); cfgTriggerUser{2}.RUIndex = allocationInfo.RUIndices(1); cfgTriggerUser{2}.MCS = 3; % Modulation and coding scheme cfgTriggerUser{2}.NumSpaceTimeStreams = 1; % Number of space-time streams cfgTriggerUser{2}.StartingSpaceTimeStream = 2; % The starting index of the space-time streams cfgTriggerUser{2}.NumTransmitAntennas = 1; % Number of transmit antennas cfgTriggerUser{2}.ChannelCoding = 'LDPC'; % Channel coding % These parameters are for the third user - RU#2 cfgTriggerUser{3}.RUSize = allocationInfo.RUSizes(2); cfgTriggerUser{3}.RUIndex = allocationInfo.RUIndices(2); cfgTriggerUser{3}.MCS = 4; % Modulation and coding scheme cfgTriggerUser{3}.NumSpaceTimeStreams = 2; % Number of space-time streams cfgTriggerUser{3}.StartingSpaceTimeStream = 1; % The starting index of the space-time streams cfgTriggerUser{3}.NumTransmitAntennas = 2; % Number of transmit antennas cfgTriggerUser{3}.ChannelCoding = 'BCC'; % Channel coding
A packet containing random data is now transmitted by each user with wlanWaveformGenerator
. The waveform transmitted by each user is stored for analysis.
每个用户现在使用wlanWaveformGenerator
发送包含随机数据的数据包。每个用户发送的波形将保存供分析。
trigInd = wlanFieldIndices(cfgTriggerUser{1}); % Get the indices of each field txTrigStore = zeros(trigInd.HEData(2),numUsers); for userIdx = 1:numUsers % Generate waveform for a user cfgTrigger = cfgTriggerUser{userIdx}; txPSDU = randi([0 1],getPSDULength(cfgTrigger)*8,1); txTrig = wlanWaveformGenerator(txPSDU,cfgTrigger); % Store the transmitted STA waveform for analysis txTrigStore(:,userIdx) = sum(txTrig,2); end
The spectrum of the transmitted waveform from each STA shows the different portions of the spectrum used, and the overlap in the MU-MIMO RU.
每个 STA 传输波形的频谱显示了所使用频谱的不同部分,并且在 MU-MIMO RU 中的重叠部分。
fs = wlanSampleRate(cfgTriggerUser{1}); ofdmInfo = wlanHEOFDMInfo('HE-Data',cfgTriggerUser{1}); spectrumScope = spectrumAnalyzer(SampleRate=fs,... Method='welch',... AveragingMethod='exponential',ForgettingFactor=0,... ChannelNames={'RU#1 User 1','RU#1 User 2','RU#2'},... ShowLegend=true,Title='Transmitted HE TB Waveform per User'); spectrumScope(txTrigStore);
Appendix 附录
The RU allocation table for allocations <= 20 MHz is shown below, with annotated descriptions.
RU 分配表中分配<=20MHz 的表格如下所示,附有注释说明。
The RU allocation and HE-SIG-B user signaling for allocations > 20 MHz is shown in the table below, with annotated descriptions.
RU 分配和 HE-SIG-B 用户信令用于超过 20 MHz 的分配如下表所示,并附有注释说明。
Selected Bibliography 选定的参考书目
IEEE Std 802.11ax™-2021. IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 1: Enhancements for High-Efficiency WLAN.
IEEE Std 802.11ax™-2021. IEEE 标准计算机学科-系统之间的电信和信息交换-本地和城域网-特定要求-第 11 部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范-修订 1:高效率 WLAN 的增强。