主要内容

生成VHT多用户波形

这个例子展示了如何从单个组件生成VHT多用户波形。函数生成相同的波形wlanWaveformGenerator函数。

创建VHT配置对象,指定3个用户和3个发射天线。

vht = wlanVHTConfig(“NumUsers”3,“NumTransmitAntennas”3);

将时空流的个数设置为向量[1 1 1],表示给每个用户分配一个时空流。设置用户位置为[0 1 2]。设置组ID为5。组ID取值范围1 ~ 62适用于多用户操作。

vht。NumSpaceTimeStreams = [1 1 1];vht。UserPositions = [0 1 2];vht。GroupID = 5;

为每个用户设置不同的MCS值。

vht。MCS = [0 2 4];

APEP长度分别为2000、1400和1800字节。每个元素对应于分配给每个用户的字节数。

vht。APEPLength = [2000 1400 1800]
vht = wlanVHTConfig with properties: ChannelBandwidth: 'CBW80' NumUsers: 3 UserPositions: [0 12] numtransmitantenna: 3 NumSpaceTimeStreams: [1 1 1 1] SpatialMapping: 'Direct' MCS: [0 2 4] ChannelCoding: 'BCC' APEPLength: [2000 1400 1800] GuardInterval: 'Long' GroupID: 5 Read-only properties: PSDULength: [2000 6008 12019]

显示三个用户的PSDU长度。PSDU长度是APEP长度和MCS值的函数。

vht。PSDULength
ans =1×32000 6008 12019

显示VHT波形的场指数。

ind = wlanFieldIndices(vht)
印第安纳州=带字段的结构:LSTF: [1 640] LLTF: [641 1280] LSIG: [1281 1600] VHTSIGA: [1601 2240] VHTSTF: [2241 2560] VHTLTF: [2561 3840] VHTSIGB: [3841 4160] VHTData: [4161 48000]

创建组成VHT波形的各个字段。

lstf = wlanLSTF(vht);lltf = wlanLLTF(vht);lsig = wlanLSIG(vht);[vhtsigA,sigAbits] = wlanVHTSIGA(vht);vhtstf = wlanVHTSTF(vht);vhtltf = wlanVHTLTF(vht);[vhtsigB,sigBbits] = wlanVHTSIGB(vht);

提取前两个VHT-SIG-A信息位,并将它们转换为十进制等价。

bw = bi2de(double(sigAbits(1:2)'))
Bw = 2

值2对应于80mhz的带宽(参见wlanVHTSIGA).

提取VHT-SIG-A信息位5到10,并将其转换为十进制等价。

groupid = bi2de(double(sigAbits(5:10)'))
Groupid = 5

提取的组ID 5与VHT配置对象中对应的属性相匹配。

从VHT-SIG-B信息位中提取包长度。对于80 MHz带宽的多用户操作,前19位包含APEP长度信息。将字段长度转换为十进制等价物。将它们乘以4,因为VHT-SIG-B字段的长度是以4字节为单位表示的。

pktLen = bi2de(double(sigBbits(1:19,:)'))*4
pktLen =3×12000 1400 1800

确认提取的APEP长度与配置对象中设置的值匹配。

isequal (vht.APEPLength pktLen”)
ans =逻辑1

从VHT-SIG-B信息位中提取MCS值。MCS组件由比特20到23指定。

mcs = bi2de(double(sigBbits(20:23,:)'))
mcs =3×10 2 4

这些值与VHT配置对象中设置的值相对应。

创建三个数据序列,每个用户一个。

d1 = randi([0 1],vht.PSDULength(1)*8,1);d2 = randi([0 1],vht.PSDULength(2)*8,1);d3 = randi([0 1],vht.PSDULength(3)*8,1);

使用这些数据序列生成VHT数据字段。

vhtdata = wlanVHTData({d1 d2 d3},vht);

在禁用窗口的情况下生成多用户VHT波形。从波形中提取数据字段。

wv = wlanWaveformGenerator({d1 d2 d3},vht,“WindowTransitionTime”, 0);wvdata = wv(ind.VHTData(1):ind.VHTData(2),:);

确认两种生成方法产生相同的结果。

isequal (vhtdata wvdata)
ans =逻辑1

通过绘制波形大小来可视化波形。

T =((1:长度(wv))'-1)/80e6;情节(t, abs(西弗吉尼亚州))包含(“时间(s)”) ylabel (“级”

图中包含一个轴对象。axis对象包含3个line类型的对象。