主要内容

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

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

的“设置和配置”部分USRP®无线电文档有关配置您的主机以使用SDRu接收器系统对象的详细信息。

本例需要WLAN工具箱™。

简介

这个例子有以下目标:

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

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

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

代码架构

这个函数runWLANNonHTReceiver使用两个System对象com . 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工具箱以运行此示例。”);结束

发现收音机

发现连接到计算机的收音机。本例使用的是第一个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 (reply' 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'...\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);结束channelsToScan =重塑(str2num(reply),[],1);% #好< ST2NM >

Codegen加速度

若要加快接收函数的性能,请生成代码(如果您拥有有效的MATLAB Coder™许可证)。

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

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

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

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

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

运行接收器在通道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毫秒的接收数据…运行接收器在通道157 (5.785 GHz) SSID: w-guest包解码:5 --------------- ###处理100毫秒的接收数据…SSID: w-guest Packets Decoded: 6 --------------- ###处理了200毫秒的接收数据…已扫描所需通道

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

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

附录

本例使用了以下脚本和helper函数:

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

参考文献

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

版权声明

通用软件无线电外设®和USRP®是美国国家仪器公司的商标。