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 = 1 e2;可调通道参数EbN0dB = 12;通道噪声级(dB)frequencyOffset = 1 e4;频率偏差(Hz)phaseOffset = 15;相位偏移(度)延迟= 80;%整个数据流的初始采样偏移量(采样)显示恢复的消息displayRecoveredMsg = false;%启用范围可视化useScopes = true;%检查MATLAB编码器许可证useCodegen = checkCodegenLicense;如果useCodegen流([“——MATLAB编码器许可证找到。”“发送器和接收器功能将被编译为”“额外的模拟acceleration.。\ n”]);结束默认情况下,发射器和接收器函数将被重新编译%,这并不总是必要的。禁用接收机%编译,将"compileIt"改为false。compileIt = useCodegen;
发现MATLAB编码器许可证。发射机和接收机功能将被编译为额外的模拟加速

系统的代码体系结构

基于IEEE 802.11a标准的数字通信系统[3.].系统分为四个功能:生成ofdmsignal,应用ofdmchannel,接收ofdmsignal,计算ofdmber。

1) generateOFDMSignal:建立并步进OFDMTransmitter System对象。该对象将有效负载消息转换为一个比特流,该比特流首先被PSK调制,然后被OFDM调制,最后被前置OFDM符号以形成单独的帧。发射机重复这一帧numFrames次了。

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

3) receiveOFDMSignal:建立并步进OFDMReceiver System对象。该对象对接收器上的一系列组件进行建模,包括定时恢复、载波频率恢复、信道均衡和解调。该对象还可以配置为显示多个范围,以可视化接收器处理。OFDMReceiver对象的步进方法的输出是被检测帧解码的比特流。

4) calculateOFDMBER:计算系统帧误码率(FER)和误码率(BER)基于每帧的原始有效载荷消息和从OFDMReceiver system对象输出的比特。

单个组件和算法的描述

发射机

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

通道

这个组件模拟了空中传输的效果。它降低了传输信号的相位和频率偏移,延迟模仿发射机和接收机之间的信道延迟,以及AWGN。AWGN的噪声电平用分贝表示。

接收机

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同步测试概述

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

在运行期间,接收器将显示一系列的图说明某些同步结果和对信号的影响。

%编译变送器与MATLAB编码器如果compileIt codegengenerateOFDMSignalarg游戏{coder.Constant(消息),coder.Constant (numFrames)}结束%产生传输信号如果useCodegen [txSig, frameLen] = generateOFDMSignal_mex(消息,numFrames);其他的[txSig, frameLen] = generateOFDMSignal(消息,numFrames);结束将信号通过通道rxSig = applyOFDMChannel(txSig, EbN0dB, delay, frequencyOffset, phaseOffset);%编译接收器与MATLAB编码器如果compileIt codegenreceiveOFDMSignalarg游戏{rxSig, coder.Constant(frameLen), coder.Constant(displayRecoveredMsg), coder.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,在发送的%d帧中检测到%d帧,其中FER = %f和BER = %f\n'EbN0dB, numFrames detected, numFrames, FER, BER);
EbNo = 12.00dB时,在发送的100帧中检测到100帧,FER = 0.010000, BER = 0.000098

总结

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

附录

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

本例中使用了以下帮助函数:

参考文献

  1. 明尼苏达州,h;曾,m;“基于OFDM系统的时间偏移估计”,通信学报,vol.4, no. 1。7,第242,244页,2000年7月

  2. Schmidl T.M.;“基于OFDM的鲁棒频率和时间同步”,通信学报,vol.45, no. 1。12,第1613页,1621页,1997年12月

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