这个例子展示了如何构造正交频分调制(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 =...猫(3 pilotIndicesAnt1 pilotIndicesAnt2 pilotIndicesAnt3);
基于现有的OFDM调制器系统对象,创建具有两个接收天线的OFDM解调器。确定数据和飞行员尺寸使用信息
函数。
ofdmDemod = comm.OFDMDemodulator (ofdmMod);ofdmDemod。NumReceiveAntennas = 2;dim = 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 =复杂(randn (3 2) randn (3 2));chanOut = modOut * chanGain;
使用OFDM解调器对象对接收数据进行解调。
[dataOut, pilotOut] = ofdmDemod (chanOut);
显示三个发射天线的资源映射。图中的灰色线表示为避免天线之间的干扰而设置的自定义零值。
showResourceMapping (ofdmMod)
对于第一发射和第一接收天线对,证明输入导频信号与输入导频信号相匹配。
pilotCompare =...abs (pilotIn (:: 1) * chanGain(1,1))——abs (pilotOut (:,:, 1, 1));max (pilotCompare(:) < 1平台以及)
ans =逻辑1