这个例子展示了如何参数化和生成不同的IEEE®802.11ax™高效(HE)格式数据包。
IEEE P802.11ax/D4.1 [1指定4种高效HE报文格式:
单用户
对于单用户
多用户
Trigger-based
这个例子展示了如何为这些不同的格式生成数据包,并演示了标准草案的一些关键特性[1].
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);%创建数据包
扩展范围单用户数据包具有与标准单用户格式相同的字段,但一些字段的功率被增强,一些字段被重复以提高低信噪比下的性能。扩展范围报文可以使用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多用户(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的分配由分配索引定义。分配指标定义见[的表28-24]。1].对于每个20 MHz的子信道,一个8位索引描述了RU的数量和大小,以及每个RU上传输的用户数量。分配指数还决定了在HE-SIG-B中使用哪个内容通道向用户发送信号。表28-24中的分配索引和相应的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的整数,对应表28-24中的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包也可以通过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)
对于信道带宽大于20mhz的HE MU传输,使用2个HE- sig - b内容信道向用户配置发送信号。这些内容通道在每个40 MHz子通道上复制,以获得更大的通道带宽,如[的第27.3.10.8.3节所述。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个用户。在一个内容频道上没有用户的信号,分配指数114
或115
可用于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);
在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
在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);
基于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用户信令如下表所示,并附有注释说明。
IEEE P802.11ax™/D4.1信息技术标准草案。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改件6:高效WLAN的增强。