主要内容

具有用户指定导频指数的OFDM

这个例子展示了如何构造一个正交频分调制(OFDM)调制器/解调器对,并指定它们的导频指数。OFDM调制器系统对象使您能够指定导频子载波索引,与中描述的约束一致comm.OFDMModulator.info.在本例中,对于通过3x2信道的OFDM传输,为三个发射天线中的每一个创建导频指标。此外,奇数和偶数符号之间的导频索引是不同的。

创建一个OFDM调制器对象,有5个符号,3个发射天线,长度6个窗口。

ofdmMod = comm.OFDMModulator (“FFTLength”, 256,...“NumGuardBandCarriers”(12;11),...“NumSymbols”, 5,...“NumTransmitAntennas”3,...“PilotInputPort”,真的,...“窗口”,真的,...“WindowLength”6);

为第一发射天线的偶数和奇数符号指定导频指数。

pilotIndOdd = [20;58;96;145;182;210);pilotIndEven = [35;73;111;159; 197; 225]; pilotIndicesAnt1 = cat(2, pilotIndOdd, pilotIndEven, pilotIndOdd,...pilotIndEven pilotIndOdd);

根据为第一天线指定的指标生成用于第二和第三天线的导频指标。连接三个天线的指数,并将它们分配给PilotCarrierIndices财产。

pilotIndicesAnt2 = pilotIndicesAnt1 + 5;pilotIndicesAnt3 = pilotIndicesAnt1 - 5;ofdmMod。PilotCarrierIndices = cat(3, pilotIndicesAnt1, pilotIndicesAnt2, pilotIndicesAnt3);

基于现有的OFDM调制器系统对象,创建具有两个接收天线的OFDM解调器。方法确定数据和试点维度信息函数。

ofdmDemod = comm.OFDMDemodulator (ofdmMod);ofdmDemod。NumReceiveAntennas = 2;dim = info (ofdmMod)
dim =结构体字段:DataInputSize: [215 5 3]

根据中指定的阵列大小,生成OFDM调制器的数据和导频符号modDim

dataIn = complex(randn(dimm . datainputsize), randn(dimm . datainputsize));else if (randn(dimss . piltinputsize), randn(dimss . piltinputsize));

数据和导频采用OFDM调制。

modOut = ofdmMod (dataIn pilotIn);

通过3x2随机通道传递调制数据。

chanGain = complex(randn(3,2), randn(3,2));chanOut = modOut * chanGain;

使用OFDM解调器对象解调接收数据。

[dataOut, pilotOut] = ofdmDemod (chanOut);

显示三个发射天线的资源映射。图中的灰线表示自定义零值的放置,以避免天线间的干扰。

showResourceMapping (ofdmMod)

图OFDM子载波映射Tx天线1包含一个轴。标题为OFDM子载波映射Tx天线1的轴包含类型像、线5个对象。

图OFDM子载波映射Tx天线2包含一个轴。OFDM子载波映射Tx天线2的轴包含5个类型像、线的对象。

图OFDM子载波映射Tx天线3包含一个轴。标题为OFDM子载波映射Tx天线3的轴包含类型图像、线5个对象。

对于第一发射和第一接收天线对,演示所述输入导频信号与所述输入导频信号匹配。

pilotCompare = abs (pilotIn (:,: 1) * chanGain(1,1))——abs (pilotOut (:,:, 1, 1));max (pilotCompare(:) < 1平台以及)
ans =逻辑1