主要内容

802.11AC多用户MIMO预编码

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

介绍

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

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

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

该示例生成多用户发送波形,通过每个用户通过频道并对每个用户进行解码,以计算错误的比特。在数据传输之前,该示例使用NULL数据分组(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 = {“* *”“方法”“方法”“* *”};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));

发射天线的数量设置为所有使用的时空流的总和。这意味着没有空时分组编码(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 = CELL(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)角度。存储信道滤波延迟以允许其在接收器处的补偿。在实践中,将使用符号定时估计。

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

频道状态信息反馈

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

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

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

%将每个用户CSI包装为矩阵numST =长度(垫{1});%子载波数量steeringMatrix = 0 (numST, sum(numSTSVec), sum(numSTSVec));%nst-by-nt-nstsUIDX = 1:NUMUSERS STSIDX = SUM(NumStsvec(1:UIDX-1))+(1:NumStsvec(UIDX));steeringmatrix(:,:,stsidx)= mat {uidx};%nst-by-nt-nsts结束%强制零或MMSE预编码解决方案如果Strcmp(预编码类型,“ZF”) = 0;% Zero-forcing其他的delta = (numTx/(10^(snr/10)))) * eye(numTx);%mmse.结束我= 1:numST%信道反转预编码h =挤压(steeringMatrix(我::));steeringMatrix(i,:,:) = h/(h'*h + delta);结束%根据转向矩阵设置空间映射cfgVHTMU。SpatialMapping ='风俗';cfgVHTMU。SpatialMappingMatrix = permute(steeringMatrix,[1 3 2]);

数据传输

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

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

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

%生成多用户VHT波形txSig = wlanWaveformGenerator(psduDataBits, cfgVHTMU);%通过每个用户衰落信道传输rxSig = cell(numUsers, 1);uIdx = 1: numUsers%附加zeroes允许通道过滤器延迟rxsig {uidx} = tgac {uidx}([txsig; zeros(10,numtx)]);结束

每用户数据恢复

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

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

从配置中获取字段索引,假设在接收端已知印第安纳州= wlanFieldIndices (cfgVHTMU);%单用户接收器恢复有效载荷位rxDataBits = cell(numUsers, 1);scaler = 0 (numUsers, 1);spAxes = gobjects(sum(numSTSVec), 1);hfig =图(“名字”“逐流均衡符号星座”);uIdx = 1: numUsers%每台接收器添加WGNrxNSig = 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 = VHTSINGLESTREAMCHANNELESTIMATIOM(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,...'先行者屏蔽'“没有”'ldpcdecodingmethod'“layered-bp”);%绘制每个用户的所有流的均衡符号缩放器(UIDX)= CEIL(MAX(ABS(ABS(eqsym(:)); impt(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.apeplencth(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,“下一代无线局域网: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月。