主要内容

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

这个例子展示了如何使用通用软件无线电外设(USRP®)设备使用SDRu(软件定义无线电USRP®)系统对象™来实现WLAN接收器。该接收机能够恢复802.11 OFDM非ht信标帧[1从商业802.11硬件上通过空气传输。OFDM信标可以从802.11a / g / n /交流接入点传输,并且通常在5 ghz频段中找到。在恢复期间打印到命令行之类的数据包信息。该示例假定接入点在范围内,并在所需信道中发送OFDM信标。

的安装和配置部分文档的USRP®无线电关于配置主机使用SDRu Receiver System对象的详细信息。

此示例需要WLAN工具箱™。

介绍

这个例子有以下目标:

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

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

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

代码架构

功能runWLANNonHTReceiver使用两个System对象comm.SDRuReceiver和RFFrontEnd实现抓包和同步。捕获后,将使用WLAN Toolbox函数对数据包进行解码。

SDRu接收机

MATLAB使用SDRu接收系统对象与USRP®板通信。参数结构配置。RadioInfo设置硬件参数,如获得decimationFactor., 和masterclockrate.

射频前端

nonHTFrontEnd提供数据包同步和收集功能。这分四个阶段:

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

  1. 符号时序:检测到数据包后,将若干将来符号捕获到缓冲区中。该缓冲器与用于定位L-LTF的交叉相关。定位L-LTF首先提供精细的符号定时,识别数据包中所有连续符号的DM符号边界。在捕获整个L-LTF之后,它用于信道估计和细频率偏移估计。

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

  1. 有效载荷解码:所有在L-SIG之后的OFDM符号被缓冲到由L-SIG字段决定的长度。在所有的符号被捕获后,它们被解调并解码为它们的源位。然后计算源位。该评估包括帧检查序列(FCS)验证和头部和正文的提取。如果报文是子类型的灯塔,将打印关于恢复的数据包的摘要信息。

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

检查是否存在WLAN工具箱

如果isempty(版本('WLAN')错误(请安装WLAN工具箱以运行此示例。);结束

发现收音机

发现连接到您的计算机的收音机。此示例使用使用的第一个USRP®收音机使用findsdru功能。检查无线电是否可用。根据该类型记录无线电类型并设置配置。

config.radioinfo = getradioinfowlanbeacon();disp(config.radioinfo);

设置仿真参数

请求用户输入从命令行进行仿真参数。将要求1)以秒为单位,2)绘制状态(开/关),3)从恢复的数据包显示的数据量,4)为MAC地址启用供应商查找,5)感兴趣的乐队和6)您要扫描的频道。如果启用了供应商查找此功能也将下载MAC地址查找表,由IEEE公开提供。

配置。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'...' 149-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(回复)回复= defaultChannels;结束ChannelStOcan = REPAPE(str2num(回复),[],1);%#OK 

Codegen加速度

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

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

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

根据请求的时间量捕获并尝试解码通道列表上的数据包。该中心频率是该无线电的可调谐参数;因此,无需为整个接收函数重新生成代码就可以更改它。

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

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

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毫秒收到的数据…SSID: w-guest Packets Decoded: 5 --------------- ###处理100毫秒接收的数据…SSID: w-guest Packets Decoded: 6 --------------- ###处理200毫秒收到的数据…所需的通道(s)扫描

不同USRP®子板的增益行为差异很大。因此,本例中定义的增益设置可能不太适合您的子板。如果接收系统不能正确地解码数据包,则可以改变源信号的增益SDRu接收机系统对象,通过更改Config。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®是国家仪器公司的商标。