文档

ofdmmodulator系统对象

采用OFDM方法调制

描述

OFDMModulator对象调制采用正交频分调制方法。输出是调制信号的基带表示。

调制OFDM信号:

  1. 定义并设置OFDM调制器对象。看到建设

  2. 调用一步调制:根据…的特性调制信号comm.OFDMModulator.的行为一步特定于工具箱中的每个对象。

请注意

从R2016b开始,而不是使用一步方法来执行System对象™定义的操作,则可以使用参数调用该对象,就像调用函数一样。例如,Y = step(obj,x)Y = obj(x)请执行相同的操作。

建设

H = com . ofdmmodulator创建一个调制器系统对象,H,采用正交频分调制(OFDM)方法对输入信号进行调制。

H = com . ofdmmodulator (的名字价值创建一个OFDM调制器对象,H,将每个指定的属性设置为指定的值。您可以以任意顺序指定额外的名-值对参数,如(Name1Value1,...,).

H = com . ofdmmodulator (hDemod)创建一个OFDM调制器对象,H,其属性由对应的OFDM解调器对象确定,hDemod

属性

FFTLength

FFT的长度,NFFT,相当于调制过程中使用的子载波数。FFTLength必须≥8。

指定子载波数。默认为64

NumGuardBandCarriers

分配给左右保护频带的保护频带子载波数。

将左右子载波的数量指定为0到()之间的非负整数地板上FFTLength/ 2)−1)你指定左边,NleftG,对,NrightG,在2 × 1列向量中独立的保护带。默认值为[6;5]

InsertDCNull

这是一个逻辑控制是否插入DC null的变量。默认值为

直流副载波是频带的中心,指标值为:

PilotInputPort

这是一个逻辑属性,该属性控制是否可以指定引导载波索引。如果真正的,可指定个别子载波进行导频传输;否则,将假定先导信息嵌入到输入数据中。默认值为

PilotCarrierIndices

如果comm.OFDMModulator.PilotInputPort属性设置为真正的,可以指定导频子载波的索引。您可以将索引分配给每个符号的相同或不同的子载波。类似地,在多个发射天线之间,导频载波指数可以不同。根据索引分配所需的控制级别,属性的维度会有所不同。有效的先导指数落在范围内

N leftG + 1 N FFT / 2 N FFT / 2 + 2 N FFT N rightG

其中索引值不能超过子载波数。当每个符号和发射天线的导频指标都相同时,该属性具有维度N飞行员-by-1,其中N飞行员是导频子载波的数量。当导频索引在符号之间变化时,属性的维数为N飞行员——- - - - - -N信谊,在那里N信谊是符号的数量。如果只有一个符号但有多个发射天线,则属性的尺寸为N飞行员-by-1-by -NT,在那里NT是发射天线的个数。如果索引随着符号和传输天线的数量而变化,则属性的维度为N飞行员——- - - - - -N信谊——- - - - - -NT.当发射天线的数目大于一个时,为了避免干扰,每个符号的索引应该在天线之间相互不同。默认值为[12;26日;40;54)

CyclicPrefixLength

CyclicPrefixLength属性指定OFDM循环前缀的长度。如果指定一个标量,则前缀长度对于所有天线中的所有符号都是相同的。如果你指定一个长度的行向量N信谊,前缀长度可以随着符号的不同而变化,但在所有天线中保持相同的长度。默认值为16

窗口

这是一个逻辑属性,其状态启用或禁用窗口。加窗是在传输前将OFDM符号乘以一个凸起的余弦窗以更快地降低带外子载波功率的过程。这有助于减少光谱的再生。默认值为

WindowLength

此属性指定时凸起余弦窗口的长度comm.OFDMModulator.Windowing真正的.使用正整数,最大值不大于最小循环前缀长度。例如,在具有四个循环前缀长度为的符号的配置中[12 16 14 18]时,窗口长度不能超过12.默认值为1

NumSymbols

此属性指定符号的数量,N信谊NumSymbols必须是正整数。默认值为1

NumTransmitAntennnas

这个属性决定了天线的数量,NT,用于传输OFDM调制信号。属性为正整数。默认值为1

方法

信息 提供OFDM方法的尺寸信息
重置 的重置状态OFDMModulator系统对象
showResourceMapping 显示由OFDM调制器创建的OFDM符号的子载波映射系统对象
一步 采用OFDM方法调制
所有系统对象通用
释放

允许系统对象属性值更改

例子

全部展开

OFDM调制器系统对象™可以使用默认属性构造。一旦构造完毕,就可以修改这些属性。

构造一个OFDM调制器。

ofdmMod = com . ofdmmodulator;

显示调制器的属性。

disp (ofdmMod)
com . ofdmmodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] InsertDCNull: false PilotInputPort: false CyclicPrefixLength: 16 Windowing: false NumSymbols: 1 numtransmitdigits: 1

修改子载波数和符号数。

ofdmMod。FFTLength = 128; ofdmMod.NumSymbols = 2;

验证子载波数和符号数是否改变。

disp (ofdmMod)
com . ofdmmodulator with properties: FFTLength: 128 NumGuardBandCarriers: [2x1 double] InsertDCNull: false PilotInputPort: false CyclicPrefixLength: 16 Windowing: false NumSymbols: 2 numtransmitantenna: 1

showResourceMapping方法显示数据、导频和零子载波在时频空间中的映射。应用showResourceMapping方法。

showResourceMapping (ofdmMod)

OFDM调制器系统对象™可以从现有的OFDM解调器系统对象构建。

构造一个OFDM解调器,ofdmDemod并为单个符号和两个发射天线指定导频指标。

注意:您可以设置PilotCarrierIndices属性,该属性随后更改调制器对象中的发射天线数量。解调器中接收天线数量与发射天线数量无关。

ofdmDemod = com . ofdm解调器;ofdmDemod。PilotOutputPort = true;ofdmDemod。PilotCarrierIndices = cat(3,[12;26日;40;54),...[13;27个;41;55]);

使用解调器,ofdmDemod,构造OFDM调制器。

ofdmMod = com . ofdmmodulator (ofdmDemod);

显示调制器的属性,并验证它们与解调器的属性匹配。

disp (ofdmMod)
com . ofdmmodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] InsertDCNull: false PilotInputPort: true PilotCarrierIndices: [4x1x2 double] CyclicPrefixLength: 16 Windowing: false NumSymbols: 1 numtransmitdigits: 2
disp (ofdmDemod)
com . ofdmdemodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] RemoveDCCarrier: false PilotOutputPort: true PilotCarrierIndices: [4x1x2 double] CyclicPrefixLength: 16 NumSymbols: 1 numreceivedigits: 1

showResourceMapping方法显示每个发射天线的时频资源映射。

构造一个OFDM调制器。

mod = com . ofdmmodulator;

应用showResourceMapping方法。

showResourceMapping (mod)

插入一个DC空值。

mod.InsertDCNull = true;

显示添加DC null后的资源映射。

showResourceMapping (mod)

OFDM调制器使您能够为导频信号指定子载波指标。可以为每个符号和发射天线指定指标。当有多个发射天线时,请确保每个符号的导频指标在天线之间是不同的。

构造一个有两个符号的OFDM调制器,并插入一个DC null。

mod = com . ofdmmodulator (“FFTLength”, 128,“NumSymbols”2,...“InsertDCNull”,真正的);

打开导频输入端口,这样就可以指定导频索引。

mod.PilotInputPort = true;

为两个符号指定相同的导频索引。

mod.PilotCarrierIndices = [12;56;89;100);

在OFDM时频网格中可视化导频信号和空值的位置showResourceMapping方法。

showResourceMapping (mod)

属性的先导索引的第二列连接到PilotCarrierIndices属性为第二个符号指定不同的索引。

mod.PilotCarrierIndices = cat(2, mod.PilotCarrierIndices,...[17;61;94;105));

验证导频子载波索引在符号之间是否不同。

showResourceMapping (mod)

将发射天线数量增加到2个。

mod. numtransmitantenna = 2;

指定两个发射天线中的每一个的导频指数。为多个天线提供索引,同时尽量减少天线之间的干扰,可以填充PilotCarrierIndices属性作为3-D阵列,这样每个符号的索引在天线之间是不同的。

mod.PilotCarrierIndices = cat(3,[20;50;70;110年),...[15;60;75;105));

显示两个发射天线的资源映射关系。灰线表示插入了自定义空值。空值由对象创建,以最小化来自不同天线的导频符号之间的干扰。

showResourceMapping (mod)

为每个OFDM符号指定循环前缀的长度。

构造一个OFDM调制器,它有五个符号、四个左保护带子载波和三个右保护带子载波。为每个OFDM符号指定循环前缀长度。

mod = com . ofdmmodulator (“NumGuardBandCarriers”(4); 3),...“NumSymbols”5,...“CyclicPrefixLength”,[12 10 14 11 13]);

显示调制器的属性,并验证循环前缀长度在符号之间的变化。

disp (mod)
com . ofdmmodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] InsertDCNull: false PilotInputPort: false CyclicPrefixLength: [12 10 14 11 13] Windowing: false NumSymbols: 5 numtransmit天线:1

方法确定OFDM调制器数据维数信息方法。

构造一个OFDM调制器系统对象™,使用用户指定的导频指标,插入一个直流空值,并指定两个发射天线。

hMod = com . ofdmmodulator (“NumGuardBandCarriers”(4); 3),...“PilotInputPort”,真的,...“PilotCarrierIndices”猫([12;26日;40;54),...[11;25;39;53]),...“InsertDCNull”,真的,...“NumTransmitAntennas”2);

使用信息方法查找调制器输入数据、导频输入数据和输出数据的大小。

信息(hMod)
ans =带字段的结构:DataInputSize: [48 1 2] PilotInputSize: [4 1 2] OutputSize: [80 2]

生成用于链路级模拟的OFDM调制符号。

构造一个OFDM调制器,其中插入一个直流空值,七个保护带子载波,每个符号有不同的导频指标。

mod = com . ofdmmodulator (“NumGuardBandCarriers”(4); 3),...“PilotInputPort”,真的,...“PilotCarrierIndices”, (12 11;26日27日;40 39;54 55),...“NumSymbols”2,...“InsertDCNull”,真正的);

确定输入数据、导频和输出数据维度。

modDim = info(mod);

为OFDM调制器生成随机数据符号。结构变量,modDim,决定数据符号的数量。

dataIn = complex(randn(modDim.DataInputSize),randn(modDim.DataInputSize));

创建一个具有正确尺寸的导频信号。

pilot tin = complex(rand(modDim.PilotInputSize),rand(modDim.PilotInputSize));

将OFDM调制应用于数据和导频信号。

modData = step(mod,dataIn,pilotIn);

使用OFDM调制器对象创建相应的OFDM解调器。

demod = com . ofdmdemodulator (mod);

对OFDM信号进行解调,输出数据信号和导频信号。

[dataOut, pilotOut] = step(demod,modData);

在严格的公差范围内,验证输入数据和导频符号与输出数据和导频符号匹配。

isSame = (max(abs([dataIn(:)) - dataOut(:);...pilotIn(:) - pilotOut(:))) < 1e-10)
isSame =逻辑1

算法

正交频分调制(OFDM)是一种将高速传输数据流分成若干部分的方法N低速率流,每个流的符号持续时间大于信道延迟扩展。这有助于减轻符号间干扰(ISI)。各个子流被发送过来N相互正交的平行子通道。通过使用快速傅里叶反变换(IFFT), OFDM可以使用单个无线电进行传输。具体来说,OFDM调制器系统对象使用正交频分调制对输入信号进行调制。输出是调制信号的基带表示:

v t k 0 N 1 X k e j 2 π k Δ f t 0 t T

, {Xk}是数据符号,N是子载波数,和T为OFDM符号时间。Δ的子载波间距f= 1 /T使它们在每个符号周期上正交。这表示为:

1 T 0 T e j 2 π Δ f t e j 2 π n Δ f t d t 1 T 0 T e j 2 π n Δ f t d t 0 n

数据符号,X k,通常是复杂的,可以来自任何调制字母表,例如,QPSK, 16-QAM,或64-QAM。

图中显示了一个OFDM调制器。它由一个银行组成N复杂调制器,其中每个调制器对应一个OFDM子载波。

保护带和间隔

OFDM子载波有三种类型:数据、导频和空。数据子载波用于传输数据,导频子载波用于信道估计。空子载波上没有传输,它提供一个DC空载波,并在OFDM资源块之间提供缓冲区。这些缓冲区被称为保护带,其目的是防止符号间的干扰。空频段和保护频段的分配根据不同的标准而有所不同,例如802.11n与LTE不同。因此,OFDM调制器对象允许用户分配子载波索引。

类似于保护带的概念,OFDM调制器对象支持保护间隔,用于提供OFDM符号之间的时间分离,以便信号不会由于时间分散信道而失去正交性。万博1manbetx只要保护间隔大于延迟扩散,每个符号就不会干扰其他符号。保护间隔是通过使用循环前缀来创建的,其中OFDM符号的最后一部分被复制并作为OFDM符号的第一部分插入。只要时间分散的跨度不超过循环前缀的持续时间,循环前缀插入的好处就可以保持。OFDM调制器对象使能循环前缀长度的设置。使用循环前缀的缺点是增加开销。

凸起余弦窗

当循环前缀在时域中创建保护周期以保持正交性时,OFDM符号很少以先前OFDM符号结尾显示的相同振幅和相位开始。这会导致频谱再生,这是由于互调失真造成的信号带宽的扩展。为了限制这种光谱再生,需要在符号的最后一个样本和下一个符号的第一个样本之间创建平滑过渡。这可以通过使用循环后缀和提高余弦窗口来实现。

为了创建循环后缀,第一个N赢得给定符号的样本被附加到该符号的末尾。但是,为了符合802.11g标准,例如,符号的长度不能任意延长。相反,循环后缀必须在时间上重叠,并有效地与下面符号的循环前缀相加。这个重叠的段就是应用窗口的地方。应用了两个窗口,其中一个是另一个的数学倒数。第一个凸起的余弦窗口应用于符号的循环后缀k,并且在其持续时间内从1减少到0。第二个凸起余弦窗口应用于符号的循环前缀k+1,在持续时间内从0增加到1。这提供了从一个符号到下一个符号的平稳过渡。

凸起的余弦窗,w (t),在时域内可表示为:

w t 1 0 | t | < T T W 2 1 2 1 + 因为 π T W | t | T T W 2 T T W 2 | t | T + T W 2 0 否则

在哪里

  • T表示包含保护间隔的OFDM符号持续时间。

  • TW表示窗口的持续时间。

通过窗口长度设置属性调整循环后缀的长度,将后缀长度设置在1到最小循环前缀长度之间。虽然加窗改善了光谱再生,但它是以牺牲多径衰落免疫为代价的。这是因为保护带的冗余减少了,因为保护带的采样值被平滑破坏了。

下图展示了凸起余弦窗的应用。

选定的参考书目

[1] Dahlman, E., S. Parkvall,和J. Skold. 4G LTE/LTE-先进移动宽带。伦敦:Elsevier Ltd., 2011。

[2]安德鲁斯,J. G.高希,R.穆哈默德。WiMAX基本原理。上马鞍河,新泽西州:Prentice Hall, 2007。

[3]安捷伦科技有限公司,“OFDM提升余弦窗”,http://wireless.agilent.com/rfcomms/n4010a/n4010aWLAN/onlineguide/ofdm_raised_cosine_windowing.htm

[4]蒙特勒伊,L., R.普罗丹,T.科尔兹。OFDM TX符号整形802.3亿,http://www.ieee802.org/3/bn/public/jan13/montreuil_01a_0113.pdf.Broadcom, 2013年。

[5] " IEEE标准802.16TM-2009,“纽约:IEEE, 2009。

扩展功能

在R2014a中引入

这个话题有用吗?