主要内容

将OSTBC与TCM连接

该示例显示了与网格编码调制(TCM)级联的正交空时分组码(OSTBC),用于在具有2个发射天线和1个接收天线的多输入多输出(MIMO)信道上进行信息传输。该示例使用通信系统对象™ 来模拟这个系统。

介绍

OSTBCs [1.], [2.是一种具有吸引力的MIMO无线通信技术。它们充分利用空间分集顺序,并享受符号上的最大似然(ML)解码。然而,它们不提供编码增益。接收端用于OSTBC的合成器提供了传输符号的软信息,可用于解码或解调外部码。

中医(3.]是一种带宽有效的方案,它集成了编码和调制以提供较大的编码增益。将TCM与内部代码串联通常可以提高性能。

该示例说明了OSTBC和TCM级联方案的优点:OSTBC提供的空间分集增益和TCM提供的编码增益。为便于比较,还提供了两个仅包含TCM或OSTBC的参考系统。从仿真结果可以清楚地观察到级联方案相对于参考模型的分集和编码增益。有关连接OSTBC和TCM的更多讨论,请参见[4.], [5.及其参考文献。

这个配置tcmostbcdemo.m脚本创建用于模拟连接的OSTBC系统的System对象。它还初始化了一些仿真参数。

%TCM调制器的网格结构网格=poly2trellis([2,3],[1,2,0;4,1,2]);%创建连接的OSTBC系统的系统对象并设置模拟%参数,如信噪比和帧长。configureTCMOSTBCDemo

PSK TCM调制解调器和解调器

PSK TCM调制器System对象将随机消息数据调制到具有单位平均能量的PSK星座。TrellisStructure属性接受一个MATLAB®结构来指定TCM的网格。ModulationOrder属性指定PSK星座的大小。本例使用Ungerboeck TCM方案对8- psk星座进行8格状态的计算[3.],并将相应的网格结构属性设置为poly2trellis的结果([2 3],[1 2 0;4 1 2])。该对象的输出长度为50,因为每两个输入位产生一个符号。

PSK TCM解调器系统对象使用用于TCM的维特比算法对来自OSTBC组合器的信号进行解码。该示例将TerminationMethod属性设置为“截断”;因此独立处理每个帧。该示例还将TracebackDepth属性设置为30,与TCM的约束长度相比,该属性很长h以确保几乎无损的性能。

psktcmMod=通信PSKTCMMODATOR(网格,...“终止方法”,“截断”);
psktcmDemod=comm.PSKTCMDemodulator(网格,...“终止方法”,“截断”,...“TracebackDepth”30岁的...“OutputDataType”,“逻辑”);

正交空时分组码(OSTBC)

OSTBC编码器系统对象使用Alamouti代码对来自TCM编码器的信息符号进行编码[1.为2个发射天线。这个对象的输出是一个50x2矩阵,其中每一列的条目对应于从一个天线传输的数据。

OSTBC组合器System对象使用单个天线并利用信道状态信息(CSI)对接收的信号进行解码。该目标的步长方法的输出表示传输符号的估计,然后将这些估计输入PSK TCM解调器。在本例中,假定CSI在接收端是完全已知的。

ostbcEnc = comm.OSTBCEncoder;ostbcComb = comm.OSTBCCombiner;

2x1 MIMO衰落信道

2x1 MIMO衰落信道系统对象模拟从2个发射天线到1个接收天线的空间独立平坦瑞利衰落信道。

该示例将channel对象的maximumDopplerShift属性设置为30。使用该值的原因是使MIMO信道的行为类似于准静态衰落信道,即在一帧传输期间保持不变,并沿多帧变化。该示例将PathGainOutputPort属性设置为true以使用信道path增益值作为CSI的完美估计值。该示例还将RandomStream属性设置为“mt19937ar with seed”,以便对象使用自包含的随机数生成器生成可重复的信道系数。2x1 MIMO信道具有标准化的路径增益。

mimoChan = comm.MIMOChannel (...“SampleRate”1 / Tsamp,...“最大换档速度”,maxDopp,...“空间相关规范”,“没有”,...“NumReceiveAntennas”, 1...“RandomStream”,“带种子的mt19937ar”,...“PathGainsOutputPort”,对);

将OSTBC与TCM连接

这段代码调用级联OSTBC系统的处理环路。主环路逐帧处理数据,其中发射机使用8-PSK TCM调制器调制随机数据,然后应用Alamouti编码。来自OSTBC编码器的两个传输信号通过2x1 MIMO瑞利衰落信道和也会受到AWGN的影响。OSTBC组合器使用一个接收天线,并向8-PSK TCM解调器提供软输入。该示例将解调器的输出与生成的随机数据进行比较,以获得帧错误率(FER)。

流处理

带= 0 (3,1);虽然(fer(3) < maxNumFrms) && (fer(2) < maxNumFrms) data = logical(randi([0 1], frameLen, 1));%生成数据modData = psktcmMod(数据);%调节txSignal=ostbcEnc(modData);%应用Alamouti编码[chanOut,chanEst]=mimoChan(txSignal);% 2x1衰落信道rxSignal = awgnChan (chanOut);%增加接收机噪声modDataRx = ostbcComb (rxSignal,...挤压(chanEst));%解码dataRx=psktcmDemod(modDataRx);%解调frameErr=任何(数据接收-数据);%检查帧错误fer=FERData(错误,帧错误);%更新帧错误率结束

错误率测量系统对象FERData的步长方法输出一个3×1的向量,该向量包含测量的FER值、错误数和帧传输总数的更新。显示FER值。

frameErrorRate=fer(1)
frameErrorRate = 0.1481

平坦衰落信道下的TCM

本节示例在单输入单输出(SISO)平坦瑞利衰落信道上模拟先前级联方案中的TCM,无需空时编码。衰落信道具有与先前系统中2x1 MIMO衰落信道的一个子信道相同的规范。因此,示例的这一部分在释放衰落信道系统对象后,将其NumTransmitAntennas属性设置为1。本节示例还将AWGN信道系统对象的SignalPower属性设置为1,因为每个符号周期仅传输一个符号。

初始化处理循环

释放(mimoChan);mimoChan。NumTransmitAntennas = 1;awgnChan。SignalPower = 1;reset(FERData) fer = 0 (3,1);

流处理循环

虽然(fer(3) < maxNumFrms) && (fer(2) < maxNumFrms) data = logical(randi([0 1], frameLen, 1));%生成数据modData = psktcmMod(数据);%调节[chanOut,chanEst]=mimoChan(modData);%SISO衰落信道rxSignal = awgnChan (chanOut);%增加接收机噪声modDataRx=(rxSignal.*conj(chanEst))/...(陈* chan);%平衡dataRx=psktcmDemod(modDataRx);%解调frameErr=任何(数据接收-数据);%检查帧错误fer=FERData(错误,帧错误);%更新帧错误率结束

在2x1平坦瑞利衰落信道上的OSTBC

示例的这一部分用QPSK调制替换先前级联方案中的TCM,以便两个系统具有相同的符号(帧)速率。它使用与TCM-OSTBC级联模型中相同的2x1平坦瑞利衰落信道。QPSK调制器系统对象qpskMod将信息比特映射到QPSK星座,并且QPSK解调器系统对象qpskmodem解调来自OSTBC组合器的信号。

初始化处理循环

释放(mimoChan);mimoChan。NumTransmitAntennas = 2;awgnChan。SignalPower = 2;reset(FERData) fer = 0 (3,1);

流处理循环

虽然(fer(3) < maxNumFrms) && (fer(2) < maxNumFrms) data = logical(randi([0 1], frameLen, 1));%生成数据modData=qpskMod(数据);%调节txSignal=ostbcEnc(modData);%应用Alamouti编码[chanOut,chanEst]=mimoChan(txSignal);% 2x1衰落信道rxSignal = awgnChan (chanOut);%增加接收机噪声modDataRx = ostbcComb (rxSignal,...挤压(chanEst));%解码数据接收=QPSKDEMDEM(modDataRx);%解调frameErr=任何(数据接收-数据);%检查帧错误fer=FERData(错误,帧错误);%更新帧错误率结束

您可以在以前的处理循环周围添加for循环,以对一组SNR值运行模拟。SNR值为(10:2:24)dB、目标错误数为1000、最大传输数为5e6时,模拟脱机运行。下图显示了此模拟的结果。

总结

本例使用了几个System对象来模拟在2x1平坦瑞利衰落信道上使用TCM连接的OSTBC。该基础系统被改进为在SISO平坦衰落信道上建立一个TCM系统模型,在相同的2x1平坦瑞利衰落信道上建立一个OSTBC系统模型。系统性能测量使用FER曲线得到的错误率测量系统对象。这个例子表明,级联方案比TCM方案提供了显著的分集增益,比Alamouti码提供了大约2dB的编码增益。

附录

此示例使用以下脚本和助手函数:

选定的参考书目

  1. S. M. Alamouti,《无线通信的简单传输分集技术》,IEEE®通信选定领域期刊,第16卷,第8期,第1451-1458页,1998年10月。

  2. V.Tarokh,H.Jafarkhami和A.R.Calderbank,“正交设计的空时分组码,”IEEE信息论学报,第45卷,第5期,第1456-1467页,1999年7月。

  3. G.Ungerboeck,“多电平/相位信号的信道编码,”IEEE信息论学报,第IT-28卷,第1期,第55-67页,1982年1月。

  4. S. M. Alamouti, V. Tarokh, P. Poon,“栅格编码调制和发射分集:设计标准和性能评估”,出版IEEE国际通用个人通信会议录通讯(ICUPC'98),意大利佛罗伦萨,第1卷,1998年10月5-9日,第703-707页。

  5. Gong和K.B.Letaief,“衰落信道中采用网格编码调制的级联空时分组编码,”IEEE交易记录无线通信, vol. 1, no. 1第4页580-590页,2002年10月。