主要内容

OSTBC与中医联用

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

简介

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

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

本例说明了OSTBC和TCM拼接方案的优点:OSTBC提供的空间分集增益和TCM提供的编码增益。为了进行比较,还提供了仅包含TCM或OSTBC的两个参考系统。从仿真结果可以清楚地观察到级联方案相对于参考模型的分集和编码增益。关于连接OSTBC和TCM的更多讨论可以在以下文件中找到,例如,[4]、[5]和其中的参考文献。

configureTCMOSTBCDemo.mscript创建用于模拟连接的OSTBC系统的系统对象。它还初始化了一些仿真参数。

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

PSK TCM调制器和解调器

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

PSK TCM解调器系统对象使用Viterbi算法对来自OSTBC合成器的信号进行解码。示例将TerminationMethod属性设置为'Truncated';因此独立地对待每一帧。该示例还将TracebackDepth属性设置为30,与TCM的约束长度相比,它足够长,可以确保几乎无损的性能。

psktcmMod = com . psktcmmodulator(格子,...“TerminationMethod”“截断”);
psktcmDemod = com . psktcmdemodulator(格子,...“TerminationMethod”“截断”...“TracebackDepth”30岁的...“OutputDataType”“逻辑”);

正交空时分组码(OSTBC)

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

OSTBC合成器系统对象使用一个天线,利用信道状态信息(CSI)对接收到的信号进行解码。该对象的步进法输出表示传输符号的估计,然后将其送入PSK TCM解调器。在本例中,假定接收端完全知道CSI。

ostbcEnc = com . ostbcencoder;ostbcComb = com . ostbccombiner;

2x1 MIMO衰落信道

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

该示例将通道对象的maximumDopplerShift属性设置为30。使用此值的原因是使MIMO信道表现为准静态衰落信道,即它在一帧传输中保持不变,在多帧中变化。该示例将PathGainsOutputPort属性设置为true,以使用通道路径增益值作为CSI的完美估计。该示例还将RandomStream属性设置为'mt19937ar with seed',以便对象使用一个自包含的随机数生成器来生成可重复的通道系数。2x1 MIMO信道具有归一化路径增益。

mimoChan = com . mimochannel (...“SampleRate”1 / Tsamp,...“MaximumDopplerShift”maxDopp,...“SpatialCorrelationSpecification”“没有”...“NumReceiveAntennas”, 1...“RandomStream”“mt19937ar with seed”...“PathGainsOutputPort”,真正的);

OSTBC与中医联用

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

流处理

Fer = 0 (3,1);(fer(3) < maxNumFrms) && (fer(2) < maxNumErrs) data = logical(randi([0 1], frameLen, 1));生成数据modData = psktcmMod(数据);%调节txSignal = ostbcEnc(modData);%应用Alamouti编码[chanOut, chanEst] = mimoChan(txSignal);% 2x1衰落通道rxSignal = awgnChan(chanOut);%添加接收器噪音modDataRx = ostbcComb(rxSignal,...紧缩(成龙));%解码dataRx = psktcmDemod(modDataRx);%解调frameErr = any(dataRx - data);%检查帧错误fer = FERData(false, frameErr);更新帧错误率结束

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

frameErrorRate = fer(1)
frameErrorRate = 0.1481

平坦衰落信道上的TCM

本节示例模拟了前面的单输入单输出(SISO)平坦瑞利衰落信道上的串联方案中的TCM,没有空时编码。衰落信道的规格与前面系统中2x1 MIMO衰落信道的一个子信道相同。因此,本节示例将衰落通道系统对象的numtransmitantenna属性在释放后设置为1。本节示例还将AWGN信道系统对象的SignalPower属性设置为1,因为每个符号周期只传输一个符号。

初始化处理循环

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

流处理循环

(fer(3) < maxNumFrms) && (fer(2) < maxNumErrs) 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 = any(dataRx - data);%检查帧错误fer = FERData(false, frameErr);更新帧错误率结束

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

本节示例使用QPSK调制替代前面连接方案中的TCM,以便两个系统具有相同的符号(帧)速率。它使用与TCM-OSTBC级联模型相同的2x1平坦瑞利衰落信道。QPSK调制器系统对象qpskMod将信息位映射到QPSK星座,QPSK解调器系统对象QPSKDemod解调来自OSTBC合成器的信号。

初始化处理循环

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

流处理循环

(fer(3) < maxNumFrms) && (fer(2) < maxNumErrs) data = logical(randi([0 1], frameLen, 1));生成数据modData = qpskMod(data);%调节txSignal = ostbcEnc(modData);%应用Alamouti编码[chanOut, chanEst] = mimoChan(txSignal);% 2x1衰落通道rxSignal = awgnChan(chanOut);%添加接收器噪音modDataRx = ostbcComb(rxSignal,...紧缩(成龙));%解码dataRx = qpskDemod(modDataRx);%解调frameErr = any(dataRx - data);%检查帧错误fer = FERData(false, frameErr);更新帧错误率结束

您可以在前面的处理循环周围添加for循环,以运行一组信噪比值的模拟。离线运行仿真,信噪比值为(10:2:24)dB,目标误差数为1000,最大传输数为5e6。下图显示了该模拟的结果。

总结

这个示例使用了几个System对象在2x1平坦瑞利衰落信道上模拟了带有TCM的级联OSTBC。该基础系统被修改为基于SISO平坦衰落信道的TCM系统和基于相同2x1平坦瑞利衰落信道的OSTBC系统。系统性能的测量使用的FER曲线与错误率测量系统对象。该实例表明,与TCM方案相比,串联方案提供了显著的多样性增益,与Alamouti码相比,该方案提供了约2dB的编码增益。

附录

本例使用了以下脚本和helper函数:

选定的参考书目

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

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

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

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

  5. Y. Gong和K. B. Letaief,“衰落信道中网格编码调制的级联空时块编码”,IEEE汇刊无线通信,第1卷,no。4,第580-590页,2002年10月。