主要内容

的802.11ac多用户MIMO预编码

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

介绍

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

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

该示例使用用于三用户传输的信道反转技术,其中每个用户分配的不同数量的空间流和每个用户的不同速率参数。该系统的特征在于下图。

的示例生成的多用户发送波形,通过每个用户的信道其传递并为每个用户来计算错误的位的所接收信号进行解码。在此之前的数据传输,例如采用了空数据分组(NDP)传输到声音不同的信道和完美反馈的假设下确定的预编码矩阵。

仿真参数和配置

对于802.11ac,允许最多八个空间流。在此示例中使用了三个用户的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];最多4个用户的%MCSapepVec = [15120 8192 5400 6000];%负载,以字节为单位,用于4个用户chCodingVec = {“* *”“方法”“方法”“* *”};%信道编码为4个用户%通道和接收器参数chanMdl =“模型(一个”%TGAC衰落信道模型precodingType =“ZF”%预编码类型;ZF或MMSE信噪比= 38;%snr在db中eqMethod =“ZF”%均衡方法%适当地创建多用户VHT格式配置对象%索引为活动用户的向量值如果(numUsers==1) groupID = 0;其他的组ID = 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));

发射天线的数量设置为所有使用的时空流的总和。这意味着没有空时分组编码(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);

传输通道

所述TGAC多用户信道由所述接入点之间并在空间上分离站[独立的单用户MIMO信道的4].在这个例子中,相同的延迟分布模型-A信道被加到针对每个用户,即使个别用户可以体验不同的条件。在平坦衰落信道允许在不前端同步更简单的接收机。还假定每个用户的接收天线数相等的时空流数分配给他们。

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

%创建三个独立的通道TGAC =细胞(NUMUSERS位,1);chanSeeds = [1111 2222 3333 4444];%选择最多4个用户uInde​​x = [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)的角度为簇。该信道滤波延迟被存储,以允许其在接收器的补偿。在实践中,将用于符号定时估计。

%追加零,以允许信道滤波器延迟txNDPSig = [txNDPSig;0 (10, numTx)];为所有传输流对每个用户发出独立的声音rxNDPSig = cell(numUsers, 1);uIdx = 1:numUsers rxNDPChan = TGAC{uIdx}(txNDPSig);%添加WGN每个接收器rxNDPSig{uIdx} = awgn(rxNDPChan, snr);结束

信道状态信息的反馈

每个用户使用接收到的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, sum(numSTSVec), sum(numSTSVec));%NST-通过-NT-逐NSTSuIdx = 1:NUMUSERS stsIdx =总和(numSTSVec(1:uIdx-1))+(1:numSTSVec(uIdx));steeringMatrix(:,:,stsIdx)= {垫uIdx};%NST-通过-NT-逐NSTS结束%强制零或MMSE预编码解决方案如果STRCMP(precodingType,“ZF”) = 0;% Zero-forcing其他的delta =(numtx /(10 ^(snr / 10)))*眼睛(numtx);%MMSE结束我= 1:numST%信道反转预编码h =挤压(steeringMatrix(我::));steeringMatrix(i,:,:) = h/(h'*h + delta);结束%根据转向矩阵设置空间映射cfgVHTMU。SpatialMapping ='风俗';cfgVHTMU。SpatialMappingMatrix = permute(steeringMatrix,[1 3 2]);

数据传输

随机比特被用作单个用户的有效负载。单元阵列用于保存每个用户的数据位,txDataBits.对于多用户传输的各个用户的有效载荷被填充,使得传输持续时间对于所有用户是相同的。这种填充方法是在第9.12.6 [描述1].在此示例下,为了简化,有效载荷与零填充以为每个用户创建PSDU。

%创建的数据序列,一个用于每个用户txDataBits = cell(numUsers, 1);psduDataBits = cell(numUsers, 1);uIdx = 1: numUsers%生成有效载荷为每个用户txDataBits {uIdx} =兰迪([0 1],cfgVHTMU.APEPLength(uIdx)* 8,1,'int8');% Pad有效载荷与零形成一个PSDUpsduDataBits {uIdx} = [{txDataBits uIdx};...零((cfgvhtmu.psdulength(uidx)-cfgvhtmu.apeplength(uidx))* 8,1,'int8')];结束

使用格式配置,cfgvhtmu.如有转向矩阵,通过衰落信道传输数据。

%生成多用户VHT波形txsig = wlanwaveformgenerator(psdudatabits,cfgvhtmu);%通过每个用户衰落信道传输rxSig = cell(numUsers, 1);uIdx = 1: numUsers%追加零,以允许信道滤波器延迟rxSig {uIdx} = {TGAC} uIdx([txSig;零(10,numTx)]);结束

每用户数据恢复

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

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

%从配置中获取现场索引,在接收器时已知印第安纳州= wlanFieldIndices (cfgVHTMU);%单用户接收器恢复有效载荷位rxDataBits = cell(numUsers, 1);scaler = 0 (numUsers, 1);spAxes = gobjects(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);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(:)); IMAG(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)。';[〜,BER(uIdx)] = biterr(txDataBits {uIdx}(IDX),rxDataBits {uIdx}(IDX));DISP([“用户的误码率”num2str (uIdx)“:”num2str(BER(uIdx))]);结束rng(年代);%恢复RNG状态
用户1的误码率:0.00013228用户2的误码率:0用户3的误码率:0

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

结论与进一步探索

该示例显示了使用信道反转预编码技术的多用户传输配置、独立的每个用户信道建模和单个接收处理。

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

附录

此示例使用以下辅助功能:

选定的参考书目

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

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

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

  4. Breit,G.,H. Sampath,S.Vermani等,“TGAC频道模型编辑”,版本12. IEEE 802.11-09 / 0308R12,2010年3月。