802.11ac多用户MIMO预编码

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

介绍

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

这种同步传输具有更高的复杂性,因为成功接收单个用户的有效负载需要预编码,也称为发射端波束形成。预编码假设发射机处已知信道状态信息(CSI)。如802.11ac发射波束形成例如,用于确定多用户传输中每个用户的CSI。每个用户将其各自的CSI反馈给波束形成器。波束形成器使用来自所有用户的CSI设置预编码(空间映射)矩阵,以用于后续数据传输。

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

该示例生成多用户传输波形,每个用户通过一个信道,并对每个用户接收的信号进行解码,以计算错误位。在数据传输之前,该示例使用空数据包(NDP)在完全反馈的假设下,将声音传输到不同的信道,并确定预编码矩阵。

仿真参数和配置

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

s=rng(21);%为重复性设置RNG种子%传输参数chanBW=“CBW80”;%信道带宽numUsers=3;%活动用户数numSTSAll=[3 1 2];%4个用户的流数userPos=[0123];%最多4个用户的用户位置mcsVec=[4 6 2];%最多4个用户的MCSapepVec=[15120819254006000];%4个用户的有效负载(字节)chCodingVec={“密件抄送”,“自民党”,“自民党”,“密件抄送”};%4个用户的信道编码%信道和接收机参数香奈儿=“A型”;%TGac衰落信道模型预编码类型=“ZF”;%预编码类型;ZF或MMSE信噪比=38;%信噪比(dB)eqMethod=“ZF”;%均衡法%适当地创建多用户VHT格式配置对象%为活动用户建立向量值索引如果(numUsers==1)groupID=0;其他的groupID=2;终止numSTSVec=numSTSAll(1:numUsers);numTx=sum(numSTSVec);cfgVHTMU=wlanVHTConfig(“信道带宽”,chanBW,...“裸体者”,缪斯家,...“Numtransmitatenenas”,numTx,...“GroupID”,groupID,...“NumSpaceTimeStreams”,numSTSVec,...“用户位置”,userPos(1:numUsers),...“MCS”,mcsVec(1:numUsers),...“APEPLength”,apepVec(1:numUsers),...“信道编码”,chCodingVec(1:numUsers));

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

探测(NDP)配置

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

%VHT探测(NDP)配置,用于相同数量的流cfgVHTNDP=wlanVHTConfig(“信道带宽”,chanBW,...“裸体者”1....“Numtransmitatenenas”,numTx,...“GroupID”, 0,...“NumSpaceTimeStreams”,总和(numSTSVec),...“MCS”, 0,...“APEPLength”, 0);

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

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

传输通道

TGac多用户信道由接入点和空间上分离的站之间的独立单用户MIMO信道组成[4.]。在此示例中,相同的延迟配置文件模型—每个用户都应用了一个信道,即使单个用户可能经历不同的条件。平坦衰落信道使接收机更简单,无需前端同步。还假设每个用户的接收天线的数量等于分配给它们的空时流的数量。

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

%创建三个独立的频道TGAC=细胞(numUsers,1);chanSeeds=[111122223344444];%为最多4个用户选择uIndex=[105 2 1];%为最多4个用户选择钱德雷=零(numUsers,1);对于uIdx=1:numUsers TGAC{uIdx}=wlanTGacChannel(...“信道带宽”,cfgVHTMU.ChannelBandwidth,...“延迟配置文件”,chanMdl,...“用户索引”,uIndex(uIdx),...“Numtransmitatenenas”,numTx,...“numreceiveantens”,numSTSVec(uIdx),...“随机流”,“带种子的mt19937ar”,...“种子”,chanSeeds(uIdx),...“采样器”,wlanSampleRate(cfgVHTMU),...“传输接收距离”,5);chanInfo=info(TGAC{uIdx});chanDelay(uIdx)=chanInfo.ChannelFilterDelay;终止

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

%附加零以允许信道滤波器延迟txNDPSig=[txNDPSig;零(10,numTx)];%为所有传输流的每个用户设置独立通道rxNDPSig=单元(数值,1);对于uIdx=1:numUsers rxNDPChan=TGAC{uIdx}(txNDPSig);%每个接收器添加WGNrxNDPSig{uIdx}=awgn(rxNDPChan,snr);终止

信道状态信息反馈

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

mat=单元(numUsers,1);对于uIdx=1:numUsers%根据每个用户收到的信号计算反馈矩阵mat{uIdx}=vhtsif反馈(rxNDPSig{uIdx}(chanDelay(uIdx)+1:end,:),...cfgVHTNDP、uIdx、numSTSVec);终止

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

%将每个用户的CSI打包到矩阵中numST=长度(mat{1});%子载波数steeringMatrix=0(numST,sum(numSTSVec),sum(numSTSVec));%由新界北至新界北至新界北对于uIdx=1:numUsers stsIdx=sum(numSTSVec(1:uIdx-1))+(1:numSTSVec(uIdx));steeringMatrix(:,:,stsIdx)=mat{uIdx};%由新界北至新界北至新界北终止%迫零或MMSE预编码解决方案如果strcmp(预编码型,“ZF”)δ=0;%迫零其他的delta=(numTx/(10^(snr/10))*眼(numTx);%彩信终止对于i=1:numST%信道反转预编码h=挤压(steeringMatrix(i,:,:);steeringMatrix(i,:,:)=h/(h'*h+delta);终止%基于转向矩阵设置空间映射空间映射=“习俗”; cfgVHTMU.SpatialMappingMatrix=permute(steeringMatrix[1 3 2]);

数据传输

随机位用作单个用户的有效载荷。一个单元阵列用于保存每个用户的数据位,txDataBits.对于多用户传输,对单个用户有效负载进行填充,以使所有用户的传输持续时间相同。本手册第9.12.6节描述了该填充过程[1.].在本例中,为简单起见,有效负载用零填充,以为每个用户创建PSDU。

%创建数据序列,每个用户一个txDataBits=单元(numuers,1);psduDataBits=单元(numuers,1);对于uIdx=1:numUsers%为每个用户生成有效负载txDataBits{uIdx}=randi([01],cfgVHTMU.APEPLength(uIdx)*8,1,“int8”);%用零填充有效负载以形成PSDUpsduDataBits{uIdx}=[txDataBits{uIdx};...零((cfgVHTMU.PSDULength(uIdx)-cfgVHTMU.APEPLength(uIdx))*8,1,“int8”)];终止

使用格式配置,cfgVHTMU,通过转向矩阵,数据在衰落信道上传输。

%生成多用户VHT波形txSig=WLANWAVEORMG发生器(psduDataBits,cfgVHTMU);%通过每用户衰落信道传输rxSig=单元(numuers,1);对于uIdx=1:numUsers%附加零以允许信道滤波器延迟rxSig{uIdx}=TGAC{uIdx}([txSig;零(10,numTx)]);终止

每个用户的数据恢复

对每个用户的接收信号分别进行处理。该示例假定不存在前端损伤,并且为了简单起见,接收机知道传输配置。

用户编号指定为传输解码的感兴趣用户。这还用于索引用户特定的配置对象的向量属性。

%从配置中获取字段索引,假设接收器已知ind=WLANFIELDICES(cfgVHTMU);%单用户接收机恢复有效负载位rxDataBits=单元(numuers,1);定标器=零(定标器,1);spAxes=gobjects(总和(numSTSVec),1);hfig=图(“姓名”,“每流均衡符号星座”);对于uIdx=1:numUsers%每个接收器添加WGNrxNSig=awgn(rxSig{uIdx},snr);rxNSig=rxNSig(chanDelay(uIdx)+1:end,:);%用户时空流stsU=numSTSVec(uIdx);%基于VHT-LTF执行信道估计rxVHTLTF=rxNSig(ind.VHTLTF(1):ind.VHTLTF(2),:);demovhtltf=wlanvhtltf解调(rxvhttf,chanBW,numSTSVec);chanEst=wlanvhtltf信道估计(demovhtltf,chanBW,numSTSVec);%获得单流信道估计chanEstSSPilots=vhtSingleStreamChannelEstimate(解调VHTLTF、cfgVHTMU);%从波形中提取VHT数据样本rxVHTData=rxNSig(ind.VHTData(1):ind.VHTData(2),:);%估计VHT数据场中的噪声功率nVar=vhtNoiseEstimate(rxVHTData、chanEstSSPilots、cfgVHTMU);%恢复VHT数据字段中的信息位[rxDataBits{uIdx},~,eqsym]=wlanVHTDataRecover(rxVHTData,...chanEst、nVar、cfgVHTMU、uIdx、,“均衡法”,eqMethod,...“PilotPhaseTracking”,“没有”,“LDPCDecoding方法”,“分层bp”);%为每个用户的所有流绘制均衡符号scaler(uIdx)=ceil(max(abs([real(eqsym(:));imag(eqsym(:)])));对于i=1:stsU子图(numUsers,最大值(numSTSVec),(uIdx-1)*最大值(numSTSVec)+i);绘图(重塑(等式SYM(:,:,i),[],1),'.');轴线广场SPAX(总和([0 numSTSVec(1:(uIdx-1)))+i)=gca;%存储轴手柄头衔([“用户”num2str(uIdx)'溪流'num2str(i)];网格在…上;终止终止%所有子地块和比例图形的比例轴对于i=1:numel(spAxes)xlim(spAxes(i),[-max(scaler)max(scaler)];ylim(spAxes(i),[-max(scaler)max(scaler)];终止pos=获取(hfig,“位置”);设置(hfig,“位置”,[pos(1)*0.7 pos(2)*0.71.3*pos(3)1.3*pos(4)];

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

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

%将恢复的位与每用户APEPLength信息位进行比较ber=inf(1,数值);对于uIdx=1:numUsers idx=(1:cfgVHTMU.APEPLength(uIdx)*8)。;[~,ber(uIdx)]=biterr(txDataBits{uIdx}(idx),RXDDATABITS{uIdx}(idx));disp(['用户的位错误率'num2str(uIdx)': 'num2str(ber(uIdx))];终止rng(s);%恢复RNG状态
用户1的误码率:0.00013228用户2的误码率:0用户3的误码率:0

在噪声方差内的少量比特错误指示每个用户的所有流的成功数据解码,尽管在各个流中可以看到EVM的变化。

结论与进一步探讨

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

进一步的探索包括对传输和信道参数的修改、备用预编码技术、更真实的接收机和包含延迟和量化的反馈机制。

附录

此示例使用以下帮助器函数:

精选书目

  1. IEEE标准802.11ac™-2013 IEEE信息技术标准-系统间电信和信息交换-局域网和城域网-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范.修改件4:在低于6GHz频带内运行的超高吞吐量增强。

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

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

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