主要内容

802.11ac多用户MIMO预编码与WINNER II信道模型

这个示例展示了在WINNER II衰落信道上的802.11ac™多用户下行传输的发送和接收处理。要运行此示例,必须下载并安装用于通信工具箱™附加组件的WINNER II通道模型。只需要一个WINNER II通道System对象™就可以设置从一个接入点到所有用户的通道。

介绍

802.11ac支万博1manbetx持多达4个用户和多达8个发射天线的下行(接入点到站)多用户传输,以增加链路的总吞吐量[1].基于用户的预定传输时间,调度器寻找其他准备好传输给其他用户的较小数据包。如果可用,它将这些用户安排在相同的间隔内,从而减少多次传输所花费的总时间。

这种同时传输具有更高的复杂性,因为成功接收个人用户的有效负载需要预编码,也称为发送端波束形成。预编码假设信道状态信息(CSI)在发送端是已知的。一种探测包,如802.11交流传输波束形成(WLAN工具箱)示例,用于确定多用户传输中每个用户的CSI。每个用户向波束形成器反馈各自的CSI。波束形成器使用来自所有用户的CSI为后续数据传输设置预编码(空间映射)矩阵。

这个示例为每个用户分配不同数量的空间流和每个用户不同的速率参数的三用户传输使用了信道反转技术。系统的特征如下图所示。

该示例生成多用户发送波形,将其通过多用户WINNER II通道,并为每个用户解码接收的信号,以计算错误比特。在数据传输之前,该示例使用一个空数据包(NDP)传输来为每个用户探测不同的信道,并在完美反馈的假设下确定预编码矩阵。

检查支持包安装情况万博1manbetx

检查是否安装了“通信工具箱的WINNER II通道模型”支持包。万博1manbetx

comm万博1manbetxSupportPackageCheck (“CST_WINNER2”);

仿真参数及配置

对于802.11ac,最多允许8个空间流。本例中使用了用于三个用户的8x8 MIMO配置,其中第一个用户有三个流,第二个用户有一个流,第三个用户有分配给它的四个流。为每个用户指定不同的速率参数和有效载荷大小,作为传输配置的矢量参数。

s = rng (10);%为重复性设置RNG种子%的传输参数chanBW =“CBW80”%通道带宽numUsers = 3;%用户数量numSTSVec = [3 1 4];%每个用户的流数userPos = [0 1 2];%的用户位置mcsVec = [4 6 8];% MCS每个用户:16QAM, 64QAM, 256QAMapepVec = [520 192 856];%每用户的有效负载,以字节为单位chCodingVec = {“* *”“方法”“方法”};%每个用户的信道编码%预编码和均衡参数precodingType =“ZF”%预编码类型;ZF和MMSE的信噪比= 47;%信噪比(dB)eqMethod =“ZF”%均衡方法%创建多用户VHT格式配置对象numTx =总和(numSTSVec);cfgVHTMU = wlanVHTConfig (“ChannelBandwidth”chanBW,...“NumUsers”numUsers,...“NumTransmitAntennas”numTx,...“GroupID”2,...“NumSpaceTimeStreams”numSTSVec,...“UserPositions”userPos,...“主持人”mcsVec,...“APEPLength”apepVec,...“ChannelCoding”, chCodingVec);

发射天线的数量设置为所有使用的时空流的总和。这意味着没有空时分组编码(STBC)或空间扩展用于传输。

听起来(NDP)配置

在预编码中,信道探测首先用于确定用户(接收方)所经历的信道。该信道状态信息被发送回发送器,用于后续的数据传输。假设信道在两次传输中变化缓慢。对于多用户传输,将相同的NDP (Null Data Packet)传输到每个预定用户[2].

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

指定的流的数量是所使用的所有时空流的总和。这允许完整的通道被发出声音。

%生成无数据的空数据包txNDPSig = wlanWaveformGenerator ([], cfgVHTNDP);NPDSigLen = size(txNDPSig, 1);

赢家II室内办公室通道(A1)场景

在这个例子中,1comm.WINNER2Channel在通信工具箱™的WINNER II信道模型中建立系统对象,对不同的用户模拟三个信道。为每个用户配置室内办公室(A1)非视线场景。在固定的功率延迟情况下,每个用户都会经历一个最大延迟为175 us的16路衰落信道。对于802.11ac,每个用户还被分配一个低移动性。

接入点采用半径为20cm的均匀圆形阵列(UCA)。每个用户使用均匀线性阵列(ULA),每个阵列之间的元素间距为5cm。还假设每个用户接收天线的数量等于分配给他们的时空流的数量。

%设置WINNER II通道的布局参数AA = winner2。AntennaArray (“台湾”、numTx 0.2);i = 1:numUsers AA(i+1) = winner2。AntennaArray (“乌拉”, numSTSVec(我),0.05);结束STAIdx = 2: (numUsers + 1);APIdx = {1};rndSeed = 12;cfgLayout = winner2.layoutparset (STAIdx APIdx numUsers, AA, [], rndSeed);cfgLayout。的配对=[(1、numUsers); 2: (numUsers + 1)];为所有用户提供一个访问点cfgLayout。numUsers ScenarioVector = 1 (1);% A1场景用于所有链接cfgLayout。numUsers PropagConditionVector = 0 (1);%仿真结果我= 1:numUsers为每个用户随机设置速度V = rand(3,1) - 0.5;cfgLayout.Stations (i + 1)。速度= v /规范(v,“摇来摇去”);结束%为WINNER II通道设置模型参数cfgModel = winner2.wimparset;cfgModel。FixedPdpUsed =“是的”;cfgModel。FixedAnglesUsed =“是的”;cfgModel。IntraClusterDsUsed =“不”;cfgModel。RandomSeed = 111;%可重复性% 3个用户的最大速度是1m/s。设置采样密度字段,以确保采样率与通道带宽匹配。maxMSVelocity = max(cell2mat(cellfun(@(x)) norm(x,“摇来摇去”),...{cfgLayout.Stations.Velocity},“UniformOutput”、假)));cfgModel。UniformTimeSampling =“是的”;cfgModel。SampleDensity =圆(physconst (“光速”)/...cfgModel.CenterFrequency / 2 / (maxMSVelocity / wlanSampleRate (cfgVHTMU)));%创建WINNER II通道系统对象WINNERChan = comm.WINNER2Channel (cfgModel cfgLayout);%调用info方法检查一些派生的通道参数chanInfo = info (WINNERChan)
chanInfo = struct with fields: NumLinks: 3 NumBSElements: [8 8 8] NumMSElements: [3 1 4] NumPaths: [16 16 16] SampleRate: [8.0000e+07 8.0000e+07 8.0000e+07] ChannelFilterDelay: [7 7 7] NumSamplesProcessed: 0

存储每个用户的信道滤波延迟,以在接收端考虑其补偿。在实际应用中,通常采用符号时序估计。在发射机,额外的十个全零采样被附加,以考虑信道滤波器延迟。

chanDelay = chanInfo.ChannelFilterDelay;numPadZeros = 10;%设置ModelConfig。numtimesample匹配输入信号的长度%避免警告winnercan . modelconfig . numtimessamples = NPDSigLen + numPadZeros;%为所有用户打开WINNER II频道chanOutNDP = WINNERChan ([txNDPSig; 0 (numPadZeros numTx)]);%增加情况下rxNDPSig = cellfun (@awgn chanOutNDP,...num2cell(信噪比* (numUsers, 1)),“UniformOutput”、假);

通道状态信息反馈

每个用户使用接收到的NDP信号估计自己的信道,并计算信道状态信息,然后发送回发送器。本例使用每个用户看到的通道的奇异值分解来计算CSI反馈。

垫=细胞(numUsers, 1);uIdx = 1: numUsers%根据每个用户收到的信号计算反馈矩阵垫{uIdx} = vhtCSIFeedback (rxNDPSig {uIdx} (chanDelay (uIdx) + 1:,:),...cfgVHTNDP、uIdx numSTSVec);结束

假设完美反馈,没有CSI的压缩或量化损失,发射机使用零强迫或基于最小均方误差(MMSE)的预编码技术计算数据传输的转向矩阵。两种方法都试图消除感兴趣用户的流内干扰和其他用户的干扰。基于mmse的方法避免了零强迫技术固有的噪声增强。因此,它在低信噪比下性能更好。

%将每个用户CSI打包成一个矩阵numST =长度(垫{1});%子载波数steeringMatrix = 0 (numST总和(numSTSVec)和(numSTSVec));% Nst-by-Nt-by-NstsuIdx = 1:numUsers stsIdx = sum(numSTSVec(1:uIdx-1))+(1:numSTSVec(uIdx));steeringMatrix (:,:, stsIdx) =垫{uIdx};% Nst-by-Nt-by-Nsts结束%强制零或MMSE预编码解决方案如果比较字符串(precodingType“ZF”) = 0;% Zero-forcing其他的delta = (numTx/(10^(snr/10)))) * eye(numTx);%的患者结束我= 1:numST%信道反转预编码h =挤压(steeringMatrix(我::));steeringMatrix(i,:,:) = h/(h'*h + delta);结束%根据转向矩阵设置空间映射cfgVHTMU。SpatialMapping =“自定义”;cfgVHTMU。SpatialMappingMatrix = permute(steeringMatrix,[1 3 2]);

数据传输

随机比特被用作单个用户的有效负载。单元阵列用于保存每个用户的数据位,txDataBits.对于多用户传输,将填充单个用户的有效负载,以使所有用户的传输持续时间相同。这种填充工艺在[1].在本例中,为了简单起见,有效负载被填充为0,以为每个用户创建一个PSDU。

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

使用格式配置,cfgVHTMU,以产生多用户VHT波形。

txSig = wlanWaveformGenerator (psduDataBits cfgVHTMU);

一旦锁定,WINNER II通道对象不允许输入信号的大小改变,因此我们必须在将波形通过它之前调用释放方法。此外,当我们重新启动通道时,我们希望它在波形之前重新处理NDP,以便准确地模拟通道连续性。只有通道输出的波形部分被提取出来供每个用户后续处理。

释放(WINNERChan);%设置ModelConfig。numtimessamples来匹配NDP +的总长度%波形和填充零WINNERChan.ModelConfig.NumTimeSamples =...winnerchan.com modelconfig . numtimessamples + length(txSig) + numPadZeros;%通过WINNER II通道传输给所有用户,10个全零%采样附加到通道滤波器延迟chanOut = WINNERChan ([txNDPSig;0 (numPadZeros numTx);...txSig;0 (numPadZeros numTx)]);%提取每个用户的波形输出@(x) x(NPDSigLen+numPadZeros+1:end,:),“UniformOutput”、假);%增加情况下rxSig = cellfun (@awgn chanOut,...num2cell(信噪比* (numUsers, 1)),“UniformOutput”、假);

每用户数据恢复

每个用户的接收信号都被单独处理。为了简单起见,本例假设没有前端损害,并且接收器知道传输配置。

用户号指定要解码传输的感兴趣的用户。这还用于索引与用户相关的配置对象的向量属性。

从配置中获取字段索引,假设在接收端已知印第安纳州= wlanFieldIndices (cfgVHTMU);%单用户接收器恢复有效载荷位rxDataBits =细胞(numUsers, 1);定标器= 0 (numUsers, 1);spAxes = gobject (sum (numSTSVec), 1);hfig =图(“名字”“逐流均衡符号星座”);uIdx = 1:numUsers rxNSig = rxSig{uIdx}(chanDelay(uIdx)+1:end,:);%用户时空流stsU = numSTSVec (uIdx);估算VHT领域的噪声功率lltf = rxNSig (ind.LLTF (1): ind.LLTF (2):);demodLLTF = wlanLLTFDemodulate (lltf chanBW);据nVar = helperNoiseEstimate (demodLLTF chanBW,总和(numSTSVec));%基于VHT-LTF进行信道估计rxVHTLTF = rxNSig (ind.VHTLTF (1): ind.VHTLTF (2):);demodVHTLTF = wlanVHTLTFDemodulate (rxVHTLTF chanBW numSTSVec);陈= wlanVHTLTFChannelEstimate (demodVHTLTF chanBW numSTSVec);%恢复VHT数据字段中的信息位rxVHTData = rxNSig (ind.VHTData (1): ind.VHTData (2):);[rxDataBits {uIdx}, ~, eqsym] = wlanVHTDataRecover (rxVHTData,...据nVar成龙,cfgVHTMU uIdx,...“EqualizationMethod”eqMethod,“PilotPhaseTracking”“没有”...“LDPCDecodingMethod”“layered-bp”“MaximumLDPCIterationCount”6);%绘制每个用户的所有流的均衡符号定标器(uIdx) =装天花板(max (abs([真实(eqsym (:));图像放大(eqsym (:))))));i = 1:stsU subplot(numUsers,max(numSTSVec),(uIdx-1)*max(numSTSVec)+i);情节(重塑(eqsym(:,:我),[],1),“。”);轴广场spAxes(sum([0 numSTSVec(1:(uIdx-1))])+i) = gca;存储轴句柄标题([“用户”num2str (uIdx)”,流”num2str (i)));网格结束结束%所有子图和比例图的比例轴i = 1:numel(spAxes) xlim(spAxes(i),[-max(scaler) max(scaler)]);ylim (spAxes(我),(-麦克斯(标量)马克斯(标量)));结束pos =得到(hfig,“位置”);集(hfig,“位置”,[pos(1)*0.7 pos(2)*0.7 1.3*pos(3) 1.3*pos(4)];

逐流均衡符号星座图验证了仿真参数的有效性。请注意在发送端指定的每个用户的可识别的16QAM、64QAM和QPSK星座。还要观察单个用户在不同流上的EVM下降情况。这是信道反演技术的一个典型特征。

将恢复的数据位与传输的有效载荷位进行比较,以确定误码率。

%比较每个用户的APEPLength信息位ber = inf(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误码率用户2:0用户3:0误码率:0.00014603

在噪声方差范围内的少量比特错误表明,尽管在单个流中看到evm的变化,但每个用户的所有流的数据解码都是成功的。

结论与进一步探索

该实例展示了如何使用WINNER II衰落信道系统对象来模拟802.11ac下的多用户VHT传输。进一步的研究包括修改传输参数、天线阵列、信道场景、LOS与NLOS传播、路径损失建模和阴影建模。

在WLAN工具箱中有这个示例的另一个版本,它为三个用户使用三个独立的TGac衰落信道:802.11ac多用户MIMO预编码(WLAN工具箱)

附录

这个例子使用了来自WLAN工具箱™的以下助手函数:

选定的参考书目

  1. 信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改件4:在6ghz以下的频段内实现高吞吐量的增强。

  2. Perahia, E., R. Stacey,“下一代无线局域网:802.11n和802.11ac”,剑桥大学出版社,2013。

  3. IEEE Std 802.11™-2012信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。

  4. istwinner II,“WINNER II渠道模型”,D1.1.2, 2007年9月。

  5. Breit, G., H. Sampath, S. Vermani等,“TGac通道模型附录”,第12版。IEEE 802.11-09/0308r12, 2010年3月。