主要内容

802.11交流多用户MIMO预编码

这个例子显示了一个802.11的传输和接收处理ac™在衰落信道多用户下行传输。示例使用线性预编码技术基于奇异值分解(计算)的通道。

介绍

802.11交流支万博1manbetx持下行(接入点站)多用户传输长达四用户和8传输天线增加链接的总吞吐量(1]。基于用户预定的传输时间,调度器寻找其他更小的包准备传染给其他用户。如果可用,它安排这些用户在同一时间间隔,从而降低整体的多个传输所花费的时间。

在更高的复杂性,因为这同时传输成功接待个人用户的负载需要预编码,也称为发送端波束形成。预编码假定信道状态信息(CSI)是已知发射机。一个探测包,如所描述的802.11交流传输波束形成例子中,用于确定每个用户的CSI多用户传输。每个用户反馈个人beamformer CSI。beamformer使用CSI从所有用户的预编码矩阵(空间映射)随后的数据传输。

这个示例使用一个通道反演技术的三个用户传输不同数量的空间流分配每个用户,每个用户不同速度参数。系统可以通过下图为特征。

示例生成多用户传输波形,通过每个用户通过一个通道和解码为每个用户接收到的信号来计算比特错误。在数据传输之前,这个示例使用一个null数据分组(NDP)传输声音不同的渠道和决定了预编码矩阵的假设下完美的反馈。

仿真参数和配置

802.11交流,最多八个空间流是被允许的。6 x6米姆配置三个用户使用在本例中,第一个用户有三个流,其次有一个,第三有两个流分配给它。不同速度参数和载荷大小为4用户指定为向量参数。这些是适当的索引在传输配置基于活跃用户的数量。

s = rng (21);%设置RNG种子可重复性%的传输参数chanBW =“CBW80”;%通道带宽numUsers = 3;%的活跃用户数量numSTSAll = [3 1 2 2];%的数量为4用户流userPos = [0 1 2 3];%的用户位置最大4用户mcsVec = [4 6 2 2];% MCS最大4用户apepVec = (15120 8192 5400 6000);%有效载荷,以字节为4的用户chCodingVec = {“* *”,“方法”,“方法”,“* *”};%为4用户信道编码%通道和接收参数chanMdl =“模型(一个”;% TGac衰落信道模型precodingType =“ZF”;%预编码类型;ZF和MMSE的信噪比= 38;在dB %信噪比eqMethod =“ZF”;%均衡方法%创建多用户VHT格式配置对象,适当%索引到向量的值活跃用户如果(numUsers = = 1) groupID = 0;其他的groupID = 2;结束numSTSVec = numSTSAll (1: numUsers);numTx =总和(numSTSVec);cfgVHTMU = wlanVHTConfig (“ChannelBandwidth”chanBW,“NumUsers”numUsers,“NumTransmitAntennas”numTx,“GroupID”groupID,“NumSpaceTimeStreams”numSTSVec,“UserPositions”userPos (1: numUsers),“主持人”mcsVec (1: numUsers),“APEPLength”apepVec (1: numUsers),“ChannelCoding”chCodingVec (1: numUsers));

发射天线的数量将所有使用时空流的总和。这意味着没有空时分组编码(方式)或空间扩张是用于传输。

听起来(NDP)配置

对预编码,信道测深是首先用来确定渠道经验的用户(接收器)。这个信道状态信息发送回发射器,用于后续的数据传输。假设两个传输信道变化缓慢。对于多用户传输,相同的民主党(空数据包)传播给每一个预定的用户(2]。

% VHT测深(NDP)配置为相同数量的流cfgVHTNDP = wlanVHTConfig (“ChannelBandwidth”chanBW,“NumUsers”,1“NumTransmitAntennas”numTx,“GroupID”0,“NumSpaceTimeStreams”总和(numSTSVec),“主持人”0,“APEPLength”,0);

流指定的数量的总和所有时空流使用。听起来这允许完整的通道。

%生成空数据包,没有数据txNDPSig = wlanWaveformGenerator ([], cfgVHTNDP);

传输通道

TGac多用户信道由独立的单用户MIMO接入点之间的通道和空间上分开站(3]。在本例中,应用了相同的延迟概要模型(一个通道的每个用户,即使个人用户可以体验不同的条件。平坦衰落信道允许简单的接收机前端没有同步。还假定每个用户的接收天线数相等数量的时空流分配给他们。

细胞数组用于存储每个用户的例子元素允许灵活的用户数量。在这里,作为一个例子,每用户TGac通道的每个实例存储单元阵列的一个元素。

%创建三个独立通道TGAC =细胞(numUsers, 1);chanSeeds = (1111 2222 3333 4444);%选择最多4用户uIndex = [10 5 2 1];%选择最多4用户chanDelay = 0 (numUsers, 1);uIdx = 1: numUsers TGAC {uIdx} = wlanTGacChannel (“ChannelBandwidth”cfgVHTMU.ChannelBandwidth,“DelayProfile”chanMdl,“UserIndex”uIndex (uIdx),“NumTransmitAntennas”numTx,“NumReceiveAntennas”numSTSVec (uIdx),“RandomStream”,“与种子mt19937ar”,“种子”chanSeeds (uIdx),“SampleRate”wlanSampleRate (cfgVHTMU),“TransmitReceiveDistance”5);chanInfo = info (TGAC {uIdx});chanDelay (uIdx) = chanInfo.ChannelFilterDelay;结束

通道为每个单独的用户使用不同的随机数生成的种子。指定一个不同的用户索引允许随机角偏移量,适用于(AoA)和集群的角度出发(AoD)。通道滤波延迟是存储在接收器允许其薪酬。在实践中,符号定时估计会被使用。

% 0附加到允许延迟通道过滤器txNDPSig = [txNDPSig;0 (10,numTx)];%声音的每个用户独立通道传输流rxNDPSig =细胞(numUsers, 1);uIdx = 1: numUsers rxNDPChan = TGAC {uIdx} (txNDPSig);%添加WGN /接收器rxNDPSig {uIdx} = awgn (rxNDPChan,信噪比);结束

信道状态信息反馈

每个用户估计自己的频道使用获得民主党信号和计算信道状态信息,它可以发送回发射机。下面的例子使用了奇异值分解的通道被每个用户计算沪深反馈。

垫=细胞(numUsers, 1);uIdx = 1: numUsers%计算基于每用户接收信号的反馈矩阵垫{uIdx} = vhtCSIFeedback (rxNDPSig {uIdx} (chanDelay (uIdx) + 1:,:), cfgVHTNDP);结束

假设完美的反馈,没有压缩或量化CSI,发射机的转向矩阵计算数据传输使用Zero-Forcing或最小均方误差(MMSE)预编码技术。这两种方法都试图抵消intra-stream干扰用户的兴趣和由于其他用户的干扰。固有的MMSE-based方法避免了噪声增强zero-forcing技术。因此,在低信噪比性能更好。

%每用户CSI包成一个矩阵numST =长度(垫{1});%的副载波数steeringMatrix = 0 (numST总和(numSTSVec)和(numSTSVec));% Nst-by-Nt-by-NstsuIdx = 1: numUsers stsIdx =总和(numSTSVec (1: uIdx-1)) + (1: numSTSVec (uIdx));steeringMatrix (:,:, stsIdx) =垫{uIdx};% Nst-by-Nt-by-Nsts结束% Zero-forcing或MMSE预编码方案如果比较字符串(precodingType“ZF”)δ= 0;% Zero-forcing其他的δ= (numTx /(10 ^(信噪比/ 10)))*眼(numTx);%的患者结束我= 1:numST%通道反演预编码h =挤压(steeringMatrix(我::));steeringMatrix(我::)= h / (h * h +δ);结束%设置基于转向空间映射矩阵cfgVHTMU。SpatialMapping =“自定义”;cfgVHTMU。SpatialMappingMatrix =排列(steeringMatrix [1 3 2]);

数据传输

随机比特作为个人用户的负载。细胞数组是用来保存每个用户的数据位,txDataBits。多用户传输的个人用户负载垫,这样传输时间是相同的所有用户。这种填充过程描述(9.12.6节1]。在本例中为简单起见负载是垫为每个用户创建一个PSDU 0。

%创建数据序列,一个用于每个用户txDataBits =细胞(numUsers, 1);psduDataBits =细胞(numUsers, 1);uIdx = 1: numUsers%为每个用户生成负载txDataBits {uIdx} =兰迪([0,1],cfgVHTMU.APEPLength (uIdx) * 8, 1,“int8”);%垫有效载荷与零PSDU(txDataBits psduDataBits {uIdx} = {uIdx};0 (cfgVHTMU.PSDULength (uIdx) -cfgVHTMU.APEPLength (uIdx)) * 8, 1,“int8”));结束

使用格式配置,cfgVHTMU,指导矩阵,在衰落信道传输数据。

%生成多用户VHT波形txSig = wlanWaveformGenerator (psduDataBits cfgVHTMU);%通过每个用户的衰落信道传输rxSig =细胞(numUsers, 1);uIdx = 1: numUsers% 0附加到允许延迟通道过滤器rxSig {uIdx} = TGAC {uIdx} ([txSig;0 (10,numTx)]);结束

每个用户的数据恢复

接收信号为每个用户单独处理。示例假定没有前端障碍,被接收者传输配置简单。

用户指定感兴趣的用户数量被解码的传播。这也是用来索引向量特定于用户的配置对象的属性。

%获得配置的字段索引,假定在接收器印第安纳州= wlanFieldIndices (cfgVHTMU);%单用户接收机有效载荷部分恢复rxDataBits =细胞(numUsers, 1);定标器= 0 (numUsers, 1);spAxes = gobject (sum (numSTSVec), 1);hfig =图(“名字”,“制定平衡的星座的象征);uIdx = 1: numUsers%添加WGN /接收器rxNSig = awgn (rxSig {uIdx},信噪比);rxNSig = rxNSig (chanDelay (uIdx) + 1:,:);%的用户时空流stsU = numSTSVec (uIdx);%根据VHT-LTF执行信道估计rxVHTLTF = rxNSig (ind.VHTLTF (1): ind.VHTLTF (2):);demodVHTLTF = wlanVHTLTFDemodulate (rxVHTLTF chanBW numSTSVec);(陈,chanEstSSPilots) = wlanVHTLTFChannelEstimate (demodVHTLTF、chanBW numSTSVec);%从波形中提取VHT数据样本rxVHTData = rxNSig (ind.VHTData (1): ind.VHTData (2):);%的噪声功率估计VHT数据字段据nVar = vhtNoiseEstimate (rxVHTData chanEstSSPilots cfgVHTMU);%恢复信息比特VHT数据字段[rxDataBits {uIdx}, ~, eqsym] = wlanVHTDataRecover (rxVHTData,据nVar成龙,cfgVHTMU uIdx,“EqualizationMethod”eqMethod,“PilotPhaseTracking”,“没有”,“LDPCDecodingMethod”,“norm-min-sum”);%的情节使相等符号流每用户定标器(uIdx) =装天花板(max (abs([真实(eqsym (:));图像放大(eqsym (:))))));i = 1: stsU次要情节(numUsers马克斯(numSTSVec), (uIdx-1) *马克斯(numSTSVec) + i);情节(重塑(eqsym(:,:我),[],1),“。”);轴广场spAxes(总和([0 numSTSVec (1: (uIdx-1)))) + i) = gca;%存储轴处理标题([“用户”num2str (uIdx)”,流”num2str (i)));网格;结束结束%范围内所有次要情节和规模图轴i = 1:元素个数(spAxes) xlim (spAxes(我),(-麦克斯(标量)马克斯(标量)));ylim (spAxes(我),(-麦克斯(标量)马克斯(标量)));结束pos =得到(hfig,“位置”);集(hfig,“位置”,(pos (1) * 0.7 pos (2) 1.3 * 0.7 * 1.3 pos (3) * pos (4)]);

制定平衡的星座象征情节验证仿真参数和传递技术的有效性。注意到明显的16 qam, 64 qam和QPSK星座每个用户指定的传输。也观察维生素与退化为单个用户在不同的流。这是一个代表通道反演技术的特点。

恢复数据位与传播的有效载荷位确定比特误码率。

%比较恢复对每个用户的APEPLength信息碎片数量=正(1、numUsers);uIdx = 1: numUsers idx = (1: cfgVHTMU.APEPLength (uIdx) * 8)。”;[~,误码率(uIdx)] = biterr (txDataBits {uIdx} (idx) rxDataBits {uIdx} (idx));disp ([的比特误码率用户”num2str (uIdx)“:”num2str (ber (uIdx))));结束rng(年代);%恢复RNG状态
比特误码率用户1:0.00013228比特误码率用户2:0比特误码率用户3:0

小数量的位错误,在噪声方差,表明成功的数据解码流为每个用户,尽管EVMs变异出现在单独的流。

结论和进一步勘探

示例显示了多用户传输配置,独立用户信道建模、和个人接收处理使用通道反演预编码技术。

进一步探索对传输和信道参数,包括修改替代预编码技术,更现实的接收器和反馈机制将延误和量化。

选定的参考书目

  1. -2020年IEEE Std 802.11™。IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)。

  2. Perahia E。,R. Stacey, "Next Generation Wireless LANS: 802.11n and 802.11ac", Cambridge University Press, 2013.

  3. 布莱特,G。,H. Sampath, S. Vermani, et al., "TGac Channel Model Addendum", Version 12. IEEE 802.11-09/0308r12, March 2010.