这个例子展示了一种接收器设计,能够从商用802.11硬件上以非ht格式通过空中传输的802.11™OFDM信标包。信标包通常以非HT格式传输,即使对于HT [1], VHT [1],及/或他[2)硬件能力。包信息(如SSID)在恢复过程中打印到命令行。
这个示例演示了如何使用WLAN工具箱™恢复真实世界的信号。它演示了一个接收器设计,包括同步、传输配置恢复和非ht数据包的有效载荷解码。本示例从包含捕获的基带波形的文件中恢复信标包。
恢复一个非ht包的步骤如下:
报文检测:在开始任何处理之前,首先必须检测报文。这是通过自动关联输入符号来实现的。由于每个802.11 OFDM包的前端包含一个称为L-STF的重复结构,因此当这个包出现时,相关会出现峰值。然后提取L-STF场并用于粗频率估计。
符号计时:一旦检测到一个包,将收集未来的符号并相互关联以定位L-LTF。由此产生的相关峰提供了准确的时间估计。一旦完整的L-LTF被定位,它被提取并用于信道估计和精细频率估计。
L-SIG解码:L-LTF之后的第一个OFDM符号是L-SIG字段。必须恢复并解码该字段,以确定以下有效负载的调制、码率和长度。该信息用于捕获L-SIG后完整有效载荷的正确数据量,并对该信息进行解码。
有效负载解码:L-SIG后的所有OFDM符号都缓冲到由L-SIG字段确定的长度。在捕获所有符号后,将其解调并解码为源位。然后对源位进行评估。此评估包括帧检查序列(FCS)标头和正文的验证和提取。如果数据包为子类型beacon,则将为恢复的数据包打印SSID等摘要信息。
一旦接收到一个完整的包,或者在处理链中出现任何故障,接收端将返回到包检测来寻找更多的包。这个过程在信号持续期间重复。
在本例中,处理空中捕获以恢复信标帧。使用带有一个接收天线的射频接口以20毫秒/秒的采样率捕获Wi-Fi®信号。捕获的波形存储在二进制基带文件中。该文件是使用创建的comm.BasebandFileWriter
.
捕获的波形以流方式处理。在每次迭代中都要抽取一块样本进行处理。检索尽可能多的有效数据包。comm.BasebandFileReader
用于从二进制基带文件中读取样本块。
%创建一个对象以流式传输文件中的数据basebandReader=comm.BasebandFileReader(...“文件名”,“nonHTBeaconRxData.bb”,...“样品性能框架”, 80);%在20 MHz时,1个OFDM符号的采样数
捕获波形中的中心频率、采样率和通道数由comm.BasebandFileReader对象提供。
disp(['中心频率:'num2str (basebandReader.CenterFrequency / 1 e6)“兆赫”]) disp ([的采样率:num2str (basebandReader.SampleRate / 1 e6)“Msps”]) disp (['接收天线的数量:'num2str(basebandReader.numChannel)换行符])
中心频率:5785 MHz采样率:20 Msps接收天线数:1
一个nonHTFrontEnd对象进行前端处理和L-SIG解码。对象被配置为20 MHz的通道带宽,用于处理非ht报文。只支持一根接收天线。金宝app
rxFrontEnd=非HTfrontend(“ChannelBandwidth”,“CBW20”);
while循环用于处理样本块并恢复信标数据包,直到基带文件中没有更多可用数据。在循环的每次迭代中,从基带文件读取样本块,并由rxFrontEnd
.rxFrontEnd
执行前端处理和缓冲样本,直到检测到数据包并接收到有效负载。当有效载荷
是真的吗,全部有效载荷已经被缓冲了rxFrontEnd
返回变量以允许恢复数据包中的数据:
cfgNonHT
包含从L-SIG恢复的报文参数。
rxNonHTData
是时域非HT数据场信号。
陈
包含从L-LTF获得的信道估计。
噪声发生器
是固定的噪波方差值。
使用以下方法从非HT数据字段样本中恢复分组有效负载位:wlanNonHTDataRecover
。然后,通过验证和解码这些位wlanMPDUDecode
恢复MAC帧参数。wlanMPDUDecode
返回以下输出,确定接收的数据包是否通过FCS检查,以及接收的数据包是否为信标帧。
mpduCfg
是类型的对象wlanMACFrameConfig
包含从信标帧中恢复的MAC帧参数。
地位
枚举的类型是地位当MPDU通过FCS检查时返回'Success',当MPDU通过FCS检查时返回'FCSFailed'。
如果检测到有效的信标,则显示解码的SSID。
%逐符号流处理numValidPackets=0;虽然~结束(basebandReader)%拉入一个OFDM符号,即80个样本数据=基带读取器();%执行前端处理和有效负载缓冲[payloadFull, cfgNonHT, rxNonHTData, chanEst, noiseVar] =...rxFrontEnd(数据);如果有效载荷%使用迫零均衡恢复有效负载位recBits=WLANNONHTDATA恢复(rxNonHTData,chanEst,...noiseVar,cfgNonHT,“EqualizationMethod”,“ZF”);解码和评估恢复位[mpduCfg,~,status]=wlanMPDUDecode(recBits,cfgNonHT);如果strcmp(状态,“成功”)&strcmp(mpduCfg.FrameType,“灯塔”) frameBody = mpduCfg.ManagementConfig;%显示SSIDdisp([“SSID:”,frameBody.SSID])numValidPackets=numValidPackets+1;结束结束结束disp ([num2str (numValidPackets),“找到有效的信标包”)发布(basebandReader);释放(rxFrontEnd);
SSID: MathWorks-SDR SSID: MathWorks-SDR SSID: MathWorks-SDR 3找到有效信标包
看到802.11 OFDM信标接收器与USRP®硬件为使用USRP处理实时信号的示例。
这个例子使用了下面的辅助函数和对象:
信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。
IEEE P802.11ax™/D4.1信息技术标准草案-系统局域网和城域网之间的电信和信息交换-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范-修改件6:高效WLAN增强。