主要内容

802.11ax参数化的波形产生和仿真

此示例显示如何参数化和生成不同的IEEE®802.11AX™高效率(HE)格式数据包。

介绍

IEEE P802.11ax / D4.1 [1]指定四个高效率(HE)数据包格式:

  1. 单用户

  2. 扩展范围单用户

  3. 多用户

  4. 触发基础

此示例显示如何为这些不同格式生成数据包,并演示草稿标准的一些关键功能[1]。

他单用户格式

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

cfgSU = wlanHESUConfig;cfgSU。ExtendedRange = false;%不使用扩展范围格式cfgSU。ChannelBandwidth ='CBW20'% 信道带宽cfgsu.apeplength = 1000;%有效载荷长度以字节为单位cfgsu.mcs = 0;%调制和编码方案cfgsu.channelcoding ='LDPC'%信道编码cfgSU。NumSpaceTimeStreams = 1;%时空流的个数cfgSU。NumTransmitAntennas = 1;百分比的发射天线数量

可以用波形发生器产生单用户数据包,WlanWaveFormGenerator..的getPsDulength()方法返回给定传输配置的所需PSDU长度。此长度用于创建用于传输的随机PSDU。

psdu = randi([0 1],getPSDULength(cfgSU)*8,1,“int8”);%随机PSDUtxsuwaveform = wlanwaveformgenerator(psdu,cfgsu);%创建数据包

HE扩展范围单用户格式

扩展范围的单用户数据包具有与标准单用户格式相同的字段,但有些字段的权力已提升,并重复某些字段以提高低SNR的性能。可以使用扩展范围数据包使用a配置wlanHESUConfig对象与信道带宽调成'CBW20'ExtendedRange调成真正的.一个扩展范围包有一个选项,在20兆赫信道内,只能在较高的106音资源单元(RU)中传输,或超过整个带宽。可以配置Upper106ToneRU属性:

cfgExtSU = cfgSU;cfgExtSU。ExtendedRange = true;%启用扩展范围格式cfgextsu.upper106toneru = true;%仅限于Upper 106-TONE RU%生成数据包psdu = randi([0 1],getPSDULength(cfgExtSU)*8,1,“int8”);%随机PSDUtxextsuwaveform = wlanwaveformgenerator(psdu,cfgextsu);%创建数据包

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

fs = wlanSampleRate (cfgExtSU);%获得基带采样率Ofdminfo = wlanheofdminfo(“数据”, cfgExtSU);fftsize = ofdmInfo.FFTLength;%使用数据字段fft大小rbw = fs / fftsize;%resolaton带宽Spectrumanalyzer = DSP.SpectRumanalyzer('采样率',fs,......'方法''过滤银行''rbwsource''财产'“RBW”rbw,......'allagesmethod''指数'“ForgettingFactor”,0.25,......'refernplotrate'假的,'ylimits',[ -  50,20],......“标题”“他的延伸范围苏有活跃的鞋面106-tone ru');spectrumanalyzer.viewtype =.'频谱和谱图';spectrumanalyzer.timespansource =.'财产';简介。时间间隔= (txExtSUWaveform) / fs长度;简介(txExtSUWaveform)

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

图;IND = WLANFIELDINDIDICES(CFGEXTSU);T =(0 :( 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 US移动普通)');包含('时间(美国)');ylabel (的功率(瓦分贝));传奇('他苏''他扩展范围苏'“位置”'西南');

他多用户格式 - OFDMA

他多用户(HU MU)格式可以配置用于OFDMA传输,MU-MIMO传输或两者的组合。这种灵活性允许HE MU数据包通过整个频段向单个用户发送到一个用户在频带(OFDMA)的不同部分上的多个用户,或者在频带(MU-MIMO)的同一部分上方的多个用户。

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

传输中的RUS分配由分配索引定义。分配索引在[中的表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 x9双}{1 x9双}{1 x9双}”“1“00000001”8 8{1×8双}{1×8双}{1×8双}”“2“00000010”8 8{1×8双}{1×8双}{1×8双}”“3“00000011”7 7 {1 x7双}{1 x7双}{1 x7双}”“4“00000100”8 8{1×8双}{1×8双}{1×8双}”5“00000101”7 7 {1 x7双}{1 x7双}{1 x7双}”“6“00000110”7 7 {1 x7双}{1 x7双}{1 x7双}”“7“00000111”6 6 {1 x6双}{1 x6双}{1 x6双}”“8“00001000”8 8{1×8双}{1×8双}{1×8双}"" 9 "00001001" 7 7 {1x7双}{1x7双}{1x7双}""

一个Wlanhemuconfig对象用于配置HE MU数据包的传输。创建HU MU配置对象时,必须提供每个20 MHz子信道的分配索引,Wlanhemuconfig.在0和223之间的整数,对应于[中的表28-24中的8位数1]必须为每个20 MHz子信道提供。

分配索引可以作为十进制或8位二进制序列提供。在此示例中,使用8位分配索引“10000000”创建20MHz HE MU配置。这相当于十进制分配索引128.此配置指定3个RU,每个都与一个用户相同。

AllocationIndex =“10000000”%3 rus,每个ru的1个用户cfgmu = wlanhemuconfig(AllocationIndex);

展示可视化指定配置所占用的RUs和子运营商。彩色块说明了包的前HE和HE部分中被占用的子载波。白色表示子载波未被占用。前he部分说明了在HE-STF之前的领域中被占领的子载波。HE部分说明了在HE- stf, HE- ltf和HE- data领域中被占用的子载波,因此显示了RU分配。点击一个RU将显示有关该RU的信息。RU号对应的第i个RU元素cfgMU。俄文财产。大小和索引是ru的细节。ru索引是信道带宽内相应的ru大小的第i个可能的ru,例如索引2是20MHz信道带宽内的第二可能的106色调RU。用户号码对应于第i个用户元素cfgMU。用户属性,He-Sig-B中的用户字段。注意中间ru(Ru#2)跨越DC子载波拆分。

展示(CFGMU);AxAlloc = GCA;%获取后续绘图的轴句柄

Ruinfo.方法提供配置中rus的详细信息。在这种情况下,我们可以看到三个用户和三个rus。

Allocinfo = Ruinfo(CFGMU);DISP(的配置信息:)DISP(ALLOCINFO)
NumUsersPerRU: [1 1 1 1] NumSpaceTimeStreamsPerRU: [1 1 1] PowerBoostFactorPerRU: [1 1 1] RUNumbers: [1 2 3]

属性cfgmu.描述传输配置。的cfgMU。俄文cfgMU。用户的属性cfgmu.是细胞阵列。单元阵列的每个元素包含配置RU或用户的对象。当。。。的时候cfgmu.对象是创建的,元素cfgMU。俄文cfgMU。用户配置为创建所需的RUS和用户数。每个元素cfgMU。俄文是A.wlanHEMURU描述ru配置的对象。同样,每个元素cfgMU。用户是A.wlanhemuuser.描述用户的配置。这个对象层次结构如下所示:

因此,在本例中,由分配索引128指定三个RUscfgMU。俄文是具有三个元素的单元阵列。每个ru的索引和大小根据用于创建的分配索引配置cfgmu..创建对象后,可以通过设置适当的RU对象的属性,对每个RU进行配置,以创建所需的传输配置。例如,空间映射和功率提升因子可以配置每个RU。的大小指数创建对象后,每个ru的属性是固定的,因此是只读属性。同样,UserNumbers属性是只读的,表示在RU上传输的是哪个用户。对于这个配置,第一个RU大小为106,索引为1。

DISP(的第一个俄文配置:) disp (cfgMU.RU {1})
First Ru配置:Wlanhemuru具有属性:PowerBoostFactor:1 SpatialMapping:'Direct'只读属性:尺寸:106索引:1 Usernumbers:1

在此示例中,分配索引指定传输中的三个用户,因此cfgMU。用户包含三个元素。可以通过修改单独的用户对象,例如MCS,APEP长度和信道编码方案来配置用户的传输属性。只读的润帘属性表示哪个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的映射由分配索引决定。的UserNumbersru对象的属性表示哪些用户(其中​​的元素)cfgMU。用户在该RU上传输单元阵列)。同样,润帘每个用户对象的属性,表示哪个ru(元素)cfgMU。俄文单元格数组)用于传输用户:

这允许一个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} .apeplthength = 1e3;cfgmu.user {1} .mcs = 2;cfgmu.user {1} .numspacetimestreams = 4;cfgmu.user {1} .channelcoding ='LDPC'%配置ru 2和用户2cfgmu.ru {2} .spatialmapping ='傅里叶';cfgmu.user {2} .apeplength = 500;cfgmu.user {2} .mcs = 3;cfgmu.user {2} .numspacetimestreams = 2;cfgmu.user {2} .channelcoding ='LDPC'%configure ru 3和用户3cfgmu.ru {3} .spatialmapping ='傅里叶';cfgmu.user {3} .apeplength = 100;cfgmu.user {3} .mcs = 4;cfgmu.user {3} .dcm = true;cfgmu.user {3} .numspacetimestreams = 1;cfgmu.user {3} .channelcoding ='贝卡'

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

%为所有用户配置公共参数cfgmu.numtransmitantennas = 4;cfgmu.sigbmcs = 2;

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

psduLength = getPSDULength (cfgMU);psdu =细胞(1、allocInfo.NumUsers);为了i = 1:Allocinfo.Numusers PSDU {i} = RANDI([0 1],PSDULHED(i)* 8,1,“int8”);%生成随机psdu结尾创建MU数据包txMUWaveform = wlanWaveformGenerator (psdu cfgMU);

要配置具有大于20 MHz的信道带宽的OFDMA传输,必须为每个20 MHz子信道提供分配索引。例如,要配置80 MHz的OFDMA传输,需要四个分配索引。在此示例中,配置了四个242-色调rus。分配指数192.指定一个242-tone RU,在一个20mhz子信道中有一个用户,因此分配索引[192 192 192 192 192]用于创建其中的四个rus,超过80 MHz:

%在表中显示192个分配索引属性(第193行)DISP('分配#192表条目:')DISP(分配(193,:))%创建80 MHz MU配置,有四个242色调cfgMU80MHz = wlanHEMUConfig([192 192 192 192]);
分配#192表条目:分配比特分配NUMUSERS NumRUs RUIndices RUSIZES NumUsersPerRU注__________ _____________ ________ ______ _________ _______ _____________ ____ 192 “11000000” 1 1 {[1]} {[242]} {[1]} “”

当指定多个20mhz子信道时,则信道带宽属性设置为适当的值。对于这个配置,它被设置为'CBW80'指定了四个20 MHz子信道。这在分配绘图中也可见。

DISP('他分配的频道带宽:')DISP(CFGMU80MHZ.CHANNELBANDWIDTH)展示(CFGMU80MHZ,AXALLOC)
HE MU分配的通道带宽:CBW80

他多用户格式 - mu-mimo

一个HE MU包也可以使用MU- mimo将RU传输给多个用户。对于全频带MU-MIMO分配,192 ~ 199之间的分配索引配置全频带20mhz分配(242 tone RU)。这个范围内的索引决定了配置了多少用户。可以在分配表中查看分配细节。注意麻木表中的列随索引增长,但numrus始终1.分配表也可以在其中看附录

DISP('分配#192-199表条目:')DISP(分配(193:200,:))%索引192-199(行193到200)
拨出#192-199“2 1 {[1]} {[2]} {[2]}”“194”11000010“3 1 {[1]} {[242] {[3]} {[3]}”“195”11000011“4 1 {[1]} {[4]} {[4]}“”196“11000100”5 1 {[1]} {[22]} {[5]} {[5]} {[5]}“”197“11000101”6 1 {[1]}{[242]} {[6]}“”198“11000110”7 1 {[1]} {[242]} {[7]} {[7]}“199”11000111“8 1 {[1]} {[242]{[8]}“”

分配指数193.将20 MHz 242-TONE ru传输到两个用户。在该示例中,我们将创建具有随机空间映射矩阵的传输,该映射矩阵将每个用户映射到两个发射天线的单个时空流。

%在20 MHz通道中配置2个用户cfgmumimo = wlanhemuconfig(193);%设置每个用户的传输属性cfgMUMIMO.User{1}。APEPLength = 100;%字节cfgmumimo.user {1} .mcs = 2;cfgmumimo.user {1} .channelcoding ='LDPC';cfgmumimo.user {1} .numspacetimestreams = 1;cfgmumimo.user {2} .apeplength = 1000;%字节cfgMUMIMO.User{2}。MCS = 6;cfgMUMIMO.User{2}。ChannelCoding ='LDPC';cfgMUMIMO.User{2}。NumSpaceTimeStreams = 1;%获取RU中被占领的子航母数量ruindex = 1;%获取第一个(也是唯一一个)RU的信息Ofdminfo = wlanheofdminfo(“数据”、cfgMUMIMO ruIndex);numST = ofdmInfo.NumTones;占用子载波的%数量%设置发射天线的数量并生成随机空间映射%的矩阵numtx = 2;Allocinfo = Ruinfo(CFGMumimo);numsts = Allocinfo.numspacetImestreamSperru(Ruindex);cfgmumimo.numtransmitantennas = numtx;cfgmumimo.ru {ruindex} .spatialmapping =“自定义”;cfgMUMIMO.RU {ruIndex}。SpatialMappingMatrix =兰德(numST numSTS numTx);%创建一个重复位序列的数据包作为PSDUtxmumimo波形= wlanWaveformGenerator([1 0 1 0],cfgMUMIMO);

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

200到207之间的分配指数配置全带MU-MIMO 40 MHz分配(484-TONE RU)。这个范围内的索引决定了配置了多少用户。可以在分配表中查看分配细节。注意麻木表中的列随索引增长,但numrus总是1。

DISP(分配#200-207表项:)DISP(分配(201:208,:))%索引200-207(第201行至208行)
分配#200-207表条目:分配比特拉密解码器Numrus Ruindices禁止NumUsersPerru注释__________ _________________________________________________________________________________________________________________________________________________________“2 1 {[1]} {[2]} {[2]}”“202”11001010“3 1 {[1]} {[484] {[3]} {[3]}”“203”11001011“4 1 {[1]} {[484]“204”11001100“5 1 {[1]} {[484] {[5]} {[5]}”“205”11001101“6 1 {[1]}{[484]} {[6]}“”206“11001110”7 1 {[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分配(2×996音调RU)。

作为示例,分配索引203指定484音RU, 4个用户:

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

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

对于具有大于20MHz的信道带宽的HE MU传输,两个HE-SIG-B内容通道用于发信号通知用户配置。这些内容信道在每个40 MHz子信道上复制,以进行更大的通道带宽,如[的情况)([)第27.3.10.8.3节中所述1]。当ru大小大于242作为OFDMA系统的一部分时,可以在两个HE-SIG-B内容信道中发出分配给RU的用户。创建时提供的分配索引Wlanhemuconfig对象控制每个用户被通知的内容通道。中的分配表附录显示相关配置指标。

以7个用户80mhz为例:

  • 1个484音RU (RU #1)和4个用户(用户#1-4)

  • 一个242-色调ru(ru#2)与一个用户(用户#5)

  • 两个106音rus(ru#3和#4),每个有一个用户(用户#6和#7)

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

[x y 192 96]

  • XY使用用户#1-4配置484-tone ru。可能的价值XY在下面讨论。

  • 192.使用一个用户,用户#5配置242色调ru。

  • 96.用信号,每个用户,用户#6和#7发出信号两个106音rus。

选择XY在242音RU中配置适当的用户数,确定使用哪个HE-SIG-B内容通道与用户通信。一个484-tone 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音RU。因此,可以使用表2所示的两个分配索引来定义表1中的组合。表2中每一行的两个分配索引是XY

因此,要配置“组合E”,使用以下80 MHz分配索引:

[114 203 192 96]

  • 114203使用用户#1-4配置484-tone ru。

  • 192.使用一个用户,用户#5配置242色调ru。

  • 96.用信号,每个用户,用户#6和#7发出信号两个106音rus。

cfg484ofdma = wlanhemuconfig([114 203 192 96]);展示(CFG484OFDMA,AXALLOC);

要查看He-Sig-B分配信令,请使用heplothesigballocationmappping功能。这显示了在每个HE-SIG-B内容频道上发出的用户字段,以及哪个RU和用户Wlanhemuconfig对象,每个用户字段信号。在这种情况下,我们可以看到Ru#1,3和4上的用户全部在内容信道2上发出信号,并且Ru#2的用户在内容信道1上发出信号。第二内容信道信号六个用户,而第一内容频道仅发信号一个用户。因此,第一内容信道将填充到第二用于传输的第二长度。在该图中,RU分配信息以索引大小提供,例如,提供索引尺寸。ru8-106是第8个106号茹。

图;hePlotHESIGBAllocationMapping (cfg484OFDMA);甘氨胆酸axSIGB =;%获取后续绘图的轴句柄

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

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

他多用户格式 - 中央26-tod ru

在80mhz传输中,当一个全频带RU不被使用时,中央26音RU可以选择性激活。中央的26音RU在创建时使用名称-值对使能Wlanhemuconfig对象。

%创建一个没有中央26-tone ru的配置cfgnocentral = wlanhemuconfig([192 192 192 192],“LowerCenter26ToneRU”,错误的);展示(CFGnocentral,Axalloc);%创建一个中央26音RU配置cfgCentral = wlanHEMUConfig([192 192 192 192],“LowerCenter26ToneRU”,真正的);展示(CFGCentral,Axalloc);

类似地,对于一个160mhz的传输,在每个80mhz段的中央26音RU可以任选使用。每个中心26音RU可以使用名称-值对创建Wlanhemuconfig对象。在该示例中,仅创建上部中央26-tod Ru。使用分配索引指定有四个242色调RUS,每个用户都指定了一个用户[200 114 114 200200 20014 114 200]

CFGCentral160MHz = WLANHEMUCONFIG([200 114 114 200 200 114 114 200],'UpperCenter26toneru',真正的);disp (cfgCentral160MHz)
Wlanhemuconfig具有属性:ru:{1x5 Cell}用户:{1x5 Cell} NumTransmitantannas-Only属性:ChannelBandWidth:'CBW160'AllocationIndex:[2001 114 114 200 200 114 114 200] LowerCenter26toneru:0 UpperCenter26toneru:1

HE多用户格式-序言穿孔

在80MHz或160 MHz的变速器中,可以刺破20 MHz子通道,以允许传统系统在刺破的通道中运行。该方法也被描述为信道键合。null a 20 mhz子信道20 MHz子信道分配索引113可以使用。插入的20mhz子通道可以用展示方法。

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

所产生的波形和频谱分析仪也可以查看被击穿的20兆赫兹。

%在所有rus中设置每个用户的传输属性cfgNull.User{1}。一个PEPLength = 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}。一个PEPLength = 100; cfgNull.User{3}.MCS = 1; cfgNull.User{3}.ChannelCoding ='LDPC';cfgNull.User{3}。NumSpaceTimeStreams = 1;%创建数据包txnull波形= wlanWaveformGenerator([1 0 1 0],cfgNull);%可视化信号频谱FS = WLANSAMPLEDE(CFGNULL);Ofdminfo = wlanheofdminfo(“数据”cfgNull 1);fftsize = ofdmInfo.FFTLength;Spectrumanalyzer = DSP.SpectRumanalyzer('采样率',fs,......'allagesmethod''指数'“ForgettingFactor”,0.99,......'rbwsource''财产'“RBW”,fs / fftsize,......“标题”“160兆赫HE MU传输与刺穿20兆赫通道”);简介(txNullWaveform);

Trigger-Basedμ格式

他触发的(TB)格式允许在上行链路中进行OFDMA或MU-MIMO传输。当由接入点(AP)触发时,每个站(STA)同时发送TB分组。TB传输完全由AP控制。传输所需的所有参数都以触发器帧提供给参与TB传输的所有STA。在该示例中,配置了响应于在OFDMA / MU-MIMO系统中的三个用户的触发帧的TB传输;三个STA将同时传输到AP。

20 MHz分配97.使用对应于两个RU的,其中一个是MU-MIMO中的两个用户。

DISP('分配#97表条目:')DISP(分配(98,:))%索引97(第98行)
分配# 97表条目:分配BitAllocation NumUsers NumRUs RUIndices RUSizes NumUsersPerRU注意  __________ _____________ ________ ______ ____________ ____________ _____________ ____ 97年“01100001”3 2 {1 x2双}{1 x2双}{1 x2双}"

通过创建MU配置来获得分配信息Wlanhemuconfig

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

在TB传输中,对于传输中的所有用户,多个参数是相同的。其中一些如下所示:

对于OFDMA系统中的所有用户,%这些参数是相同的trgmethod ='triggerframe'%方法用于触发他tb ppduChannetBandWidth = CFGMU.ChannelBandWidth;OFDMA系统的%带宽lsiglength = 142;%l-sig长度preFECPaddingFactor = 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;结尾

接下来,设置每个用户属性。当多个用户在同一RU中传输时,在MU-MIMO配置中,每个用户必须在不同的时空流指标上传输。属性startingspacetimestreamnumspacetimestreamsteams.必须为每个用户设置,以确保使用不同的时空流。因此,在本例中,用户1和2使用的是MU-MIMO配置startingspacetimestream对于用户两个设置为2,用户1被配置为发送1个时空流StartingSpaceTimeStream = 1

%这些参数是为第一个用户RU#1 MU-MIMO用户1cfgTriggerUser {1} .rusize = AllocationInfo.rusize(1);cfgtriggeruser {1} .ruindex = AllocationInfo.Ruindices(1);cfgtriggeruser {1} .mcs = 4;%调制和编码方案cfgTriggerUser{1}。NumSpaceTimeStreams = 1;%时空流的个数cfgtriggeruser {1} .numtransmitantennas = 1;百分比的发射天线数量cfgTriggerUser{1}。StartingSpaceTimeStream = 1;%时空流的起始索引CFGTriggerUser {1} .ChannelCoding ='LDPC'%信道编码%这些参数适用于第二个用户 -  ru#1 mu-mimo用户2cfgTriggerUser {2} .rusize = AllocationInfo.rusize(1);cfgtriggeruser {2} .ruindex = AllodationInfo.Ruindices(1);cfgtriggeruser {2} .mcs = 3;%调制和编码方案cfgTriggerUser{2}。NumSpaceTimeStreams = 1;%时空流的个数cfgTriggerUser{2}。StartingSpaceTimeStream = 2;%时空流的起始索引cfgtriggeruser {2} .numtransmitantennas = 1;百分比的发射天线数量cfgTriggerUser{2}。ChannelCoding ='LDPC'%信道编码%这些参数适用于第三个用户 -  Ru#2cfgtriggeruser {3} .rusize = AllocationInfo.rusize(2);cfgtriggeruser {3} .ruindex = AllodationInfo.Ruindices(2);cfgtriggeruser {3} .mcs = 4;%调制和编码方案cfgTriggerUser{3}。NumSpaceTimeStreams = 2;%时空流的个数cfgtriggeruser {3} .startingspacetimestream = 1;%时空流的起始索引cfgtriggeruser {3} .numtransmitantennas = 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) = (txTrig, 2)总和;结尾

从每个STA发射波形的频谱显示了频谱使用的不同部分,以及MU-MIMO RU中的重叠。

fs = wlansamplerate(cfgtriggeruser {1});Ofdminfo = wlanheofdminfo(“数据”, cfgTriggerUser {1});Spectrumanalyzer = DSP.SpectRumanalyzer('采样率',fs,......'allagesmethod'“奔跑”'spectralaverages',1,......“ChannelNames”, {'ru#1用户1'“俄文# 1用户2”“俄文# 2”},......'陈旧',真的,“标题”“每用户传输HE TB波形”);Spectrumanalyzer(Txtrigstore);

附录

用于分配<= 20 MHz的RU分配表如下所示,带有注释的描述。

RU分配和HE-SIG-B用于分配> 20 MHz的用户信令如下表所示,带有注释的描述。

选定的书目

  1. IEEE P802.11ax™/ D4.1信息技术标准草案——电信和信息交换系统之间-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-第六修正案:高效WLAN的增强。