主要内容

comm.OFDMDemodulator

使用OFDM解调方法

描述

comm.OFDMDemodulator系统对象™解调时域信号通过使用正交频分复用(OFDM)的方法。有关更多信息,请参见OFDM解调。输出是输入的基带表示comm.OFDMModulator伴星。

一个OFDM解调信号:

  1. 创建comm.OFDMDemodulator对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

例子

ofdmDemod= comm.OFDMDemodulator创建一个OFDM解调器解调系统对象的输入信号采用正交分频解调方法。

例子

ofdmDemod= comm.OFDMDemodulator (的名字=价值)指定属性使用一个或多个名称参数。例如,comm.OFDMDemodulator (FFTLength = 128)为128副载波配置对象。

例子

ofdmDemod= comm.OFDMDemodulator (odfmMod)OFDM解调器设置对象属性根据指定的OFDM调制器对象。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

数量的快速傅里叶变换(FFT)点,指定为一个积极的,整数标量。FFT的长度必须大于或等于8,相当于副载波的数量。

数量的副载波分配给左、右后卫乐队,指定为一个2×1整数向量。左派和右派的数量保护带副载波,NleftG;NrightG),必须在[0,NFFT/ 2⌋−1),NFFT副载波的总数在指定的OFDM信号FFTLength。有关更多信息,请参见副载波分配、保护频带和保护间隔

选择删除零直流副载波,指定为一个数字或逻辑0()或1(真正的)。零直流副载波的中心频带,索引值:

  • (NFFT/ 2)+ 1时NFFT是偶数。

  • (NFFT+ 1)/ 2NFFT是奇数。

NFFT副载波的总数在指定的OFDM信号FFTLength

选择输出飞行员副载波,指定为一个数字或逻辑0()或1(真正的)。当你将此属性设置为:

  • 飞行员信息可能存在但仍嵌入到输出数据。

  • 真正的——对象分离飞行员副载波,通过指定PilotCarrierIndices从输出数据,并输出控制信号解调技术飞行员输出变量。

指数的飞行员副载波位置,指定为一个列向量,矩阵,或与integer-element 3 d数组值的范围

( N leftG + 1 , N FFT / 2 ] ( N FFT / 2 + 2 , N FFT N rightG ] ,

在哪里NFFT指定的副载波的总数吗FFTLength,NleftGNrightG指定的左和右后卫乐队吗NumGuardBandCarriers

你可以分配N飞行员导频指数相同或不同N信谊每个符号的副载波,NT发射天线。

  • 当飞行员指标是相同的每一个符号和传输天线,属性维度N飞行员1

  • 当飞行员指数不同符号,属性维度N飞行员——- - - - - -N信谊

  • 如果跨多个发射天线,接收信号分配一个符号属性维度N飞行员-by-1-by -NT

  • 如果指数不同符号和发射天线的数量,属性维度N飞行员——- - - - - -N信谊——- - - - - -NT

提示

最小化跨多个发射天线之间的干扰传输,每个符号的试验指标必须相互不同的天线。

依赖关系

适用于当您设置这个属性PilotOutputPort1

每个OFDM符号的循环前缀的长度,指定为一个积极的,整数标量或行向量包含NumSymbols元素。当你循环前缀长度指定为:

  • 标量的循环前缀长度是相同的所有符号通过天线。

  • 行向量——循环前缀的长度可能不同符号但不不同天线。

过采样因素,指定为一个积极的标量。过采样因子必须满足这些约束条件:

提示

如果你将过采样因子设置为一个无理数,指定部分的价值。例如,FFT长度12和过采样因子4/3他们的产品是整数16。然而,舍入4/31.333当设置过采样因素导致noninteger产品15.9960,从而导致一个代码错误。

数据类型:

OFDM符号的时频网格数量,指定为一个积极的,整数标量。

的接收天线接收OFDM调制信号,指定为一个积极的,整数标量小于或等于64年

使用

描述

例子

Y= ofdmDemod (X)输入使用OFDM时域信号解调方法并返回OFDM-demodulated基带信号。

例子

(Y,飞行员)= ofdmDemod (X)分离了飞行员在指定的副载波信号PilotCarrierIndices属性值。要启用这种语法,设置PilotOutputPort属性为true。

输入参数

全部展开

OFDM-modulated基带信号,指定为一个(NCPTotal+NFFT×N信谊)———NR矩阵。

您可以确定使用的维度信息对象的功能。

输出参数

全部展开

输出基带信号,作为一个矩阵或返回N数据——- - - - - -N信谊——- - - - - -NR数组中。输出时减少一个矩阵NR1

  • N数据是副载波数量的数据。有关更多信息,请参见信息对象的功能。

  • N信谊符号的数量,是指定的吗NumSymbols

  • NR接收天线的数量,是指定的吗NumReceiveAntennnas

有关更多信息,请参见副载波分配、保护频带和保护间隔

数据类型:
复数的支持:金宝app是的

控制信号,作为一个返回N飞行员——- - - - - -N信谊——- - - - - -NR数组中。

依赖关系

返回此输出,设置PilotOutputPort财产真正的

数据类型:
复数的支持:金宝app是的

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

信息 为OFDM解调器提供尺寸信息
showResourceMapping 显示副载波OFDM符号的映射由OFDM调制器和解调器系统对象
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

创建一个OFDM解调器系统对象™使用默认属性。修改一些属性。检查对象配置使用信息对象的功能。

ofdmDemod = comm.OFDMDemodulator
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:假CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 1 NumReceiveAntennas: 1
信息(ofdmDemod)
ans =结构体字段:InputSize: 80年[1]DataOutputSize: [53 1]

修改副载波的数量、符号和接收天线。也使飞行员的输出。

ofdmDemod。FFTLength=128; ofdmDemod.PilotOutputPort = 1; ofdmDemod.NumSymbols = 2; ofdmDemod.NumReceiveAntennas = 2;

验证数量的副载波和符号的数量改变。再考察维度通过使用输入和输出信号信息对象的功能。注意的飞行员输出维度的信息结构。因为接收天线的数量大于1,数据和飞行员输出尺寸是3 d数组而不是矩阵。

ofdmDemod
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 128 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:真正的PilotCarrierIndices: x1双[4]CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 2 NumReceiveAntennas: 2
信息(ofdmDemod)
ans =结构体字段:InputSize (288 2): DataOutputSize: [113 2 2] PilotOutputSize: [4 2 2]

创建解调器通过使用配置的调制器确保一对匹配的调制器和解调器。

创建一个指定四发射天线OFDM调制器。

ofdmMod = comm.OFDMModulator (NumTransmitAntennas = 4);

使用OFDM调制器创建OFDM解调器。

ofdmDemod = comm.OFDMDemodulator (ofdmMod);

显示OFDM调制器和解调器的性质,验证适用的属性匹配。发射天线的数量是独立的接收天线。

ofdmMod
ofdmMod = comm.OFDMModulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]InsertDCNull:假PilotInputPort:假CyclicPrefixLength: 16个窗口:假OversamplingFactor: 1 NumSymbols: 1 NumTransmitAntennas: 4
ofdmDemod
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:假CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 1 NumReceiveAntennas: 1

showResourceMapping目标函数显示了时频资源映射为每个传输天线。

创建一个OFDM解调器。

解调= comm.OFDMDemodulator;

通过使用显示OFDM子载波映射showResourceMapping对象的功能。

showResourceMapping(解调)

图所有Tx天线OFDM子载波映射包含一个坐标轴对象。坐标轴对象与标题所有Tx天线OFDM子载波映射,包含OFDM符号,ylabel副载波索引包含一个类型的对象的形象。

删除直流副载波。

解调。RemoveDCCarrier = true;

显示资源映射后删除直流副载波。

showResourceMapping(解调)

图所有Tx天线OFDM子载波映射包含一个坐标轴对象。坐标轴对象与标题所有Tx天线OFDM子载波映射,包含OFDM符号,ylabel副载波索引包含一个类型的对象的形象。

创建一个OFDM调制器直流零插入,七保护带副载波,和两个符号为每个符号有不同的试验指标。

ofdmMod = comm.OFDMModulator (NumGuardBandCarriers = [4;3),PilotInputPort = true,PilotCarrierIndices =猫(2 [12;26日;40;54]、[11;27个;39;55]),NumSymbols = 2,InsertDCNull = true);

确定输入数据,飞行员,和输出数据的维度。

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

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

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

创建一个控制信号,有正确的维度。

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

应用OFDM调制数据和试验信号。

modSig = ofdmMod (dataIn pilotIn);

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

ofdmDemod = comm.OFDMDemodulator (ofdmMod);

解调的OFDM信号和输出数据和试验信号。

[dataOut, pilotOut] = ofdmDemod (modSig);

验证输入数据和飞行员符号匹配输出数据和飞行员符号。

isSame = (max (abs ([dataIn (:)——dataOut (:);pilotIn (:)——pilotOut(:)))) < 1平台以及)
isSame =逻辑1

过滤的OFDM调制信号数据和飞行员输入和输出时生成的四倍采样率通过对于单通道的输出。解调channel-filtered信号和原始数据比较。

创建一个OFDM解调器对象有三个不同符号和飞行员副载波指数和循环前缀长度为每个符号。

ofdmDemod = comm.OFDMDemodulator (NumGuardBandCarriers = (9。8),RemoveDCCarrier = true,PilotOutputPort = true,PilotCarrierIndices =[[12、26、40; 54],[14; 28, 38岁,52],[12、26、40;54]],CyclicPrefixLength = [16 32],OversamplingFactor = 4,NumSymbols = 3);

创建一个OFDM调制器系统对象从OFDM解调器对象,ofdmDemod

ofdmMod = comm.OFDMModulator (ofdmDemod);

显示配置的副载波资源映射数据,飞行员,保护带和零信号使用showResourceMapping对象的功能。获得通过使用输入和输出维度信息信息对象的功能。

showResourceMapping (ofdmDemod);

图所有Tx天线OFDM子载波映射包含一个坐标轴对象。坐标轴对象与标题所有Tx天线OFDM子载波映射,包含OFDM符号,ylabel副载波索引包含3图像类型的对象,线。

modDim = info (ofdmMod);

创建随机数据和飞行员输入和应用QAM调制。

M = 16;xd =兰迪([0 m - 1], modDim.DataInputSize);dataIn = qammod (xd, M, UnitAveragePower = true);xp =兰迪([0 m - 1], modDim.PilotInputSize);pilotIn = qammod (xp, M, UnitAveragePower = true);

应用OFDM调制和飞行员QAM信号的数据。通过一个AWGN信道滤波器的信号。恢复数据和飞行员符号,应用OFDM解调,然后QAM-demodulation。

modOut = ofdmMod (dataIn pilotIn);chanOut = awgn (modOut 20“测量”);[dataOut, pilotOut] = ofdmDemod (chanOut);码= qamdemod (dataOut, M, UnitAveragePower = true);yp = qamdemod (pilotOut, M, UnitAveragePower = true);

验证数据和飞行员通过这个过程不变。

码dataSame = isequal (xd)
dataSame =逻辑1
pilotSame = isequal (xp, yp)
pilotSame =逻辑1

算法

全部展开

引用

[1]Dahlman, . . E。,S. Parkvall, and J. Skold.4 g LTE / LTE-Advanced移动宽带.London:爱思唯尔有限公司,2011年版。

[2]安德鲁j·G。,A. Ghosh, and R. Muhamed,WiMAX基础,上台北:普伦蒂斯霍尔,2007。

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

扩展功能

版本历史

介绍了R2014a

全部展开