主要内容

comm.OFDMDemodulator

使用OFDM方法解调

描述

OFDMDemodulator对象解调采用正交频分复用方法。输出是调制信号的基带表示,它被输入到OFDMModulator伴星。

解调OFDM信号:

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

  2. 调用一步的性质来解调信号comm.OFDMDemodulator.的行为一步特定于工具箱中的每个对象。

请注意

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

建设

ofdm解调器创建一个解调器系统对象,H,利用正交频分解调方法对输入信号进行解调。

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

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

属性

FFTLength

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

指定子载波数。默认为64

NumGuardBandCarriers

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

在[0,]中指定左右子载波数为非负整数,NFFT/21]你指定左边,NleftG,对,NrightG,在2 × 1列向量中独立的保护带。默认值为[6;5]

RemoveDCCarrier

一个逻辑变量that when真正的,要求移除直流子载波。默认值为

PilotOutputPort

一个逻辑属性,该属性控制是否分离导频信号并使它们可用于额外的输出端口。中指定的导频子载波指标确定每个导频输出符号的位置PilotCarrierIndices财产。当为false时,导频符号可能存在,但嵌入在数据中。默认值为

PilotCarrierIndices

如果PilotOutputPort属性是真正的,输出单独的导频信号,这些导频信号位于PilotCarrierIndices财产。如果索引是一个2-D阵列,则每个符号在所有发射天线上的导频载波是相同的。如果有多个发射天线(解调器不知道这个信息),来自不同发射天线的导频可能会相互干扰。为了避免这种情况,可以将导频载波索引指定为一个三维阵列,为天线上的每个符号指定不同的导频索引。这避免了来自不同发射天线的导频之间的干扰,因为在每个符号的基础上,每个发射天线都有不同的导频载波,OFDM调制器在适当的位置创建自定义空值。第三维的大小PilotCarrierIndices属性给出发射天线的数量。

CyclicPrefixLength

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

NumSymbols

此属性指定符号的数量,N信谊.指定N信谊作为正整数。默认值为1

NumReceiveAntennnas

这个属性决定了天线的数量,NR,用于接收OFDM调制信号。指定NR作为正整数。默认值为1

方法

信息 提供OFDM方法的尺寸信息
showResourceMapping 显示OFDM解调器创建的OFDM符号的子载波映射系统对象
一步 使用OFDM方法解调
所有系统对象通用
释放

允许系统对象属性值更改

重置

重置System对象的内部状态

当使用重置,此方法从先前处理的帧中的最后一个符号重置加窗后缀。

例子

全部折叠

构造一个具有默认属性的OFDM解调器系统对象™。修改部分属性。

构造OFDM解调器。

解调器= com . ofdm解调器
demod = com . ofdmdemodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] RemoveDCCarrier: false PilotOutputPort: false CyclicPrefixLength: 16 NumSymbols: 1 numreceivedigits: 1

修改子载波数和符号数。

解调。FFTLength = 128; demod.NumSymbols = 2;

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

解调
demod = com . ofdmdemodulator with properties: FFTLength: 128 NumGuardBandCarriers: [2x1 double] RemoveDCCarrier: false PilotOutputPort: false CyclicPrefixLength: 16 NumSymbols: 2 numreceivedigits: 1

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

使用默认参数构造一个OFDM调制器。

mod = com . ofdmmodulator (“NumTransmitAntennas”4);

从调制器构造相应的OFDM解调器,国防部

demod = com . ofdmdemodulator (mod);

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

国防部
mod = com . ofdmmodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] InsertDCNull: false PilotInputPort: false CyclicPrefixLength: 16 Windowing: false NumSymbols: 1 numtransmitantenna: 4
解调
demod = com . ofdmdemodulator with properties: FFTLength: 64 NumGuardBandCarriers: [2x1 double] RemoveDCCarrier: false PilotOutputPort: false CyclicPrefixLength: 16 NumSymbols: 1 numreceivedigits: 1

发射天线的数量与接收天线的数量无关。

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

构造一个OFDM解调器。

demod = com . ofdm解调器;

应用showResourceMapping方法。

showResourceMapping(解调)

图OFDM所有Tx天线的子载波映射包含一个轴对象。标题为“OFDM子载波映射for All Tx天线”的axes对象包含一个image类型的对象。

拆卸直流副载波。

解调。RemoveDCCarrier = true;

移除直流子载波后显示资源映射。

showResourceMapping(解调)

图OFDM所有Tx天线的子载波映射包含一个轴对象。标题为“OFDM子载波映射for All Tx天线”的axes对象包含一个image类型的对象。

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

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

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

modDim = info(mod)
modDim =带字段的结构:DataInputSize: [52 2] PilotInputSize: [4 2] OutputSize: [160 1]

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

dataIn =复杂(...randn (modDim.DataInputSize) randn (modDim.DataInputSize));

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

复杂的(...兰特(modDim.PilotInputSize),兰德(modDim.PilotInputSize));

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

modSig = mod(dataIn,pilotIn);

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

demod = com . ofdmdemodulator (mod);

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

[dataOut,pilotOut] = demod(modSig);

验证输入数据和导频符号是否与输出数据和导频符号匹配。

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

算法

正交频分复用(OFDM)解调器系统对象通过使用FFT操作解调OFDM输入信号,结果为N并行数据流。

图中显示了一个OFDM解调器。它由一个银行组成N每个OFDM子载波分配一个相关器,然后进行并行-串行转换。

保护带和间隔

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

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

选定的参考书目

[1]达尔曼,E.帕克瓦尔和J.斯科尔德。4G LTE/LTE-高级移动宽带.伦敦:爱思唯尔有限公司,2011。

[2]安德鲁斯,J. G.高希,R.穆哈默德,WiMAX基础,上马鞍河,新泽西州:普伦蒂斯大厅,2007年。

[3]IEEE标准802.16-2017。第16部分:宽带无线接入系统的空中接口2018年3月。

扩展功能

版本历史

在R2014a中引入