主要内容

802.11ac多用户MIMO预编码

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

介绍

802.11ac支金宝app持多达4个用户和多达8个发射天线的下行(接入点到站)多用户传输,以增加链路的总吞吐量[1].基于用户的预定传输时间,调度器查找其他较小的数据包准备用于传输到其他用户。如果可用,它会通过相同的间隔调度这些用户,这减少了多个传输所需的总时间。

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

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

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

仿真参数及配置

对于802.11ac,最多允许8个空间流。本例中使用了用于三个用户的6x6 MIMO配置,其中第一个用户有三个流,第二个用户有一个流,第三个用户有两个分配给它的流。为多达四个用户指定不同的速率参数和有效载荷大小作为矢量参数。根据活动用户的数量,在传输配置中对这些数据进行了适当的索引。

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 = {'贝卡''LDPC''LDPC''贝卡'};% 4用户信道编码%通道和接收器参数chanMdl ='型号-A'TGac衰落信道模型precodingtype =“ZF”%预编码类型;ZF和MMSE的SNR = 38;%信噪比(dB)eqMethod =“ZF”%均衡方法%适当地创建多用户VHT格式配置对象%索引到活动用户的向量值中如果(NUMUSERS == 1)GroupID = 0;其他的groupID = 2;结束numstsvec = numstsall(1:numusers);numtx = sum(numstsvec);cfgvhtmu = wlanvhtconfig('信道带宽'chanBW,......'麻木商',麻木,......“NumTransmitAntennas”,numtx,......“GroupID”,groupid,......“NumSpaceTimeStreams”numSTSVec,......“UserPositions”,Userpos(1:Numusers),......“主持人”mcsVec (1: numUsers),......“APEPLength”,apepvec(1:numusers),......“ChannelCoding”,chcodingvec(1:numusers));

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

听起来(NDP)配置

为了预编码,首先用于确定用户(接收器)所经历的频道。该频道状态信息被发送回发射机,以便用于后续数据传输。假设通道在两个传输中变化缓慢。对于多用户传输,相同的NDP(空数据包)被发送到每个计划的用户[2].

VHT探测(NDP)配置,用于相同数量的流cfgVHTNDP = wlanVHTConfig ('信道带宽'chanBW,......'麻木商',1,......“NumTransmitAntennas”,numtx,......“GroupID”,0,......“NumSpaceTimeStreams”,sum(numstsvec),......“主持人”,0,......“APEPLength”, 0);

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

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

传输通道

TGac多用户信道由接入点和空间分离站之间的独立单用户MIMO信道组成[4].在本例中,对每个用户应用相同的延迟轮廓模型a信道,尽管每个用户可能会遇到不同的条件。平坦衰落信道允许更简单的接收机,而不需要前端同步。还假设每个用户接收天线的数量等于分配给他们的时空流的数量。

示例中使用单元格数组存储每个用户元素,允许灵活数量的用户。这里作为一个示例,每个用户的TGac通道的每个实例都存储为单元格数组的一个元素。

%创建三个独立频道TGAC = cell(numUsers, 1);chanSeeds = [1111 2222 3333 4444];为最多4个用户选择%uIndex = [10 5 2 1];为最多4个用户选择%Chandelay =零(麻木,1);uIdx = 1:numUsers TGAC{uIdx} = wlanTGacChannel......'信道带宽', cfgVHTMU。ChannelBandwidth,......“DelayProfile”,chanmdl,......“UserIndex”,Uindex(UIDX),......“NumTransmitAntennas”,numtx,......'numreceiveantennas'numSTSVec (uIdx),......'ronorstream'“与种子mt19937ar”......“种子”chanSeeds (uIdx),......'采样率'wlanSampleRate (cfgVHTMU),......“TransmitReceiveDistance”5);chaninfo =信息(tgac {uidx});Chandelay(Uidx)= chaninfo.channelfilterdelay;结束

每个用户的通道使用不同的种子来生成随机数。指定一个不同的用户索引,以允许随机角度偏移应用到集群的到达(AoA)和离开(AoD)角度。存储信道滤波延迟,以便在接收端对其进行补偿。在实际应用中,通常采用符号时序估计。

%附加零以允许通道过滤器延迟txNDPSig = [txNDPSig;0 (10, numTx)];%发出所有传输流的每个用户的独立通道rxndpsig = cell(numusers,1);UIDX = 1:NUMUSERS RXNDPCHAN = TGAC {UIDX}(TXNDPSIG);每个接收器增加WGNrxndpsig {uidx} = awgn(rxndpchan,snr);结束

通道状态信息反馈

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

垫=细胞(麻木,1);UIDX = 1:麻木器%根据每个用户收到的信号计算反馈矩阵垫{uIdx} = vhtCSIFeedback (rxNDPSig {uIdx} (chanDelay (uIdx) + 1:,:),......cfgvhtndp,uidx,numstsvec);结束

假设完美的反馈,没有CSI的压缩或量化损耗,发射器使用基于零强制或最小均线 - 误差(MMSE)的预编码技术计算用于数据传输的转向矩阵。这两种方法都试图取消对感兴趣的用户的流内干扰和其他用户引起的干扰。基于MMSE的方法避免了零强制技术固有的噪声增强。结果,它在低SNR时表现更好。

%将每个用户CSI打包成一个矩阵numST =长度(垫{1});%子载波数steeringmatrix = zeros(numst,sum(numstsvec),sum(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”)delta = 0;%零强制其他的delta = (numTx/(10^(snr/10)))) * eye(numTx);%的患者结束我= 1:numST%信道反转预编码h =挤压(steeringmatrix(i,:,:));steeringmatrix(我,:,:) = h /(h'* h + delta);结束%设置基于转向矩阵的空间映射cfgvhtmu.spatialmapping =.“自定义”;cfgvhtmu.spatialmappingmatrix = perfute(steeringmatrix,[1 3 2]);

数据传输

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

%创建数据序列,每个用户一个Txdatabits = Cell(Numusers,1);psdudatabits = cell(麻木器,1);UIDX = 1:麻木器%为每个用户生成有效负载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);%通过每个用户衰落通道传输rxsig = cell(Numusers,1);UIDX = 1:麻木器%附加零以允许通道过滤器延迟rxSig {uIdx} = TGAC {uIdx} ([txSig;0 (10, numTx)]);结束

每用户数据恢复

每个用户的接收信号单独处理。该示例假设没有前端损伤,并且接收器以简单起见,发送配置是简单的。

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

从配置中获取字段索引,假设在接收端已知印第安纳州= wlanFieldIndices (cfgVHTMU);%单用户接收器恢复有效载荷位rxdatabits = cell(Numusers,1);缩放器=零(麻木器,1);spaxes = gobjects(总和(numstsvec),1);hfig = figure(“名字”“逐流均衡符号星座”);UIDX = 1:麻木器每个接收器增加WGNrxNSig = awgn(rxSig{uIdx},信噪比);rxNSig = rxNSig(chanDelay(uIdx)+1:结束,:);%用户时空流stsU = numSTSVec (uIdx);%基于VHT-LTF进行信道估计rxVHTLTF = rxNSig (ind.VHTLTF (1): ind.VHTLTF (2):);demodVHTLTF = wlanvhtltf解调(rxVHTLTF, chanBW, numSTSVec);chanEst = wlanVHTLTFChannelEstimate(demodVHTLTF, chanBW, numSTSVec);%获得单流频道估计chanEstSSPilots = vhtSingleStreamChannelEstimate (demodVHTLTF cfgVHTMU);%从波形中提取VHT数据样本rxvhtdata = rxnsig(ind.vhtdata(1):Ind.vhtdata(2),:);估算VHT数据域的噪声功率据nVar = vhtNoiseEstimate (rxVHTData chanEstSSPilots cfgVHTMU);%恢复VHT数据字段中的信息位[rxDataBits{uIdx}, ~, eqsym] = wlanVHTDataRecover(rxhtdata,......chanEst, nVar, cfgVHTMU, uIdx,“EqualizationMethod”eqMethod,......“PilotPhaseTracking”'没有任何'“LDPCDecodingMethod”“layered-bp”);%绘制每个用户的所有流的均衡符号定标器(uIdx) =装天花板(max (abs([真实(eqsym (:));图像放大(eqsym (:))))));i = 1:stsU subplot(numUsers, max(numSTSVec), (uIdx-1)*max(numSTSVec)+i);情节(重塑(eqsym(:,:我),[],1),“。”);轴广场spax(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 = get(hfig,“位置”);集(hfig,“位置”, [pos(1)*0.7 pos(2)*0.7 1.3*pos(3) 1.3*pos(4)];

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

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

%将恢复位与每个用户Apepleencth信息位进行比较ber = inf(1, numUsers);uIdx = 1:numUsers idx = (1:cfgVHTMU.APEPLength(uIdx)*8).';[~, ber(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. 信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改件4:在6ghz以下的频段内实现高吞吐量的增强。

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

  3. IEEE STD 802.11™-2012 IEEE信息技术标准 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格。

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