此示例示出了如何构造一个正交频分调制(OFDM)调制器/解调器对,并指定其导频索引。OFDM调制系统的对象,可以指定导频子载波指数符合约束中所描述comm.OFDMModulator.info
。在这个例子中,用于在3×2的信道的OFDM传送,导频索引为每个三个发射天线创建的。此外,导频指数奇数和偶数符号之间是不同的。
创建具有五个符号,三个发射天线,和长度6个加窗的OFDM调制器的对象。
ofdmMod = comm.OFDMModulator('FFTLength', 256,...'NumGuardBandCarriers'(12;11),...'NumSymbols'5,...'NumTransmitAntennas',3,...'PilotInputPort',真正,...“窗”,真实,...“窗口长度”,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)
DIMS =同场的结构: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);
通过3×2随机信道传递经调制的数据。
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(:) <1E-10)
ANS =合乎逻辑1