主要内容

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

这个例子展示了一种接收器设计,能够从商用802.11硬件上以非ht格式通过空中传输的802.11™OFDM信标包。信标包通常以非HT格式传输,即使对于HT [1], VHT [1,和/或HE [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)验证和头部和正文的提取。如果是子类型信标报文,则会打印回收报文的SSID等汇总信息。

一旦接收到一个完整的包,或者在处理链中出现任何故障,接收端将返回到包检测来寻找更多的包。这个过程在信号持续期间重复。

捕获数据的流处理

在本例中,处理了一个空中捕获以恢复信标帧。使用带有一个接收天线的射频接口以20 Msps的采样率捕获Wi-Fi®信号。捕获的波形存储在二进制基带文件中。该文件是使用comm.BasebandFileWriter

捕获的波形以流方式处理。在每次迭代中都要抽取一块样本进行处理。检索尽可能多的有效数据包。comm.BasebandFileReader用于从二进制基带文件中读取样本块。

%创建一个对象来流化文件中的数据basebandReader = comm.BasebandFileReader (...“文件名”“nonHTBeaconRxData.bb”...“SamplesPerFrame”, 80);%在20 MHz时,1个OFDM符号的采样数

捕获的波形中的中心频率、采样率和通道数由comm.BasebandFileReader对象提供。

disp ([的中心频率:num2str (basebandReader.CenterFrequency / 1 e6)“兆赫”]) disp ([的采样率:num2str (basebandReader.SampleRate / 1 e6)“议员”]) disp ([接收天线数量:num2str (basebandReader.NumChannels)换行符)
中心频率:5785 MHz采样率:20 Msps接收天线数:1个

一个nonHTFrontEnd对象进行前端处理和L-SIG解码。对象被配置为20 MHz的通道带宽,用于处理非ht报文。只支持一根接收天线。万博1manbetx

rxFrontEnd = nonHTFrontEnd (“ChannelBandwidth”“CBW20”);

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

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

  • rxNonHTData为时域非ht数据场信号。

  • 包含从L-LTF获得的信道估计。

  • noiseVar为固定的噪声方差值。

使用非ht数据字段样本恢复数据包有效载荷位wlanNonHTDataRecover.然后这些位被验证和解码wlanMPDUDecode恢复MAC帧参数。wlanMPDUDecode返回以下输出,确定接收的包是否通过了FCS检查,以及接收的包是否是信标帧。

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

  • 状态枚举的类型是状态当MPDU通过FCS检查时返回'Success',当MPDU通过FCS检查时返回'FCSFailed'。

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

符号逐符号流处理numValidPackets = 0;~结束(basebandReader)%输入一个OFDM符号,即80个样本data = basebandReader ();%执行前端处理和有效负载缓冲[payloadFull, cfgNonHT, rxNonHTData, chanEst, noiseVar] =...rxFrontEnd(数据);如果payloadFull%使用强制零均衡恢复有效负载位recBits = wlanonhtdatarecover (rxNonHTData, chanEst,)...noiseVar cfgNonHT,“EqualizationMethod”“ZF”);解码和评估恢复位[mpduCfg, ~, status] = wlanmpdudcode (recBits, cfgNonHT);如果比较字符串(状态,'成功') & & strcmp (mpduCfg。FrameType,“灯塔”) frameBody = mpduCfg.ManagementConfig;%显示名称disp ([的名称: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部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。