主要内容

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

这个例子展示了一种接收器设计,能够从商用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循环用于处理样本块并恢复信标数据包,直到基带文件中没有更多可用数据。在循环的每次迭代中,从基带文件读取样本块,并由rxFrontEndrxFrontEnd执行前端处理和缓冲样本,直到检测到数据包并接收到有效负载。当有效载荷是真的吗,全部有效载荷已经被缓冲了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处理实时信号的示例。

附录

这个例子使用了下面的辅助函数和对象:

精选书目

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

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