主要内容

802.11ax波形生成

这个例子展示了如何参数化和生成不同的IEEE®802.11ax™高效(HE)格式数据包。

简介

IEEE标准P802.11ax™-2021 [1指定4种高效HE报文格式:

  1. 单用户

  2. 对于单用户

  3. 多用户

  4. Trigger-based

这个例子展示了如何为这些不同的格式生成数据包,并演示了标准草案的一些关键特性[1].

HE单用户格式

SU (HE single-user packet)报文是对单个用户的全频带传输。HE SU格式的传输参数使用wlanHESUConfig对象。的wlanHESUConfig对象可配置为在扩展范围模式下操作。要启用或禁用此模式,请设置ExtendedRange财产真正的.在本例中,我们为HE SU传输创建一个配置并配置传输属性。

cfgSU = wlanHESUConfig;cfgSU。ExtendedRange = false;不要使用扩展范围格式cfgSU。ChannelBandwidth =“CBW20”通道带宽%cfgSU。一个PEPLength = 1000;负载长度(以字节为单位)cfgSU。MCS = 0;调制和编码方案cfgSU。ChannelCoding =“方法”%信道编码cfgSU。NumSpaceTimeStreams = 1;%时空流个数cfgSU。numtransmitantenna = 1;%发射天线个数

单用户数据包可以通过波形发生器产生,wlanWaveformGenerator.的getPSDULength ()方法返回给定传输配置所需的PSDU长度。这个长度用于创建一个随机的PSDU进行传输。

psdu = randi([0 1], getpssdulength (cfgSU)*8,1,“int8”);%随机PSDUtxsu波形= wlanWaveformGenerator(psdu,cfgSU);%创建数据包

HE扩展范围单用户格式

扩展范围单用户数据包具有与标准单用户格式相同的字段,但一些字段的功率被增强,一些字段被重复以提高低信噪比下的性能。扩展范围报文可以使用wlanHESUConfig对象与ChannelBandwidth设置为“CBW20”而且ExtendedRange设置为真正的.一个扩展范围的包可以选择只在20 MHz信道内的上106音资源单元(RU)中传输,或者在整个带宽上传输。可以使用Upper106ToneRU属性:

cfgExtSU = cfgSU;cfgExtSU。ExtendedRange = true;启用扩展范围格式cfgExtSU。Upper106ToneRU = true;只使用上106调俄服生成一个数据包psdu = randi([0 1], getpssdulength (cfgExtSU)*8,1,“int8”);%随机PSDUtxextsu波形= wlanWaveformGenerator(psdu,cfgExtSU);%创建数据包

查看生成信号的频谱和频谱图。在频谱图中,您可以看到包头使用了可用带宽,然而,数据部分只占用了通道的上半部分。

fs = wlanSampleRate(cfgExtSU);获取基带采样率ofdmInfo = wlanHEOFDMInfo(“数据”, cfgExtSU);fftsize = ofdinfo . fftlength;使用数据字段fft大小RBW = fs/fftsize;%分辨率带宽频谱分析仪= dsp。简介(“SampleRate”fs,...“方法”滤波器组的“RBWSource”“属性”“RBW”rbw,...“AveragingMethod”“指数”“ForgettingFactor”, 0.25,...“ReducePlotRate”假的,“YLimits”(-50年,20),...“标题”HE增程SU带主动上106音RU);简介。ViewType =“光谱和谱图”;简介。TimeSpanSource =“属性”;简介。TimeSpan = length(txextsu波形)/fs;简介(txExtSUWaveform)

如果您比较L-STF和L-LTF字段的功率,您可以看到扩展范围的传输提高了3 dB。

图;ind = wlanFieldIndices(cfgExtSU);t = (0:(double(ind.LLTF(2))-1))/fs*1e6;情节(t, 20 * log10 (movmean (abs (txSUWaveform (1: ind.LLTF (2))), 20)),“- b”)举行;情节(t, 20 * log10 (movmean (abs (txExtSUWaveform (1: ind.LLTF (2))), 20)),“- r”网格);标题(L-STF和L-LTF的幂(1单位移动平均));包含(的时间(美国));ylabel (的功率(瓦分贝));传奇(“他苏”“HE增程SU”“位置”“西南”);

HE多用户格式- OFDMA

HE多用户(HE MU)格式可以配置为OFDMA传输、MU- mimo传输或两者的组合。这种灵活性允许一个HE MU包在整个频带上向单个用户传输,在频带的不同部分(OFDMA)上向多个用户传输,或在频带的同一部分(MU- mimo)上向多个用户传输。

对于OFDMA传输,信道带宽被划分为资源单位(ru)。RU是分配给一个或多个用户的一组子载波。RU由大小(子载波的数量)和索引定义。RU索引指定了RU在通道中的位置。例如,在80mhz传输中,有4个可能的242音ru,每个20mhz子信道一个。ru# 242-1(尺寸242,索引1)是在80mhz内绝对频率最低的RU, RU# 242-4(尺寸242,索引4)是绝对频率最高的RU。标准草案在[第27.3.2.2节]中定义了ru的可能大小和位置。1].

传输中ru的分配由分配索引定义。分配指标定义见[的表27-26]。1].对于每个20 MHz的子信道,一个8位索引描述了RU的数量和大小,以及每个RU上传输的用户数量。分配指数还决定了在HE-SIG-B中使用哪个内容通道向用户发送信号。表27-26中的分配索引和相应的RU赋值在函数返回的表中提供heRUAllocationTable.表中的前10个分配如下所示。对于每个分配指标,将显示8位分配指标、用户数、RU数、RU索引、RU大小和每RU的用户数。还提供了关于保留的或用于特殊目的的拨款的说明。配置表也可以在附录

allocationTable = heRUAllocationTable;disp ('分配表中的前10个条目:':) disp (allocationTable (1:10));
分配表的前10项:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ _____________________ ______________________________ _____________________ ____ 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 23 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 1 1 1]} ""

一个wlanHEMUConfig对象用于配置HE MU报文的传输。在创建HE MU配置对象时,必须提供每个20mhz子信道的分配索引,wlanHEMUConfig.取值范围为0 ~ 223的整数,对应表27-26中的8位数字。1],必须为每个20 MHz子信道提供。

分配索引可以以十进制或8位二进制序列的形式提供。在这个示例中,创建了一个20 MHz HE MU配置,并使用8位分配索引“10000000”。这相当于十进制分配索引128。这个配置指定了3个ru,每个ru有一个用户。

allocationIndex =“10000000”% 3 RU,每RU 1个用户cfgMU = wlanHEMUConfig(allocationIndex);

showAllocation方法将显示指定配置的已占用ru和子载波。彩色块表示包的pre-HE和HE部分中被占用的子载波。白色表示子载波未被占用。pre-HE部分说明了HE-STF之前字段中被占用的子载波。HE部分说明了HE- stf、HE- ltf和HE- data字段中占用的子载波,因此显示了RU分配。点击一个俄服将显示有关俄服的信息。的第i个RU元素对应的RU号cfgMU。俄文财产。大小和索引是RU的细节。RU索引是在信道带宽内对应的RU大小的第i个可能的RU,例如索引2是在20mhz信道带宽内第2个可能的106音RU。类的第i个user元素对应的是用户号cfgMU。用户属性,以及HE-SIG-B中的user字段。注意中间RU (RU #2)在直流子载波上被分割。

showAllocation (cfgMU);axAlloc = gca;获取后续绘图的轴句柄

ruInfo方法提供配置中RUs的详细信息。在本例中,我们可以看到三个用户和三个ru。

allocInfo = ruInfo(cfgMU);disp (的配置信息:) disp (allocInfo)
分配信息:NumUsers: 3 NumRUs: 3 RUIndices: [1 5 2] rusize: [106 26 106] NumUsersPerRU: [1 1 1 1] NumSpaceTimeStreamsPerRU: [1 1 1 1] PowerBoostFactorPerRU: [1 1 1 1] RUNumbers: [1 2 3]

的性质cfgMU描述传输配置。的cfgMU。俄文而且cfgMU。用户的属性cfgMU是单元格数组。单元格数组的每个元素都包含一个配置RU或User的对象。当cfgMU对象创建时,的元素cfgMU。俄文而且cfgMU。用户配置为创建所需数量的ru和用户。的每个元素cfgMU。俄文是一个wlanHEMURU描述RU配置的对象。类似地,的每个元素cfgMU。用户是一个wlanHEMUUser描述用户配置的对象。这个对象层次结构如下所示:

因此,在本例中,分配索引128指定了三个rucfgMU。俄文是具有三个元素的单元格数组。每个RU的索引和大小是根据用于创建的分配索引来配置的cfgMU.创建对象之后,可以通过设置适当的RU对象的属性来配置每个RU以创建所需的传输配置。例如,空间映射和功率提升因子可以配置每个RU。的大小而且指数每个RU的属性在对象创建时是固定的,因此是只读属性。类似地,UserNumbers属性是只读的,表示哪个用户在RU上传输。对于这个配置,第一个RU的大小是106,索引1。

disp (第一个俄服配置:) disp (cfgMU.RU {1})
第一个RU配置:wlanHEMURU与属性:PowerBoostFactor: 1 SpatialMapping: 'Direct'只读属性:大小:106索引:1 UserNumbers: 1

在本例中,分配索引指定传输中的三个用户,因此,cfgMU。用户包含三个元素。用户的传输属性可以通过修改单个用户对象来配置,如MCS、APEP长度、信道编码方案等。只读RUNumber属性指示使用哪个RU传输此用户。

disp (第一个用户配置:) disp (cfgMU.User {1})
第一个用户配置:wlanHEMUUser属性:APEPLength: 100 MCS: 0 NumSpaceTimeStreams: 1 DCM: 0 ChannelCoding: 'LDPC' STAID: 0 NominalPacketPadding: 0 PostFECPaddingSource: 'mt19937ar with seed' PostFECPaddingSeed: 1只读属性:RUNumber: 1

每个RU的用户数量以及用户到RU的映射是由分配索引决定的。的UserNumbers属性表示RU对象的用户(元素)cfgMU。用户单元阵列)在RU上传输。类似地,RUNumber属性,表示RU(元素的cfgMU。俄文Cell数组)用于向用户传输:

这使得与用户关联的RU的属性很容易被访问:

ruNum = cfgMU.User{2}.RUNumber;获取与用户2关联的RU号disp (cfgMU.RU {ruNum} .SpatialMapping);显示空间映射
直接

当一个RU在MU-MIMO配置中为多个用户提供服务时,将使用UserNumbers属性可以索引多个用户:

一旦cfgMU对象创建时,传输参数可以如下所示设置。

配置RU 1和用户1cfgMU.RU{1}。SpatialMapping =“直接”;cfgMU.User{1}。一个PEPLength = 1e3; cfgMU.User{1}.MCS = 2; cfgMU.User{1}.NumSpaceTimeStreams = 4; cfgMU.User{1}.ChannelCoding =“方法”配置RU 2和用户2cfgMU.RU{2}。SpatialMapping =“傅里叶”;cfgMU.User{2}。一个PEPLength = 500; cfgMU.User{2}.MCS = 3; cfgMU.User{2}.NumSpaceTimeStreams = 2; cfgMU.User{2}.ChannelCoding =“方法”配置RU 3和用户3cfgMU.RU{3}。SpatialMapping =“傅里叶”;cfgMU.User{3}。一个PEPLength = 100; cfgMU.User{3}.MCS = 4; cfgMU.User{3}.DCM = true; cfgMU.User{3}.NumSpaceTimeStreams = 1; cfgMU.User{3}.ChannelCoding =“* *”

在HE MU传输中,有些传输参数对所有用户都是通用的。

为所有用户配置公共参数cfgMU。numtransmitantenna = 4;cfgMU。Sigbmcs = 2;

为了生成HE MU波形,我们首先为每个用户创建一个随机PSDU。当PSDU长度不同时,使用单元格数组存储每个用户的PSDU。的getPSDULength ()方法返回一个向量,其中包含给定配置的每个用户所需的PSDU。然后使用波形发生器来创建一个包。

psduLength = getPSDULength(cfgMU);psdu = cell(1,allocInfo.NumUsers);i = 1:allocInfo。NumUserspsdu{i} = randi([0 1],psduLength(i)*8,1,“int8”);%生成随机PSDU结束创建MU报文txmu波形= wlanWaveformGenerator(psdu,cfgMU);

要配置信道带宽大于20mhz的OFDMA传输,必须为每个20mhz子信道提供分配索引。例如,要配置80mhz的OFDMA传输,需要四个分配指标。本例中配置了4个242 tone的ru。分配指标192指定一个242音的RU,在一个20 MHz的子信道中有一个用户,因此分配指数[192 192 192 192 192]用于创建4个这样的ru,超过80mhz:

在表中显示192个分配索引属性(第193行)disp ('分配#192表项:') disp (allocationTable(193年,:))创建80mhz MU配置,4个242音rucfgMU80MHz = wlanHEMUConfig([192 192 192 192 192]);
分配# 192表条目:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ _________ _______ _____________ ____ 192年“11000000”1 {[1]}{[242]}{[1]}"

当指定多个20mhz子信道时,将使用ChannelBandwidth属性设置为适当的值。对于这个配置,它被设置为“CBW80”指定4个20 MHz子信道。这在分配图中也可以看到。

disp (' HE MU分配的信道带宽:'showAllocation(cfgMU80MHz,axAlloc)
HE MU分配的信道带宽:CBW80

HE多用户格式MU-MIMO

一个HE MU包也可以通过MU- mimo将一个RU发送给多个用户。对于全频带MU-MIMO分配,分配指数在192和199之间配置全频带20mhz分配(242-tone RU)。这个范围内的索引决定了配置了多少用户。分配的详细信息可以在分配表中查看。注意NumUsers表中的列随索引而增长,但是NumRUs总是1。配置表也可以在附录

disp ('分配#192-199表项:') disp (allocationTable (193:200:))%指数192-199(行193 - 200)
分配#192-199表项:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ _________ _______ _____________ ____ 192年“11000000”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]}{[242]}{[7]}”“199“11000111”8 1 {[1]}{[242]}{[8]}"

分配指标193发送一个20 MHz 242音RU到两个用户。在本例中,我们将创建一个带有随机空间映射矩阵的传输,该矩阵将每个用户的单个时空流映射到两个传输天线上。

在20mhz信道中配置2个用户cfgMUMIMO = wlanHEMUConfig(193);设置每个用户的传输属性cfgMUMIMO.User{1}。APEPLength = 100;%字节cfgMUMIMO.User{1}。MCS = 2;cfgMUMIMO.User{1}。ChannelCoding =“方法”;cfgMUMIMO.User{1}。NumSpaceTimeStreams = 1;cfgMUMIMO.User{2}。APEPLength = 1000;%字节cfgMUMIMO.User{2}。MCS = 6;cfgMUMIMO.User{2}。ChannelCoding =“方法”;cfgMUMIMO.User{2}。NumSpaceTimeStreams = 1;获得俄服中被占用的子载波数ruIndex = 1;获得第一个(也是唯一一个)俄服的信息ofdmInfo = wlanHEOFDMInfo(“数据”、cfgMUMIMO ruIndex);numST = ofdinfo . numtones;已使用子载波数%%设置发射天线个数,生成随机空间映射%的矩阵numTx = 2;allocInfo = ruInfo(cfgMUMIMO);numSTS = allocInfo.NumSpaceTimeStreamsPerRU(ruIndex);cfgMUMIMO。numtransmitantenna = numTx;cfgMUMIMO.RU {ruIndex}。SpatialMapping =“自定义”;cfgMUMIMO.RU {ruIndex}。SpatialMappingMatrix = rand(numST,numSTS,numTx);创建一个重复比特序列的数据包作为PSDUtxmumimo波形= wlanWaveformGenerator([1 0 1 0],cfgMUMIMO);

创建时,通过在200-223范围内提供单个RU分配索引来创建信道带宽大于20 MHz的全频带MU-MIMO传输wlanHEMUConfig对象。对于这些分配,使用HE-SIG-B压缩。

200到207之间的分配指标配置了一个全频带MU-MIMO 40 MHz分配(484 tone RU)。这个范围内的索引决定了配置了多少用户。分配的详细信息可以在分配表中查看。注意NumUsers表中的列随索引而增长,但是NumRUs总是1。

disp ('分配#200-207表项:') disp (allocationTable (201:208:))%指数200-207(第201行至208行)
分配#200-207表项:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ _________ _______ _____________ ____ 200年“11001000”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]}{[484]}{[7]}”“207“11001111”8 1 {[1]}{[484]}{[8]}"

类似地,208和215之间的分配指标配置全频带MU-MIMO 80 MHz分配(996-tone RU), 216和223之间的分配指标配置全频带MU-MIMO 160 MHz分配(2x996-tone RU)。

例如,分配索引203指定4个用户的484色调RU:

cfg484MU = wlanHEMUConfig(203);showAllocation (cfg484MU axAlloc)

HE多用户格式- OFDMA与RU大小大于242子载波

对于信道带宽大于20mhz的HE MU传输,使用2个HE- sig - b内容信道向用户配置发送信号。这些内容通道在每个40 MHz子通道上重复,以获得更大的通道带宽,如[1].当一个大于242的RU被指定为OFDMA系统的一部分时,分配给该RU的用户可以在两个HE-SIG-B内容通道中的任何一个上发送信号。对象时提供的分配索引wlanHEMUConfig对象控制向每个用户发出信号的内容通道。中的分配表附录显示相关的分配指标。

例如,考虑以下80mhz配置,为7个用户提供服务:

  • 一个484色调RU (RU #1),四个用户(用户#1-4)

  • 一个242色调RU (RU #2)与一个用户(user #5)

  • 两个106音调的RU (RU #3和#4),每个RU都有一个用户(用户#6和#7)

要配置80mhz OFDMA传输,需要四个分配指标,每个20mhz子信道一个。要配置上述场景,将使用以下分配指标:

[x y 192 96]

  • X而且Y配置484色调RU,用户#1-4。的可能值X而且Y将在下面讨论。

  • 192配置一个242色调的RU和一个用户#5。

  • 96信号是两个106音的ru,每个ru有一个用户,用户#6和#7。

选择X而且Y在242音RU中配置适当数量的用户,并确定使用哪个HE-SIG-B内容通道向用户发送信号。一个484音的RU横跨两个20mhz的子信道,因此需要两个分配指标。来自4个RU的所有7个用户都将在HE-SIG-B内容频道上发送信号,但现在我们只考虑用户在484音RU上的信号。对于484音RU,可以在两个HE-SIG-B内容信道上以不同的组合向四个用户发出信号,如表1所示。

在200-207范围内的分配索引指定在484色调的RU上有1-8个用户。在一个内容频道上没有用户的信号,分配指数114115可用于448色调或996色调的俄服。因此,可以使用表2所示的两个分配指标定义表1中的组合。表2中每一行的两个分配指标为X而且Y

因此,配置'组合E'使用以下80mhz分配指标:

[114 203 192 96]

  • 114而且203配置484色调RU,用户#1-4。

  • 192配置一个242色调的RU和一个用户#5。

  • 96信号是两个106音的ru,每个ru有一个用户,用户#6和#7。

cfg484OFDMA = wlanHEMUConfig([114 203 192 96]);showAllocation (cfg484OFDMA axAlloc);

如果需要查看HE-SIG-B分配信令,请使用hePlotHESIGBAllocationMapping函数。这显示了在每个HE-SIG-B内容通道上发出信号的用户字段,以及RU和用户在wlanHEMUConfig对象中,每个用户字段的信号。在这种情况下,我们可以看到RU #1、3和4上的用户都在内容通道2上发出信号,而RU #2上的用户在内容通道1上发出信号。第二个内容通道向六个用户发出信号,而第一个内容通道只向一个用户发出信号。因此,为了传输,第一个内容通道将被填充到第二个内容通道的长度。在图中,RU分配信息以index-size的形式提供,例如RU8-106是第8个106调RU。

图;hePlotHESIGBAllocationMapping (cfg484OFDMA);axSIGB = gca;获取后续绘图的轴句柄

为了平衡HE-SIG-B中的用户字段信令,在为484音RU创建分配索引时,我们可以使用表2中的“组合B”。这将导致在HE-SIG-B的每个内容通道上向两个用户发出信号,从而更好地平衡用户字段,并可能在传输中减少HE-SIG-B符号。

cfg484ofdmbalance = wlanHEMUConfig([201 201 96 192]);hePlotHESIGBAllocationMapping (cfg484OFDMABalanced axSIGB);

HE多用户格式-中央26音RU

在80mhz传输中,当不使用全频带RU时,中央26音RU可以选择性地激活。控件时,使用名称-值对启用中央26色调RUwlanHEMUConfig对象。

创建一个没有中央26色RU的配置cfgNoCentral = wlanHEMUConfig([192 192 192 192 192],“LowerCenter26ToneRU”、假);showAllocation (cfgNoCentral axAlloc);创建一个中央26色RU配置cfgCentral = wlanHEMUConfig([192 192 192 192 192],“LowerCenter26ToneRU”,真正的);showAllocation (cfgCentral axAlloc);

类似地,对于160 MHz传输,每个80 MHz段中的中央26音RU可以有选择地使用。每个中央26色调RU可以使用名称-值对在创建wlanHEMUConfig对象。在这个例子中,只创建了上中央26色调的RU。分配索引指定了四个242音调的ru,每个ru有一个用户[200 114 114 200 200 200 114 114 200]

cfgCentral160MHz = wlanHEMUConfig([200 114 114 200 200 114 114 200],“UpperCenter26ToneRU”,真正的);disp (cfgCentral160MHz)
wlanHEMUConfig with properties: RU: {1x5 cell} User: {1x5 cell} PrimarySubchannel: 1 numtransmit天线: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 114 114 200] LowerCenter26ToneRU: 0 UpperCenter26ToneRU: 1

HE多用户格式-序言穿刺

在80 MHz或160 MHz传输中,可以穿孔20 MHz子信道,以允许遗留系统在穿孔信道中运行。这种方法也称为通道键合。将20 MHz子通道分配索引置空113可以使用。被击穿的20兆赫兹子信道可以用showAllocation方法。

Null 160 MHz配置中第二低的20 MHz子信道cfgNull = wlanHEMUConfig([192 113 114 200 208 115 115 115]);绘制分配图showAllocation (cfgNull axAlloc);

也可以用生成的波形和频谱分析仪查看被击穿的20 MHz。

设置每个用户在所有ru中的传输属性cfgNull.User{1}。一个PEPLength = 100; cfgNull.User{1}.MCS = 2; cfgNull.User{1}.ChannelCoding =“方法”;cfgNull.User{1}。NumSpaceTimeStreams = 1;cfgNull.User{2}。一个PEPLength = 1000; cfgNull.User{2}.MCS = 6; cfgNull.User{2}.ChannelCoding =“方法”;cfgNull.User{2}。NumSpaceTimeStreams = 1;cfgNull.User{3}。一个PEPLength = 100; cfgNull.User{3}.MCS = 1; cfgNull.User{3}.ChannelCoding =“方法”;cfgNull.User{3}。NumSpaceTimeStreams = 1;%创建数据包txnull波形= wlanWaveformGenerator([1 0 1 0],cfgNull);%可视化信号频谱fs = wlanSampleRate(cfgNull);ofdmInfo = wlanHEOFDMInfo(“数据”cfgNull 1);fftsize = ofdinfo . fftlength;频谱分析仪= dsp。简介(“SampleRate”fs,...“AveragingMethod”“指数”“ForgettingFactor”, 0.99,...“RBWSource”“属性”“RBW”fs / fftsize...“标题”'160兆赫MU传输与穿刺20兆赫信道');简介(txNullWaveform);

基于触发器的MU格式

基于HE触发器(TB)的格式允许上行链路中的OFDMA或MU-MIMO传输。当接入点(AP)触发时,每个工作站(STA)同时传输一个TB包。TB传输完全由AP控制。传输所需的所有参数都在触发帧中提供给参与TB传输的所有sta。在本例中,配置了OFDMA/MU-MIMO系统中响应三个用户的触发帧的TB传输;三个sta将同时向AP发送数据。

20mhz的分配97对应于两个ru,其中一个ru在MU-MIMO中为两个用户服务。

disp ('分配#97表项:') disp (allocationTable(98年,:))%索引97(第98行)
分配# 97表条目:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ _________ ___________ _____________ ____ 97年“01100001”3 2 {[1 - 2]}{[106 106]}{[1 - 2]}"

分配信息是通过创建MU配置获得的wlanHEMUConfig

生成一个OFDMA分配cfgMU = wlanHEMUConfig(97);allocationInfo = ruInfo(cfgMU);

在TB传输中,对于传输中的所有用户,有几个参数是相同的。其中一些具体说明如下:

这些参数对于OFDMA系统中的所有用户都是相同的trgMethod =“TriggerFrame”用于触发HE TB PPDU的方法channelBandwidth = cfgMU.ChannelBandwidth;OFDMA系统带宽lsigLength = 142;% L-SIG长度县paddingfactor = 2;%预fec填充因子ldpcExtraSymbol = false;% LDPC额外符号numHELTFSymbols = 2;HE-LTF符号的百分比

系统内单个用户的TB传输配置为wlanHETBConfig对象。在本例中,创建了一个包含三个对象的单元格数组来描述三个用户的传输。

为每个用户创建一个触发器配置numUsers = allocationInfo.NumUsers;cfgTriggerUser = repmat({wlanHETBConfig},1,numUsers);

为每个用户设置非默认的系统范围属性。

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;结束

接下来设置每个用户的属性。在MU-MIMO配置中,当多个用户在同一个RU中传输时,每个用户必须在不同的时空流索引上传输。的属性StartingSpaceTimeStream而且NumSpaceTimeStreamSteams必须为每个用户设置,以确保使用不同的时空流。在本例中,用户1和用户2处于MU-MIMO配置中StartingSpaceTimeStream对于用户2,设置为2,用户1被配置为发送1个空时流StartingSpaceTimeStream = 1

这些参数是针对第一个用户RU#1 MU-MIMO用户1cfgTriggerUser{1}。俄文大小= allocationInfo.RUSizes(1); cfgTriggerUser{1}.RUIndex = allocationInfo.RUIndices(1); cfgTriggerUser{1}.MCS = 4;调制和编码方案cfgTriggerUser{1}。NumSpaceTimeStreams = 1;%时空流个数cfgTriggerUser{1}。numtransmitantenna = 1;%发射天线个数cfgTriggerUser{1}。StartingSpaceTimeStream = 1;时空流的起始索引cfgTriggerUser{1}。ChannelCoding =“方法”%信道编码这些参数是针对第二个用户- RU#1 MU-MIMO用户2的cfgTriggerUser{2}。俄文大小= allocationInfo.RUSizes(1); cfgTriggerUser{2}.RUIndex = allocationInfo.RUIndices(1); cfgTriggerUser{2}.MCS = 3;调制和编码方案cfgTriggerUser{2}。NumSpaceTimeStreams = 1;%时空流个数cfgTriggerUser{2}。StartingSpaceTimeStream = 2;时空流的起始索引cfgTriggerUser{2}。numtransmitantenna = 1;%发射天线个数cfgTriggerUser{2}。ChannelCoding =“方法”%信道编码这些参数是针对第三个用户ru# 2的cfgTriggerUser{3}。俄文大小= allocationInfo.RUSizes(2); cfgTriggerUser{3}.RUIndex = allocationInfo.RUIndices(2); cfgTriggerUser{3}.MCS = 4;调制和编码方案cfgTriggerUser{3}。NumSpaceTimeStreams = 2;%时空流个数cfgTriggerUser{3}。StartingSpaceTimeStream = 1;时空流的起始索引cfgTriggerUser{3}。numtransmitantenna = 2;%发射天线个数cfgTriggerUser{3}。ChannelCoding =“* *”%信道编码

一个包含随机数据的包现在由每个用户用wlanWaveformGenerator.每个用户传输的波形被存储以供分析。

trigInd = wlanFieldIndices(cfgTriggerUser{1});获取每个字段的索引txTrigStore = 0 (trigInd.HEData(2),numUsers);userIdx = 1:numUsers为用户生成波形cfgTrigger = cfgTriggerUser{userIdx};txPSDU = randi([0 1],getPSDULength(cfgTrigger)*8,1);txTrig = wlanWaveformGenerator(txPSDU,cfgTrigger);保存传输的STA波形以供分析txTrigStore(:,userIdx) = sum(txTrig,2);结束

来自每个STA的传输波形的频谱显示了所使用的频谱的不同部分,以及MU-MIMO RU中的重叠。

fs = wlanSampleRate(cfgTriggerUser{1});ofdmInfo = wlanHEOFDMInfo(“数据”, cfgTriggerUser {1});频谱分析仪= dsp。简介(“SampleRate”fs,...“AveragingMethod”“奔跑”“SpectralAverages”, 1...“ChannelNames”, {“RU#1用户1”“RU#1用户2”“俄文# 2”},...“ShowLegend”,真的,“标题”“每个用户传输的HE TB波形”);简介(txTrigStore);

附录

以下是RU分配<= 20 MHz的分配表,并带有注释说明。

RU分配和分配> 20 MHz的HE-SIG-B用户信令如下表所示,并附有注释说明。

选定的参考书目

  1. IEEE标准802.11ax™-2021。IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改件1:高效WLAN的增强。