主要内容

图像的传输和接收使用WLAN工具箱和一个USRP E3xx

这个例子展示了如何发送和接收无线局域网数据包在一个广播平台,USRP™嵌入式系列广播支持包与MATLAB®和WLAN的工具箱™。金宝app一个图像文件编码和挤进WLAN传输数据包,并随后在接收解码。

指的是引导Host-Radio硬件设置文档细节配置主机工作的支持包USRP嵌入式系列广播。金宝app

介绍

您可以使用WLAN工具箱生成标准兼容MAC帧和波形。这些基带波形可以upconverted等射频传输使用特别提款权硬件E3xx收音机。的重复波形发射机功能与USRP嵌入式系列无线电硬件允许将波形传输接收到空气和特别提款权使用相同的硬件。接收到的波形捕获和downsampled使用USRP基带嵌入式系列广播和解码恢复传输信息,如下图所示。

这个例子和部分图像文件导入多个MAC服务数据单元(MSDUs)。每个MSDU传递给wlanMACFrame(WLAN工具箱)函数创建一个MAC协议数据单元(MPDU)。这个函数也消耗wlanMACFrameConfig(WLAN工具箱)对象作为输入,它可以用来MPDUs通过顺序号码SequenceNumber财产。MPDUs被传递到PHY层PSDUs。每个PSDU数据打包成单个NonHT,™(802.111使用WLAN工具箱]WLAN包。这个例子创建了一个无线局域网使用的基带波形wlanWaveformGenerator(WLAN工具箱)函数。这个函数使用多个PSDUs每个形成一系列PPDUs和过程。多个PPDUs upconverted和射频波形通过空气发送使用USRP嵌入式系列广播如下列图所示。

这个例子使用相同的Zynq然后捕捉波形传播无线电硬件平台。射频传输解调的基带和收到MPDUs解码使用wlanMPDUDecode(WLAN工具箱)函数。提取的MSDUs命令使用SequenceNumber财产的恢复MAC帧配置对象。接收到的信息比特的多个MSDUs结合恢复传输图像。接收方处理见下图。

示例设置

在你运行这个例子之前,执行以下步骤:

  1. 配置您的主机与USRP嵌入式系列广播的支持包。金宝app看到引导Host-Radio硬件设置寻求帮助。

  2. 确保安装WLAN工具箱。你必须有WLAN工具箱许可运行这个示例。

当您运行这个示例中,该脚本所做的第一件事就是检查WLAN工具箱。

%安装检查WLAN工具箱,有一个有效的许可证如果isempty(版本(“无线局域网”))%检查WLAN工具箱安装错误(“请安装WLAN工具箱运行这个例子。);elseif~许可证(“测试”,“WLAN_System_Toolbox”)%检查存在一个有效的许可证错误(的一个有效的许可证WLAN工具箱需要运行这个例子。);结束

然后脚本配置的范围和数据将显示整个例子。

%设置处理图像的阴谋如果~ (“imFig”,“var”)| | ~ ishandle (imFig) imFig =图;imFig。NumberTitle =“关闭”;imFig。Name =“形象策划”;imFig。可见=“关闭”;其他的clf (imFig);%清晰的图imFig。可见=“关闭”;结束%设置频谱查看器spectrumScope = dsp.SpectrumAnalyzer (“SpectrumType”,的功率密度,“SpectralAverages”10“YLimits”(-130 -40),“标题”,收到了基带WLAN信号频谱的,“YLabel”,的功率谱密度);%设置的星座图查看器平衡的WLAN符号星座= comm.ConstellationDiagram (“标题”,“平衡的WLAN符号”,“ShowReferenceConstellation”、假);

指定你的收音机硬件的设备名称。

%初始化特别提款权设备deviceNameSDR =“E3xx”;%设置特别提款权设备

以下部分解释的设计和架构这个例子中,你可以看到执行的代码。

发射机的设计

WLAN发射机的总体结构可以描述如下:

  1. 导入一个图像文件,并把它转换成十进制流字节。

  2. 使用WLAN工具箱,生成一个基带信号无线局域网802.11包数据流分成多个数据包。

  3. 准备使用特别提款权硬件传输的基带信号。

  4. 基带数据发送到SDR硬件upsampling和连续传输所需的中心频率。

发射机增益参数用于损害接收到的波形的质量,您可以更改该参数来减少传输质量,和损害的信号。这些建议值,取决于你的天线配置,您可能需要调整这些值。建议值是:

  1. 为增加增益设置为0(0分贝)

  2. 默认的增益设置为-10(-10分贝)

  3. 为降低增益设置为-20(-20分贝)

txGain = -10;

准备图像文件

从图像文件中读取数据的例子中,尺度传播,并将它转换成十进制流字节。图像的缩放降低图像的质量减少二进制数据流的大小。

传输图像的大小直接影响无线局域网数据包的数量,需要传输的图像数据。比例因子用于图像的原始大小。WLAN生成的数据包传输的数量取决于以下几点:

  1. 时设置的图像缩放导入图像文件。

  2. 数据的长度进行分组。这是指定的msduLength变量。

  3. MCS传输包的价值。

比例因子的结合规模是0.2,MSDU长度msduLength2304年如下所示,需要11 WLAN无线数据包的传输。增加比例因子或减少MSDU长度将导致更多的数据包的传输。

%的输入图像文件并转换为二进制流fileTx =“peppers.png”;%图像文件的名字fData = imread (fileTx);%从文件读取图像数据规模= 0.2;%图像比例因子origSize =大小(fData);%原始输入图像大小scaledSize = max(地板(规模。* origSize (1:2)), 1);%计算新的图像大小heightIx = min(圆(((1:scaledSize(1)) -0.5)。/规模+ 0.5),origSize (1));widthIx = min(圆(((1:scaledSize(2)) -0.5)。/规模+ 0.5),origSize (2));fData = fData (heightIx、widthIx:);%调整图像imsize =大小(fData);%存储新图像大小txImage = fData (:);

这个例子显示传输的图像文件。成功接收和解码图像文件时,该示例显示图像。

%情节传输图像图(imFig);imFig。可见=“上”;次要情节(211);imshow (fData);标题(“传播形象”);次要情节(212);标题(“收到形象将出现在这里……”);集(gca),“可见”,“关闭”);甘氨胆酸组(findall (,“类型”,“文本”),“可见”,“上”);暂停(1);%停下来情节Tx的形象

片段传输数据

创建的例子使用了数据流从输入图像文件txImage。数据流被分割成更小的传输单位(MSDUs)的大小msduLength。创建了MPDU为每个传输单位使用wlanMACFrame(WLAN工具箱)函数。每次调用这个函数创建一个对应于给定MPDU MSDU和框架配置对象。框架配置对象可以使用创建wlanMACFrameConfig(WLAN工具箱)可用于配置MPDU的序列号。所有MPDUs然后按顺序传递到物理层传输。

在这个例子中,msduLength字段设置为2304字节。这是为了确保最大MSDU大小中指定的标准(1)不超过。数据在过去MPDU附加零,这是为了让所有MPDUs相同的大小。

msduLength = 2304;% MSDU长度字节numMSDUs =装天花板(长度(txImage) / msduLength);padZeros = msduLength-mod(长度(txImage), msduLength);txData = [txImage;0 (padZeros 1)];txDataBits =双(重塑(de2bi (txData 8)”[], 1));%将输入数据流分成碎片bitsPerOctet = 8;data = 0 (0,1);印第安纳州= 0:numMSDUs-1%提取图像数据为每个MPDU(八位字节)frameBody = txData(印第安纳州* msduLength + 1: msduLength *(印第安纳州+ 1):);%创建MAC帧配置对象和配置序列号cfgMAC = wlanMACFrameConfig (“FrameType”,“数据”,“SequenceNumber”印第安纳州);%生成MPDU[mpdu, lengthMPDU] = wlanMACFrame (frameBody cfgMAC);% MPDU字节转换为比特流psdu =重塑(de2bi (hex2dec (mpdu), 8)”, [], 1);%连接PSDUs波形生成data =[数据;psdu];% #好< AGROW >结束

生成IEEE 802.11基带WLAN的信号

non-HT波形合成使用wlanWaveformGenerator(WLAN工具箱)non-HT格式配置对象。使用创建的对象wlanNonHTConfig(WLAN工具箱)函数。对象包含的属性配置。在这个例子中一个对象配置为20 MHz带宽,传输天线和64 qam率2/3 (MCS 6)。

nonHTcfg = wlanNonHTConfig;%创建包配置nonHTcfg。MCS = 6;%调制:64 qam率:2/3nonHTcfg。NumTransmitAntennas = 1;%的发送天线数量chanBW = nonHTcfg.ChannelBandwidth;nonHTcfg。PSDULength = lengthMPDU;%设置PSDU长度

发射机使用transmitRepeat功能传输基带WLAN波形在一个循环中从DDR内存Zynq-Based广播平台。传输射频信号采样过量和传播30 mhz。802.11信号传输通道5对应的中心频率为2.432 ghz 17.4.6.3节定义[1]。

sdrTransmitter = sdrtx (deviceNameSDR);%发射机性能%重新取样传输波形30 mhzfs = wlanSampleRate (nonHTcfg);%在MHz传输采样率osf = 1.5;%过采样因子sdrTransmitter。BasebandSampleRate = f * osf;sdrTransmitter。CenterFrequency = 2.432 e9;% 5频道sdrTransmitter。获得= txGain;sdrTransmitter。ChannelMapping = 1;%应用TX通道映射sdrTransmitter。ShowAdvancedProperties = true;sdrTransmitter。BypassUserLogic = true;%初始化每个数据包的扰频器与一个随机整数scramblerInitialization =兰迪([127]numMSDUs 1);%生成基带NonHT数据包由空闲时间txWaveform = wlanWaveformGenerator(数据、nonHTcfg“NumPackets”numMSDUs,“IdleTime”,20 e-6,“ScramblerInitialization”,scramblerInitialization);%重新取样传输波形txWaveform =重新取样(txWaveform fs * osf, fs);流(“\ nGenerating WLAN传输波形:\ n”)%规模标准化信号避免射频的饱和阶段powerScaleFactor = 0.8;txWaveform = txWaveform。* (1 / max (abs (txWaveform)) * powerScaleFactor);% int16传输信号,这是特别提款权的原生格式%的硬件txWaveform = int16 (txWaveform * 2 ^ 15);%射频传输波形sdrTransmitter.transmitRepeat (txWaveform);
生成WLAN传输波形:# #建立连接硬件。这个过程可能要花上几秒钟的时间。# #波形传播已经开始成功,将重复下去。# #调用释放方法停止传输。

重复使用特别提款权硬件传输

transmitRepeat函数传输基带WLAN数据包空闲时间特别提款权的平台,并将信号样本存储在硬件内存。然后传输波形的例子不断发射机的空气,直到释放方法对象。消息显示在命令窗口确认传输已经开始成功。

接收机的设计

WLAN接收机的一般结构可以描述如下:

  1. WLAN传输信号的捕获多个数据包使用特别提款权硬件。

  2. 检测包

  3. 粗糙的载波频率偏移估计和修正

  4. 好时机建立同步。L-STF, L-LTF L-SIG样品提供了良好时机允许调整数据包检测L-STF的开始或结束

  5. 载波频率偏移估计和修正

  6. 进行信道估计的使用L-LTF接收信号

  7. 检测数据包的格式

  8. 解码L-SIG场恢复MCS价值和数据部分的长度

  9. 解码数据字段获得在每个数据包的传输数据

  10. 解码收到PSDU并检查如果帧校验序列(FCS) PSDU传递。

  11. 解码MSDUs基于顺序SequenceNumber财产的恢复MAC帧配置对象。

  12. 把解码MSDUs传播形成了接收数据包的形象

这个例子中情节的功率谱密度(PSD)捕获的波形,显示了平衡的数据符号的可视化,接收到的图像。

接收方设置

接收方使用属性中定义的控制sdrReceiver对象。接收机的采样率是30 mhz,也就是20 mhz基带采样率的1.5倍。

一个comm.SDRRxE3xx系统对象是从SDR接收基带数据的硬件。

sdrReceiver = sdrrx (deviceNameSDR);sdrReceiver。BasebandSampleRate = sdrTransmitter.BasebandSampleRate;sdrReceiver。CenterFrequency = sdrTransmitter.CenterFrequency;sdrReceiver。OutputDataType =“双”;sdrReceiver。ChannelMapping = 1;%配置Rx通道映射sdrReceiver。ShowAdvancedProperties = true;sdrReceiver。BypassUserLogic = true;%配置接收样品相当于两倍的长度%传输信号,这是为了确保PSDUs为了接收。%在接待重复MAC碎片移除。samplesPerFrame =长度(txWaveform);requiredCaptureLength = samplesPerFrame * 2;spectrumScope。SampleRate = sdrReceiver.BasebandSampleRate;指数在PSDU %获得所需的字段indLSTF = wlanFieldIndices (nonHTcfg,“L-STF”);indLLTF = wlanFieldIndices (nonHTcfg,“L-LTF”);indLSIG = wlanFieldIndices (nonHTcfg,“L-SIG”);Ns = indLSIG (2) -indLSIG (1) + 1;%的样本数量在一个OFDM符号

捕获接收数据包

传播波形捕获使用USRP嵌入式系列广播。

%特别提款权捕获流(“\ nStarting新的射频捕获。\ n”)%保存价值WLAN传输数据包的长度的两倍%样本,capturedData requiredCaptureLength基带% WLAN样品capturedData =捕获(sdrReceiver requiredCaptureLength,“样本”);
开始一个新的射频捕获。# #建立连接硬件。这个过程可能要花上几秒钟的时间。

接收处理

例子使用while循环捕获和解码数据包。WLAN波形不断传输空气在一个循环中,第一个包被sdrReceiver是不能保证是第一个数据包传输。这意味着包可能是解码序列。使接收到的数据包重组以正确的顺序,他们的序列号必须确定。每个包的解码PSDU比特的传递wlanMPDUDecode(WLAN工具箱)函数。这个函数解码MPDU和输出MSDU以及恢复的MAC帧配置对象wlanMACFrameConfig(WLAN工具箱)。的SequenceNumber属性在恢复MAC帧配置对象可用于排序的MSDUs传播序列。while循环完成接收处理当复制帧检测,最后删除接收机处理期间。对于丢失帧退化图像的质量。

WLAN包已成功解码时,发现序列号在命令窗口中显示为每个收到包。平衡的数据符号星座显示为每个收到包。

%接收的波形显示功率谱密度spectrumScope (capturedData);% Downsample接收到的信号rxWaveform =重新取样(capturedData fs, fs * osf);rxWaveformLen =大小(rxWaveform, 1);searchOffset = 0;%抵消从开始的波形样本%最低包长度是10 OFDM符号lstfLen =双(indLSTF (2));% L-STF的样本数量minPktLen = lstfLen * 5;pktInd = 1;sr = wlanSampleRate (nonHTcfg);%采样率fineTimingOffset = [];packetSeq = [];displayFlag = 0;%国旗显示解码信息%进行维生素与计算evmCalculator = comm.EVM (“AveragingDimensions”(1 2 3));evmCalculator。MaximumEVMOutputPort = true;%接收处理(searchOffset + minPktLen) < = rxWaveformLen%包检测pktOffset = wlanPacketDetect (rxWaveform chanBW searchOffset, 0.8);%调整包抵消pktOffset = searchOffset + pktOffset;如果isempty (pktOffset) | | (pktOffset +双(indLSIG (2)) > rxWaveformLen)如果pktInd = = 1 disp (“* *没有包发现* *”);结束打破;结束%提取non-HT字段和执行粗频率偏移校正%时间允许可靠的象征nonHT = rxWaveform (pktOffset + (indLSTF (1): indLSIG (2)),:);coarseFreqOffset = wlanCoarseCFOEstimate (nonHT chanBW);nonHT = helperFrequencyOffset (fs, nonHT -coarseFreqOffset);%符号定时同步fineTimingOffset = wlanSymbolTimingEstimate (nonHT chanBW);%调整包抵消pktOffset = pktOffset + fineTimingOffset;%的时间同步完成:包检测和同步%提取non-HT序言场同步和之后%执行频率校正如果(pktOffset < 0) | | ((pktOffset + minPktLen) > rxWaveformLen) searchOffset = pktOffset + 1.5 * lstfLen;继续;结束流(“\ nPacket——% d发现指数% d \ n '、pktInd pktOffset + 1);%提取前7 OFDM符号的检测和数据格式% L-SIG解码nonHT = rxWaveform (pktOffset + (1:7 * Ns):);nonHT = helperFrequencyOffset (fs, nonHT -coarseFreqOffset);%对同步和执行好频率偏移校正%粗校正序言字段lltf = nonHT (indLLTF (1): indLLTF (2):);%提取L-LTFfineFreqOffset = wlanFineCFOEstimate (lltf chanBW);nonHT = helperFrequencyOffset (fs, nonHT -fineFreqOffset);cfoCorrection = coarseFreqOffset + fineFreqOffset;%总首席财务官%使用L-LTF信道估计lltf = nonHT (indLLTF (1): indLLTF (2):);demodLLTF = wlanLLTFDemodulate (lltf chanBW);chanEstLLTF = wlanLLTFChannelEstimate (demodLLTF chanBW);%噪声估计noiseVarNonHT = helperNoiseEstimate (demodLLTF);%数据包格式检测使用3立即OFDM符号% L-LTF后格式= wlanFormatDetect (nonHT (indLLTF (2) + (1:3 * Ns):),chanEstLLTF、noiseVarNonHT chanBW);disp ([' '格式“格式检测”]);如果~ strcmp(格式,“Non-HT”)流(”除了Non-HT格式已经检测到\ n”);searchOffset = pktOffset + 1.5 * lstfLen;继续;结束%恢复L-SIG字段位[recLSIGBits, failCheck] = wlanLSIGRecover (nonHT (indLSIG (1): indLSIG (2):),chanEstLLTF、noiseVarNonHT chanBW);如果failCheck流(“L-SIG检查失败\ n”);searchOffset = pktOffset + 1.5 * lstfLen;继续;其他的流(“L-SIG检查通过\ n”);结束基于解码L-SIG %检索包参数[lsigMCS, lsigLen rxSamples] = helperInterpretLSIG (recLSIGBits sr);如果(rxSamples + pktOffset) > (rxWaveform) disp(长度“* *没有足够的样本来解码包* *的);打破;结束% CFO校正应用于整个包rxWaveform (pktOffset + (1: rxSamples):) = helperFrequencyOffset (rxWaveform (pktOffset + (1: rxSamples):), fs, -cfoCorrection);%创建一个接收Non-HT配置对象rxNonHTcfg = wlanNonHTConfig;rxNonHTcfg。MCS = lsigMCS;rxNonHTcfg。PSDULength = lsigLen;%得到PPDU中的数据字段索引indNonHTData = wlanFieldIndices (rxNonHTcfg,“NonHT-Data”);%恢复PSDU位使用数据包传输参数和通道%的估计L-LTF[rxPSDU, eqSym] = wlanNonHTDataRecover (rxWaveform (pktOffset +(indNonHTData (1): indNonHTData (2)),:),chanEstLLTF、noiseVarNonHT rxNonHTcfg);星座(重塑(eqSym [], 1));%当前的星座暂停(0);%让星座重画释放(星座);%发布之前的星座图refSym = wlanClosestReferenceSymbol (eqSym rxNonHTcfg);[evm.RMS,维生素。峰]= evmCalculator (refSym eqSym);% MPDU和提取MSDU解码[cfgMACRx msduList {pktInd},状态]= wlanMPDUDecode (rxPSDU rxNonHTcfg);% #好< * SAGROW >如果比较字符串(状态,“成功”)disp (MAC FCS检查通过的);%存储排序信息packetSeq (pktInd) = cfgMACRx.SequenceNumber;% MSDU转换为二进制数据流rxBit {pktInd} =重塑(de2bi (hex2dec (cell2mat (msduList {pktInd})), 8)”, [], 1);其他的%解码失败如果比较字符串(状态,“FCSFailed”)% FCS失败disp (“MAC FCS检查失败”);其他的% FCS通过但遇到其他解码失败disp (MAC FCS检查通过的);结束%因为没有重发建模在这个例子中,我们将%提取图像数据从MPDU (MSDU)和序列号,%即使FCS检查失败。%去除页眉和FCS。提取MSDU。macHeaderBitsLength = 24 * bitsPerOctet;fcsBitsLength = 4 * bitsPerOctet;msduList {pktInd} = rxPSDU (macHeaderBitsLength + 1: end-fcsBitsLength);%提取和存储序号sequenceNumStartIndex = 23 * bitsPerOctet + 1;sequenceNumEndIndex = 25 * bitsPerOctet - 4;packetSeq (pktInd) = bi2de (rxPSDU (sequenceNumStartIndex: sequenceNumEndIndex) ');% MSDU二进制数据流双(msduList rxBit {pktInd} = {pktInd});结束%显示解码信息如果displayFlag流('估计首席财务官:% 5.1 f赫兹\ n \ n”,cfoCorrection);% #好< UNRCH >disp (“解码L-SIG内容:”);流(“MCS: % d \ n”,lsigMCS);流(“长度:% d \ n”,lsigLen);流(包的样品数量:% d \ n \ n ',rxSamples);流(“维生素:\ n”);流('维生素与峰:% 0.3 f % %维生素与RMS: % 0.3 f % % \ n \ n ',evm.Peak evm.RMS);流(“解码MAC顺序控制字段内容:\ n”);流(“序列号:% d \ n”packetSeq (pktInd));结束%更新搜索索引searchOffset = pktOffset +双(indNonHTData (2));pktInd = pktInd + 1;%完成处理当检测到重复的包。的%恢复数据包括从复制帧比特如果长度(独特(packetSeq)) <长度(packetSeq)打破结束结束%释放sdrTransmitter和接收器对象的状态释放(sdrTransmitter);释放(sdrReceiver);
包1发现指数2855 Non-HT格式检测L-SIG检查MAC FCS检查传球包2发现指数11495 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-3发现指数20135 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-4发现指数28775 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-5发现指数37415 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-6发现指数46055 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-7发现指数54695 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-8发现指数63335 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-9发现指数71975 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-10发现指数80615 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-11发现指数89255 Non-HT格式检测L-SIG检查MAC FCS检查传球Packet-12发现指数97895 Non-HT格式检测L-SIG检查通过MAC FCS检查通过

重建图像

从收到MAC帧图像重建。

如果~ (isempty (fineTimingOffset) | | isempty (pktOffset)) & &(numMSDUs = =(元素个数(packetSeq) 1))%去除重复了MAC的片段rxBitMatrix = cell2mat (rxBit);rxData = rxBitMatrix(1:结束,1:元素个数(packetSeq) 1);startSeq =找到(packetSeq = = 0);rxData = circshift (rxData, [0 - (startSeq (1) 1)));%为MAC片段%执行比特误码率(BER)计算bitErrorRate = comm.ErrorRate;呃= bitErrorRate(双(rxData (:)),txDataBits(1:长度(重塑(rxData [], 1))));流(' \ nBit错误率(BER): \ n”);流(的误比特率(BER) = % 0.5 f。\ n ',犯错(1));流(“有些错误的数量= % d。\ n”犯错(2));流(的传输比特数= % d。\ n \ n '长度(txDataBits));%从接收的数据重建图像流(“\ nConstructing形象从接收的数据。\ n”);decdata = bi2de(重塑(rxData(1:长度(txImage) * bitsPerOctet), 8日,[])');receivedImage = uint8(重塑(decdata imsize));%情节收到图片如果存在(“imFig”,“var”)& & ishandle (imFig)%如果Tx图是开放的图(imFig);次要情节(212);其他的图;次要情节(212);结束imshow (receivedImage);标题(sprintf (收到图片的));结束
误比特率(BER):误比特率(BER) = 0.00000。一些错误的数量= 0。传输的比特数= 202752。从接收的数据构造图像。

尝试的东西

您可以修改器txGain获得观察维生素和误码率的差异后信号的接收和处理。你也应该能够看到任何错误显示,收到图片。试着改变比例因子规模到0.5。这应该提高接收到的图像的质量产生更多的传输比特。这也应该增加PPDUs传播的数量。

故障排除

解决一般的特别提款权的技巧为USPR嵌入式硬件和通信工具箱支持包系列广播中可以找到金宝app常见问题和修复

选定的参考书目

  1. IEEE Std 802.11™-2012 IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)。