生成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 (“级”)