主要内容

OFDM同步

本例展示了一种基于IEEE®802.11a™标准的OFDM同步数字通信方法。来自通信工具箱的系统对象™被用来提供OFDM调制和解调,并帮助同步功能。特别地,这个示例说明了解决实际无线通信问题的方法,如载波频率恢复、定时恢复和频域均衡。

实现

本例描述了基于IEEE 802.11a标准的OFDM同步的MATLAB®实现。3.].

简介

IEEE 802.11a标准描述了OFDM调制信号的传输,用于局域网和城域网系统之间的信息交换。本例利用了该标准所概述的物理层,特别是序文符号和OFDM网格结构。

这个例子的目的是:

  • 建立一个通用的OFDM无线通信系统,该系统能够成功地恢复被各种模拟信道损伤破坏的消息。

  • 说明了利用关键通信工具箱工具进行OFDM系统设计和OFDM符号同步

  • 为了说明MATLAB Coder™的性能优势

初始化

可调发射机参数,包括由若干OFDM符号组成的每帧中的有效载荷消息和传输帧数。

消息=“来自MathWorks的沟通工具箱团队,祝你幸福安康!”;numFrames = 1e2;可调通道参数EbN0dB = 12;%信道噪声级(dB)frequencyOffset = 1e4;%频率偏移(Hz)phaseOffset = 15;相位偏移百分比(度)延迟= 80;%整个数据流的初始样本偏移量(样本)显示恢复的消息displayRecoveredMsg = false;启用范围可视化useScopes = true;检查MATLAB编码器许可证useCodegen = checkCodegenLicense;如果useCodegen流([找到MATLAB Coder许可证...发送器和接收器函数将被编译。...附加模拟加速度。——\n]);结束默认情况下,发送和接收函数将被重新编译%,这并不总是必要的。禁用接收器%编译,将“compileIt”更改为false。compileIt = useCodegen;
——MATLAB Coder许可证找到。发送器和接收器函数将被编译用于额外的模拟加速

系统代码体系结构

此示例模拟了一个基于IEEE 802.11a标准[3.].系统分为四个功能:生成ofdmsignal、应用ofdmchannel、接收ofdmsignal和计算ofdmber。

1) generateOFDMSignal:设置并步进一个OFDMTransmitter System对象。对象将有效载荷消息转换为位流,该位流首先经过PSK调制,然后经过OFDM调制,最后加上前导OFDM符号,形成一个单独的帧。发射机重复这个帧numFrames次了。

2) applyOFDMChannel:用载波偏置、定时偏置和加性高斯白噪声(AWGN)对信道进行建模。

3) receiveOFDMSignal:设置并步进OFDMReceiver System对象。该对象对接收机上的一系列组件建模,包括定时恢复、载频恢复、信道均衡和解调。对象还可以配置为显示多个作用域,以可视化接收方处理。OFDMReceiver对象的step方法的输出是从那些检测到的帧解码的位流。

4) calculateOFDMBER:根据每一帧的原始负载消息和OFDMReceiver system对象的比特输出,计算系统帧误码率(FER)和误码率(BER)。

各个组件和算法的描述

发射机

OFDMTransmitter System对象根据IEEE 802.11a标准和提供的ASCII有效负载生成OFDM信号。每个传输帧由若干个OFDM符号组成,包括序文符号和数据符号。发射机根据所提供的值重复相同的帧。帧被填充以在必要时填充OFDM网格。

通道

该组件模拟空中传输的效果。它对发射信号进行相位和频率偏移,模拟发射机和接收机之间的信道延迟,以及AWGN。AWGN的噪声级以dB为单位。

接收机

OFDMReceiver System对象恢复原始传输的有效负载消息。它分为四个主要操作,顺序如下:

1)定时恢复:该组件负责确定给定帧开始的样本位置。更具体地说,它利用通过相互关联发现的接收帧中的已知序文序列。相互关联的数据将包含一个特定的峰排列/间距,允许识别。序文本身就是为了在时域中产生这个特定的形状而设计的。此识别方法基于[1].对象的locatePreamble方法负责这个操作,它使用标准化的最小峰值高度和所需峰值的最小数量来提供可能的序文匹配。

2)载波频率恢复:频率估计是通过计算802.11a导语长部分的两半之间在时域内的相位差来完成的。然后将相位差转换为频率偏移。这是一种常见的技术,最初由Schmidl和Cox [2].这种相位测量的实现假设真实偏移在pi以内,或FFT的一个频率仓内。在802.11a的情况下,一个bin是312.5kHz宽。

3)频域均衡:由于频率估计可能不准确,在OFDM符号的子载波级将存在额外的相位旋转。和相位旋转一样,信道衰落也会影响接收到的信号。这两种损伤都可以通过频域均衡器进行校正。均衡器有两个阶段,利用前导数据和先导数据。首先,通过使用从接收到的长序文样本生成的轻拍来均衡接收的有效载荷。然后提取导频子载波,并在频率上进行插值,得到全信道估计。有效载荷接下来使用这些飞行员估计进行均衡。

4)数据解码器:最后将OFDM子载波解调,然后将PSK解调为比特,从比特中可以恢复原始的有效载荷消息。

误码率计算

该组件基于原始有效负载消息和从接收端检测到的帧解码的比特流计算系统FER和BER。未检测到的帧不计算在内。

显示已恢复的消息

对于每个检测到的帧,在接收端显示恢复的消息。由于原始消息长度没有发送到接收方,因此每一帧中的填充位也被恢复为字符并显示出来。因此,您可能会在每条恢复的消息的末尾看到多达7个无意义的字符。

作用域

  • 星座图显示频域均衡前后的接收信号

  • 用于给定帧的均衡器开关的矢量图

  • 显示检测到的数据帧的频谱分析仪

  • 显示检测帧开始的时间图

  • 一种时间图,显示用于检测帧的发射机载波偏移的频率估计

OFDM同步测试概述

generateOFDMSignal函数为给定的EbN0值重新生成一个大数据向量。然后,该数据通过applyOFDMChannel函数传递,该函数引入了几种常见的信道损伤。最后将数据传递到接收端进行恢复。receiveOFDMSignal函数通过逐帧处理数据来操作。此处理机制是自包含的,以便在使用代码生成时提高性能并简化代码。默认情况下,此脚本生成发送器和接收函数的代码;这是通过使用codegen由MATLAB Coder产品提供的命令。的codegen命令将MATLAB函数转换为c++静态或动态库、可执行文件或MEX文件,生成用于加速执行的代码。生成的C代码比原始的MATLAB代码运行快几倍。

在操作过程中,接收机将显示一系列图,说明某些同步结果和对信号的影响。

用MATLAB编码器编译发射机如果compileIt codegengenerateOFDMSignalarg游戏{coder.Constant(消息),coder.Constant (numFrames)}结束产生传输信号如果useCodegen [txSig, frameLen] = generateOFDMSignal_mex(message, numFrames);其他的[txSig, frameLen] = generateOFDMSignal(message, numFrames);结束信号通过通道传递rxSig = applyOFDMChannel(txSig, EbN0dB, delay, frequencyOffset, phaseOffset);用MATLAB编码器编译接收器如果compileIt codegenreceiveOFDMSignalarg游戏{rxSig, code . constant (frameLen), code . constant (displayRecoveredMsg), code . constant (useScopes)}结束%恢复信号如果useCodegen [decMsgInBits, numFramesDetected] = receiveOFDMSignal_mex(rxSig, frameLen, displayRecoveredMsg, useScopes);其他的[decMsgInBits, numFramesDetected] = receiveOFDMSignal(rxSig, frameLen, displayRecoveredMsg, useScopes);结束计算平均误码率[FER, BER] = calculateOFDMBER(message, decMsgInBits, numFramesDetected);流('\nAt EbNo = %5.2fdB,在FER = %f, BER = %f\n'的%d传输帧中检测到%d帧...EbN0dB, numFramesDetected, numFrames, FER, BER);
代码生成成功。代码生成成功。在EbNo = 12.00dB时,传输的100帧中检测到100帧,FER = 0.010000, BER = 0.000098

总结

本例利用几个MATLAB系统对象在AWGN信道上模拟OFDM的数字通信。它展示了如何建模OFDM系统的几个部分,如调制、频率估计、定时恢复和均衡。仿真还通过一系列图显示同步算法的操作信息。该示例还利用了代码生成,使模拟运行速度比原始MATLAB代码快几倍。

附录

本例中使用了以下System对象:

本例中使用了以下helper函数:

参考文献

  1. 明尼苏达州,h;曾,m;巴加瓦,V.K.,“OFDM系统的时序偏移估计”,通讯,IEEE, vol.4, no. 1。第7页,242,244页,2000年7月

  2. Schmidl T.M.;“OFDM的稳健频率和时序同步”,通信,IEEE汇刊,vol.45, no. 1。12,页1613,1621,1997年12月

  3. IEEE标准802.11a,“第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范”,1999。