主要内容

使用光线追踪的室内MIMO-OFDM通信链路

这个例子展示了如何在室内环境中执行光线跟踪,并使用结果建立一个通道模型,用于MIMO-OFDM技术的链路级仿真。

简介

射线跟踪[1]已成为一种流行的技术,用于射频(RF)分析、站点规划、信道建模和链路级分析,因为现代通信系统的趋势是在数十GHz范围内的射频频率下工作。与随机模型不同,射线追踪方法是三维环境和特定的收发器位置,在周围环境中具有较高的灵敏度。由于没有一个简单的公式来计算基于距离的路径损失,射线追踪方法依赖于数值模拟,通常比现场测量成本更低。光线追踪的结果可用于建立通信系统的多径信道模型。例如,基于光线跟踪的通道模型已经在TR 38.901的第8节中指定[2]适用于5G和IEEE 802.11ay无线局域网[3]

本例从三维会议室中一个发射机和一个接收机之间的光线跟踪分析开始。计算射线被用来构造一个特定于两个地点的确定性通道模型。该信道模型用于MIMO-OFDM通信链路的仿真。这张图描述了通信链路。

光线追踪是在室内环境中进行的。同样的光线追踪方法可以应用于建立室内或室外环境的通道模型。有关室外城市环境中的光线追踪分析,请参阅使用光线追踪的城市联系和覆盖分析的例子。

三维室内场景

为一个有一张桌子和四把椅子的小会议室指定STL格式的室内3d地图。STL格式是最常见的3d地图格式之一,通常可以在各种3d软件中从其他3d地图格式转换而来。

mapFileName =“conferenceroom.stl”

定义5.8 GHz载频,计算波长

Fc = 5.8e9;Lambda = physconst(“光速”) / fc;

发射天线是一个四元均匀线性阵列(ULA),单元之间有两倍的波长。接收天线是一个4x4均匀矩形阵列(URA),元素之间有一个波长。属性指定两个天线arrayConfig对象。

txArray = arrayConfig(“大小”(4 - 1),“ElementSpacing”, 2 *λ);rxArray = arrayConfig(“大小”(4 - 4),“ElementSpacing”λ);

使用helperViewArray函数可视化ULA和URA几何图形,其中天线元素为输入/输出流编号。

helperViewArray (txArray);

图中包含一个轴对象。标题为Array Geometry的axis对象包含5个散点、文本类型的对象。

helperViewArray (rxArray);

图中包含一个轴对象。标题为Array Geometry的axis对象包含17个散点、文本类型的对象。

指定一个靠近房间上角的发射点,可以是Wi-Fi接入点。指定一个稍高于桌子和椅子前面的接收位置,代表笔记本电脑或移动设备。

Tx = txsite(“笛卡儿”...“天线”txArray,...“AntennaPosition”, (-1.46;-1.42;2.1),...“TransmitterFrequency”, 5.8 e9);Rx = rxsite(“笛卡儿”...“天线”rxArray,...“AntennaPosition”[。3;。3;.85),...“AntennaAngle”, 0。90);

使用siteviewer函数,使用指定的地图文件在站点查看器中以3-D方式查看场景。使用显示函数可视化发射器和接收器。

siteviewer (“SceneModel”, mapFileName);显示(tx,“ShowAntennaHeight”假)显示(rx,“ShowAntennaHeight”假)

通过左键单击进行平移,通过右键单击或使用滚轮进行缩放,通过单击中间按钮并拖动或按Ctrl并左键单击并拖动来旋转可视化。

射线跟踪

在发射端和接收端之间进行射线跟踪分析,并返回comm.Ray物体,使用射击和反射射线(SBR)方法。指定场景的表面材料为木头,并搜索最多2次反射的光线。SBR方法最多支持10阶反射。

pm =传播模型(“射线”...“CoordinateSystem”“笛卡儿”...“方法”“sbr”...“AngularSeparation”“低”...“MaxNumReflections”2,...“SurfaceMaterial”“木”);射线= raytrace(tx,rx,pm);

从单元格数组返回中提取计算射线。

射线=射线{1,1};

通过观察每条射线的反射数、传播距离和路径损耗值来检查射线跟踪结果。共发现25条射线(一条视线射线,6条反射射线,18条反射射线)。

(射线。NumInteractions]
ans =1×240 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
(射线。PropagationDistance]
ans =1×242.7602 2.8118 2.8487 2.8626 3.2029 4.6513 4.6719 2.8988 2.9125 2.9481 3.2475 3.2916 3.3243 4.6821 4.7247 4.7331 4.7433 4.7936 4.9269 4.9464 5.9869 6.7170 8.0161 8.0460
(射线。PathLoss]
ans =1×2454.0726 69.6707 67.5233 68.1497 70.4850 75.0803 73.6356 83.2310 82.2204 81.8869 82.8515 83.7011 82.9098 84.5205 81.5320 83.6372 88.8663 89.4520 86.2585 84.7121 90.4210 91.8353 95.6042 93.6017

使用情节函数在站点查看器中绘制3-D场景中的射线。每条射线都根据其路径损耗值进行着色。单击一条射线可查看有关该射线的信息。

情节(射线,“Colormap”飞机,“ColorLimits”[95])

射线追踪的确定性通道模型

利用上述射线追踪结果创建一个确定性多径通道模型。指定接收机的瞬时速度,以反映设备在室内环境中的典型低移动性。

rtChan = com . raytracingchannel(射线,tx,rx);rtChan。SampleRate = 300e6;rtChan。ReceiverVirtualVelocity = [0.1;0.1;0]
rtChan = com . raytracingchannel with properties: SampleRate: 300000000 PropagationRays: [1×24 com . ray] MinimizePropagationDelay: true TransmitArray: [1×1 arrayConfig] TransmitArrayOrientationAxes: [3×3 double] ReceiveArray: [1×1 arrayConfig] ReceiveArrayOrientationAxes: [3×3 double] ReceiverVirtualVelocity: [3×1 double] normalizesuppresserespses: true NormalizeChannelOutputs: true ChannelFiltering: true

使用showProfile对象函数可视化功率延迟剖面(PDP),光线在通道中的出发角(AoD)和到达角(AoA)。在可视化中,PDP除了考虑每条射线的路径损失外,还考虑了发射和接收阵列模式增益。

showProfile (rtChan);

图中包含3个轴对象。标题为Power Delay Profile的Axes对象1包含一个类型为stem的对象。轴对象2与标题角度出发包含7对象类型颤抖,文本。轴对象3与标题角度的到达包含7对象类型颤抖,文本。

使用信息对象函数获取发送和接收元素的个数。

rtChanInfo = info(rtChan)
rtChanInfo =带字段的结构:CarrierFrequency: 5.8000e+09 CoordinateSystem: 'Cartesian' TransmitArrayLocation: [3×1 double] ReceiveArrayLocation: [3×1 double] NumTransmitElements: 4 NumReceiveElements: 16 ChannelFilterDelay: 7 ChannelFilterCoefficients: [24×21 double] NumSamplesProcessed: 0 LastFrameTime: 0
numTx = rtChanInfo.NumTransmitElements;numRx = rtChanInfo.NumReceiveElements;

系统参数

配置一条使用LDPC编码、64-QAM和256个子载波的OFDM通信链路。每帧指定4个LDPC码字,结果是每帧有50个OFDM符号。

创建LDPC编码器和解码器配置对象cfgLDPCEnc = ldpcEncoderConfig(dvbs2ldpc(1/2));cfgLDPCDec = ldpcDecoderConfig(cfgLDPCEnc);numCodewordsPerFrame = 4;codewordLen = cfgldpcc . blocklength;每个子载波的QAM调制参数bitsPerCarrier = 6;modOrder = 2^bitsPerCarrier;codeRate = cfgldpcc . codeRate;创建OFDM调制器和解调器对象fftLen = 256;cpLen = fftLen/4;numGuardBandCarriers = [9;8);pilotCarrierIdx = [19:10:119, 139:10:239]';numDataCarriers =...fftLen - sum(numGuardBandCarriers) - length(pilotCarrierIdx) - 1;numOFDMSymbols =...numCodewordsPerFrame * codewordLen /...bitsPerCarrier / numDataCarriers / numTx;ofdmMod = com . ofdmmodulator (...“FFTLength”fftLen,...“NumGuardBandCarriers”numGuardBandCarriers,...“InsertDCNull”,真的,...“PilotInputPort”,真的,...“PilotCarrierIndices”pilotCarrierIdx,...“CyclicPrefixLength”cpLen,...“NumSymbols”numOFDMSymbols,...“NumTransmitAntennas”, numTx);ofdmDemod = com . ofdm解调器(ofdmMod);ofdmDemod。numreceiveantenna = numRx;cd = com .星座图(...“ReferenceConstellation”, qammod(0:modOrder-1, modOrder,“UnitAveragePower”,真正的),...“XLimits”, [-2 2],...“YLimits”, [-2 2]);

创建错误率计算对象,用于计算误码率。

errRate = com . errorrate;

赋Eb/No值,并由此得到AWGN的信噪比值。

EbNo = 30;% (dB)信噪比= convertSNR(EbNo,“ebno”...“BitsPerSymbol”bitsPerCarrier,...“CodingRate”, codeRate);SNRLin = 10^(SNR/10);%的线性

链路仿真

helperIndoorRayTracingWaveformGen函数通过执行以下步骤在发射机现场生成由一帧组成的波形:

  1. 通过LDPC编码随机生成的位

  2. 通过64-QAM调制编码位

  3. 应用OFDM调制将信号从频域转换为时域

rng (100);为可重复性设置RNG[txWave, srcBits] =...helperIndoorRayTracingWaveformGen (...numCodewordsPerFrame、cfgLDPCEnc modOrder ofdmMod);

通过射线跟踪通道模型传递波形并添加白噪声。为了考虑信道滤波延迟,在波形的末尾附加一个空OFDM符号。

chanIn = [txWave;0 (fftLen + cpLen,numTx)];[chanOut,CIR] = rtChan(chanIn);rxWave = awgn(chanOut,SNRLin,numTx/numRx,“线性”);

helperIndoorRayTracingRxProcessing函数通过执行以下步骤在接收端解码信道受损波形:

  1. 利用信道脉冲响应(CIR)输出和来自信道对象的信道滤波器系数来完善信道估计信息方法。

  2. OFDM解调将信号带回频域

  3. 每个子载波上的符号均衡

  4. 软64-QAM解调得到LLR

  5. LDPC译码

[decBits, eqSym] =...helperIndoorRayTracingRxProcessing (rxWave,圆形的,...rtChanInfo、cfgLDPCDec modOrder、ofdmDemod SNRLin);cd (eqSym (:));

计算数量:

ber = errRate(srcBits,double(decBits));disp (ber (1));
0.0212

若要绘制针对EbNo值范围的误码率曲线,请使用helperIndoorRayTracingSimulationLoop函数在每个EbNo值处重复上述单帧处理,最多可重复300帧。

EbNoRange = 27:36;helperIndoorRayTracingSimulationLoop (...cfgLDPCEnc、cfgLDPCDec ofdmMod、ofdmDemod rtChan, errRate,...modOrder、numCodewordsPerFrame EbNoRange);

图中包含一个轴对象。axis对象包含一个line类型的对象。

结论及进一步探索

本例展示了如何在室内会议室中使用光线跟踪结果构建确定性通道模型。使用LDPC和MIMO-OFDM技术对信道模型进行了链路级仿真,并绘制了误码率结果。

进一步的探索包括但不限于:

  • 不同的3d地图和/或表面材料

  • 不同的发射机和/或接收机位置

  • 不同的发射和/或接收天线阵列规格

  • 不同的发射和/或接收天线阵列方向

  • SBR射线追踪方法的反射数更高

  • 发射和/或接收波束形成

附录

本例使用了以下helper函数:

选定的参考书目

Z. Yun和M. F. Iskander "无线电传播建模的射线跟踪:原理和应用”,IEEE访问, 2015年7月,第3卷,第1089-1100页。

[2] 3gpp tr 38.901。0.5 ~ 100ghz频段信道模型研究。第三代伙伴计划;技术规范集团无线接入网。

马尔采夫,A。et al。802.11ay信道模型.IEEE 802.11-15/1150r9, 2017年3月。

另请参阅

功能

对象

相关的话题

Baidu
map