主要内容

802.11捕获数据的OFDM信标接收机

此示例显示了能够恢复802.11的接收器设计™ 商用802.11硬件通过空中传输的非HT格式的OFDM信标数据包。信标数据包通常以非HT格式传输,即使对于HT[1.],甚高频[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(基带阅读器,中心频率/1e6)“兆赫”])disp(['采样率:'num2str(basebandReader.SampleRate/1e6)“Msps”])disp(['接收天线的数量:'num2str(basebandReader.numChannel)换行符])
中心频率:5785 MHz采样率:20 Msps接收天线数:1

A.非HTC前端对象执行前端处理和L-SIG解码。该对象配置有20 MHz的信道带宽以处理非HT数据包。仅支持一个接收天线。金宝app

rxFrontEnd=非HTfrontend(“信道带宽”,“CBW20”);

while循环用于处理样本块并恢复信标数据包,直到基带文件中没有更多可用数据。在循环的每次迭代中,从基带文件读取样本块,并由RX前端.RX前端执行前端处理并缓冲样本,直到检测到数据包并接收到有效负载。当有效载荷是真的吗,全部有效载荷已经被缓冲了RX前端返回变量以允许恢复数据包中的数据:

  • cfgNonHT包含从L-SIG恢复的数据包参数。

  • rxNonHTData是时域非HT数据场信号。

  • 香奈斯特包含从L-LTF获得的信道估计。

  • 噪声发生器是固定的噪波方差值。

使用以下方法从非HT数据字段样本中恢复分组有效负载位:wlanNonHTDataRecover。然后,通过验证和解码这些位WLANMPD代码恢复MAC帧参数。WLANMPD代码返回以下输出,确定接收的数据包是否通过FCS检查,以及接收的数据包是否为信标帧。

  • mpduCfg是类型的对象wlanMACFrameConfig包含从信标帧恢复的MAC帧参数。

  • 地位是类型的枚举地位当MPDU通过FCS检查时返回为“成功”,当MPDU未通过FCS检查时返回为“FCSFailed”。

如果检测到有效的信标,则显示解码的SSID。

%逐符号流处理numValidPackets=0;虽然~isDone(基带阅读器)%拉入一个OFDM符号,即80个样本数据=基带读取器();%执行前端处理和有效负载缓冲[payloadFull、cfgNonHT、RxNONHDATA、chanEst、noiseVar]=...rxFrontEnd(数据);如果有效载荷%使用迫零均衡恢复有效负载位recBits=WLANNONHTDATA恢复(rxNonHTData,chanEst,...noiseVar,cfgNonHT,“均衡法”,“ZF”);%解码和评估恢复的位[mpduCfg,~,status]=wlanMPDUDecode(recBits,cfgNonHT);如果strcmp(状态,“成功”)&strcmp(mpduCfg.FrameType,“灯塔”)frameBody=mpduCfg.ManagementConfig;%显示SSIDdisp([“SSID:”,frameBody.SSID])numValidPackets=numValidPackets+1;终止终止终止显示([num2str(numValidPackets),“找到有效的信标数据包”])释放(基带读取器);释放(rxFrontEnd);
找到SSID:MathWorks SDR SSID:MathWorks SDR SSID:MathWorks SDR 3有效信标数据包

进一步的探索

看见带有USRP®硬件的802.11 OFDM信标接收机例如,使用USRP处理实时信号。

附录

此示例使用以下辅助函数和对象:

精选书目

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

  2. IEEE P802.11ax™/D4.1信息技术标准草案-系统局域网和城域网之间的电信和信息交换-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范-修改件6:高效WLAN增强。