该示例显示了一个接收器设计,可以以商业802.11硬件从空中传输的非HT格式中恢复802.11™OFDM信标包。信标包通常以非HT格式传输,即使是HT [1],vht [1]和/或他[2功能硬件。在恢复期间打印到命令行之类的数据包信息。
此示例说明了使用WLAN Toolbox™来恢复真实信号。它展示了一种接收器设计,包括同步,传输配置恢复和非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之类的摘要信息。
一旦收到完整数据包或处理链期间发生任何故障,接收器将返回到数据包检测以搜索更多数据包。在信号持续时间重复该过程。
在该示例中,处理空中捕获以恢复信标帧。使用RF接口捕获Wi-Fi®信号,RF接口以一个接收天线为20 MSP的采样率。捕获的波形存储在二进制基带文件中。该文件使用comm.basebandfilewriter.
。
捕获的波形以流式方式处理。在每次迭代中拉动一块样品进行处理。尽可能多地检索许多有效数据包。comm.basebandfilereader.
用于读取来自二进制基带文件的样本块。
%创建一个对象来从文件中排序数据baseBandReader = Comm.BaseBandFilereader(......'文件名'那'nonhtbeaconrxdata.bb'那......'samplesperframe',80);%在20 MHz的1个OFDM符号中的百分比数量
Comm.BaseBandFilereader对象提供捕获波形中的中心频率,采样率和通道数。
DISP(['中心频率:'num2str(baseBardReader.Centerfrequency / 1E6)'MHz'])disp(['采样率: 'num2str(baseBardReader.Samplege / 1E6)'msps'])disp(['接收天线数:'num2str(basebandreader.numchannels)newline])
中心频率:5785 MHz采样率:20 MSPS接收天线数:1
一种unhtfrontend.对象执行前端处理和L-SIG解码。该对象配置有20MHz的信道带宽以处理非HT分组。仅支持一个接收天线。金宝app
rxfrontend = nonhtfrontend('信道带宽'那'CBW20');
一段时间循环用于处理样本块并恢复信标包,直到基带文件中没有更多数据。在循环的每个迭代中,从基带文件读取一块样本并由地处理rxfrontend.
。rxfrontend.
执行前端处理和缓冲器样本,直到检测到数据包并接收有效载荷。什么时候有效载荷
是真的,完整的有效载荷缓冲了rxfrontend.
返回变量以允许要恢复数据包中的数据:
cfgnonht.
包含来自L-SIG的恢复的分组参数。
rxnonhtdata.
是时域非HT数据字段信号。
ch
包含从L-LTF获得的信道估计值。
诺伊瓦尔
是固定噪声方差值。
通过使用非HT数据字段样本恢复数据包有效载荷位Wlannonhtdatarecover
。然后通过验证和解码位wlanmpdudecode.
恢复MAC帧参数。wlanmpdudecode.
返回以下输出,以确定接收到的数据包是否通过FCS检查以及接收到的数据包是否是信标帧。
mpducfg.
是一种类型的对象wlanmacframeconfig.
包含来自信标帧的恢复的MAC帧参数。
地位
是一种类型的枚举地位当MPDU通过FCS检查时返回为“成功”,当MPDU失败FCS检查时返回为“FCSFAILED”。
如果检测到有效的信标,则会显示解码的SSID。
逐个符号符号流过程numvalidpackets = 0;尽管〜ISDONE(BasebandReader)%拉在一个OFDM符号中,即80个样本data = basebandreader();%执行前端处理和有效载荷缓冲[PAYLOADFULL,CFGNONHT,RXNONHTDATA,CHANEST,NOISEVAR] =......rxfrontend(数据);如果有效载荷%恢复具有零强制均衡的有效载荷位Revbits = wlannonhtdatarecover(rxnonhtdata,chanest,......Noisevar,cfgnonht,'均衡 - 方法'那'ZF');%解码和评估恢复的位[mpducfg,〜,status] = wlanmpdudecode(covbits,cfgnonht);如果Strcmp(状态,'成功')&& strcmp(mpducfg.frametype,'灯架')Framebody = MPDucfg.ManagementConfig;%显示SSID.DISP(['SSID:',framebody.siD])NumValidPackets = NumValidPackets + 1;结尾结尾结尾disp([num2str(numvalidpackets),'找到有效的信标包'])释放(BaseBandReader);释放(rxfrontend);
SSID:MathWorks-SDR SSID:MathWorks-SDR SSID:MathWorks-SDR 3找到有效信标包
看802.11具有USRP®硬件的OFDM信标接收器有关使用USRP处理实时信号的示例。
此示例使用以下辅助功能和对象:
IEEE®STD802.11™-2016信息技术的IEEE标准 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格。
IEEE P802.11AX™/ D4.1信息技术标准标准草案 - 系统本地和大都市区域网络之间的电信和信息交流 - 特定要求第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正6:高效WLAN的增强。