主要内容

带有用户指定导频索引的OFDM

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

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

ofdmMod = com . 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 =...猫(3 pilotIndicesAnt1 pilotIndicesAnt2 pilotIndicesAnt3);

基于现有的OFDM调制器系统对象,在具有两个接收天线的OFDM解调器上创建。方法确定数据和导频尺寸信息函数。

ofdmDemod = com . ofdm解调器(ofdmMod);ofdmDemod。numreceiveantenna = 2;dims = info(ofdmMod)
dim =带字段的结构:DataInputSize: [215 5 3] PilotInputSize: [6 5 3] OutputSize: [1360 3]

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

dataIn =...复杂(randn (dims.DataInputSize),...randn (dims.DataInputSize));pilotIn =...复杂(randn (dims.PilotInputSize),...randn (dims.PilotInputSize));

将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个类型为image, line的对象。

图OFDM子载波映射Tx天线2包含一个轴对象。标题为OFDM子载波映射Tx天线2的轴对象包含5个类型为image, line的对象。

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

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

pilotCompare =...abs (pilotIn (:: 1) * chanGain(1,1))——abs (pilotOut (:,:, 1, 1));max(pilotCompare(:) < 1e-10)
ans =逻辑1