主要内容

IEEE®802.11™WLAN - OFDM信标接收器与USRP®硬件

这个例子展示了如何使用通用软件无线电外设(USRP®)设备使用SDRu (Software Defined Radio USRP®)系统对象™来实现WLAN接收器。接收机能够恢复802.11 OFDM非ht信标帧[1]由商用802.11硬件通过空中传送。OFDM信标可以从802.11a/g/n/ac接入点发射,通常在5 GHz频段。在恢复过程中,报文的SSID、MAC地址等信息打印到命令行。这个例子假设一个接入点在范围内,并在所需的信道中传输OFDM信标。

请参阅的安装和配置部分USRP®无线电文件有关配置主机以使用SDRu Receiver System对象的详细信息。

此示例需要WLAN工具箱™。

介绍

这个例子有以下目标:

  • 在MATLAB®中使用SDRu系统对象从商业WLAN发射器接收信号。

  • 演示WLAN工具箱和通信工具箱™与真实信号和无线电硬件的使用,演示全包同步和解码。

在本例中,SDRuReceiver System对象接收通过空中传输损坏的数据,并输出复杂的基带信号,这些信号由WLAN射频前端对象处理。这个例子展示了WLAN信号恢复功能在流安排中一起工作来恢复数据包。它还展示了如何解码恢复介质访问控制(MAC)层包使用WLAN工具箱。

代码架构

这个函数runWLANNonHTReceiver使用两个系统对象comm.SDRuReceiver和RFFrontEnd来实现包捕获和同步。数据包捕获后,使用WLAN工具箱功能进行解码。

SDRu接收机

MATLAB使用SDRu接收系统对象与USRP®板进行通信。参数结构配置。RadioInfo设置硬件参数,如获得,DecimationFactor,MasterClockRate

射频前端

nonHTFrontEnd提供包同步和收集。这个过程分为四个阶段:

  1. 报文检测:在开始任何处理之前,必须对报文进行检测。这是通过自动关联输入符号来实现的。由于每个802.11 OFDM包的开头都包含一个称为L-STF的重复结构,因此当这个包出现时,相关性就会出现峰值。然后提取L-STF并用于粗频偏估计。

  1. 符号计时:一旦一个包被检测到,几个未来的符号被捕获到一个缓冲区中。这个缓冲区是相互关联的,以定位L-LTF。首先定位L-LTF提供了良好的符号定时,为包中所有后续符号识别OFDM符号边界。整个L-LTF被捕获后,用于信道估计和精细频偏估计。

  1. L-SIG解码:在L-LTF之后的第一个OFDM符号是L-SIG域。此字段必须恢复并解码,以确定调制、码率和后续有效载荷的长度。该信息被用于捕获正确的数据量后的L-SIG为一个完整的有效载荷。

  1. 有效载荷译码:L-SIG后的所有OFDM符号都被缓冲到由L-SIG字段确定的长度。在所有的符号被捕获后,它们被解调并解码成它们的源比特。然后对源位进行计算。这个评估包括帧检查序列(FCS)验证和头部和正文的提取。如果报文是子类型灯塔,将打印有关回收邮包的摘要信息。

一旦接收到一个完整的包,或者在处理链中出现任何故障,接收端将返回到包检测来寻找更多的包。在请求的捕获时间内重复此过程。捕获时间与从无线电中提取的数据量有关,而与物理模拟的运行时间无关。

检查是否存在WLAN工具箱

如果isempty(版本(“无线局域网”)错误(“请安装WLAN工具箱以运行此示例。”);结束

发现收音机

发现收音机(s)连接到您的计算机。这个例子使用了第一个USRP®无线电发现使用findsdru函数。检查一下收音机是否可用。记录射频类型并根据该类型设置配置。

配置。RadioInfo = getRadioInfoWLANBeacon ();disp (Config.RadioInfo);

设置仿真参数

从命令行请求用户输入模拟参数。您将被要求1)捕获持续时间(以秒为单位),2)标图状态(开/关),3)从恢复包显示的数据量,4)启用mac地址的供应商查找,5)感兴趣的频带,6)您想要扫描的通道。如果启用了供应商查找功能,该功能还将下载一个由IEEE公开提供的MAC地址查找表。

配置。SimInfo = getUserInputWLANBeacon ();

如需查询您所在地区的有效频道号码,请参阅的文档

获取通道数回复=输入([“你想扫描哪个波段?”\ n”,...'1 == 5 GHz(默认)\n',...'2 == 2.4 GHz频带\n[1]: '],“年代”);如果isempty(回复)回复=' 1 '结束如果比较字符串(回答,' 1 ') bandToScan = 5;validChannels = [...' 7-16 (5.035-5.080 GHz)\n'...' 34-64 (5.170-5.320 GHz)\n'...' 100-144 (5.550-5.720 GHz)\n'...' 145 -165 (5.745-5.825 GHz)\n'...];defaultChannels =“(153 157)”其他的bandToScan = 2.4;validChannels = [...' 1-13 (2.412-2.472 GHz)\n'...' 14 (2.484 GHz)\n'...];defaultChannels =“[1 - 6]”结束%获取要扫描的频道回复=输入(['有效的通道号为:\n'validChannels...“你想扫描哪些频道?”defaultChannels“:”],“年代”);如果isempty(reply) reply = defaultChannels;结束channelsToScan =重塑(str2num(回复),[],1);% #好< ST2NM >

Codegen加速度

为了加快接收函数的性能,如果您有有效的MATLAB Coder™许可证,请生成代码。

runCodegen = false;如果checkCodegenLicense reply = input('您想为接收器生成MEX文件吗?Y / N (N):“,“年代”);如果isempty(回复)回复=“N”结束如果strcmpi(回答,“Y”runCodegen = true;结束结束compileIt = runCodegen;%为receiver生成MEX文件如果compileIt流(为接收端\n生成MEX文件);清晰的runWLANNonHTReceiver_mexcodegen (“runWLANNonHTReceiver”,“参数”{1 e9 coder.Constant(配置)});结束

捕获和解码基于ofdm的数据包

根据所请求的时间量,在通道列表中捕获并尝试解码数据包。中心频率是收音机的可调参数;因此,可以在不为整个接收方函数重新生成代码的情况下更改它。

频道= 1:长度(channelsToScan)计算信道中心频率WiFiCenterFrequency = helperWLANChannelFrequency (channelsToScan(频道),bandToScan);%运行接收器流('在频道%d (%1.3f GHz)运行接收机\n',...channelsToScan(频道),WiFiCenterFrequency / 1 e9);如果runCodegen runWLANNonHTReceiver_mex (WiFiCenterFrequency配置);其他的runWLANNonHTReceiver (WiFiCenterFrequency配置);结束结束%完成运行流(“理想的通道(s)扫描\ n”);

在运行模拟时,一旦捕获了恢复的数据包,就会对它们进行解码。如果他们通过了FCS检查并且他们是亚型灯塔,信息将打印到命令行。示例输出如下:

Running receiver at channel 153 (5.765 GHz) SSID: w-guest Packets Decoded: 1 --------------- SSID: w-guest Packets Decoded: 2 --------------- ###处理100毫秒的接收数据…SSID: w-guest Packets Decoded: 3 --------------- SSID: w-guest Packets Decoded: 4 --------------- ###处理200毫秒的接收数据…Running receiver at channel 157 (5.785 GHz) SSID: w-guest Packets Decoded: 5 --------------- ###处理100毫秒的接收数据…SSID: w-guest Packets Decoded: 6 --------------- ### #处理200毫秒的接收数据…所需的通道(s)扫描

不同USRP®子板的增益行为差异很大。因此,本例中定义的收益设置可能并不适合您的子董事会。如果数据包没有被接收系统正确解码,你可以改变源信号的增益SDRu接收机通过修改配置。USRPGain值接收初始化文件

所需的收集时间不应超过5秒。为了确保来自USRP®的连续数据,使用突发模式,它在单独的缓冲区内部存储样本。这个缓冲区的最大大小取决于操作系统,当收集时间太长时将会超过。当使用b系列USRP®设备时,可以通过运行来重置无线电call_uhd_app(“b2xx_fx3_utils”,“- d”)如果函数runWLANNonHTReceiver过早地退出。

附录

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

还使用了以下WLAN工具箱功能:

参考文献

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

版权声明

Universal Software Radio Peripheral®和USRP®是美国国家仪器公司的商标。