主要内容

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

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

介绍

射线跟踪[1]已成为一种流行的射频(RF)技术分析、站点规划、信道建模和链路级分析,这是由于现代通信系统在数十GHz范围内的射频频率下运行的趋势。与随机模型不同,光线跟踪方法是三维环境和收发器站点特定的,在周围环境中具有高灵敏度。无需sim卡ple公式计算基于距离的路径损耗时,射线跟踪方法依赖于数值模拟,通常比现场测量成本更低。射线跟踪的结果可用于建立通信系统的多径信道模型。例如,TR 38.90第8节中规定了基于射线跟踪的信道模型1.[2]用于5G和IEEE 802.11ay用于WLAN[3]

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

光线跟踪在室内环境中执行。相同的光线跟踪方法可用于为室内或室外环境构建通道模型。有关室外城市环境中的光线跟踪分析,请参阅基于光线跟踪的城市连接和覆盖分析的例子。

三维室内场景

指定STL格式的小型会议室室内3-D地图(一桌四椅)。STL格式是最常见的3-D地图格式之一,通常可以在各种3-D软件中从其他3-D地图格式进行转换。

映射文件名=“conferenceroom.stl”;

定义5.8 GHz的载频并计算波长

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

发射天线为4单元均匀线性阵列(ULA),单元间波长为2倍。接收天线为4x4均匀矩形阵列(URA),单元间波长为1。两个天线均由arrayConfig对象

txArray = arrayConfig (“尺寸”,[4 1],“元素间距”, 2 *λ);rxArray = arrayConfig (“尺寸”,[4 4],“元素间距”,lambda);

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

HelperWebArray(txArray);

helperViewArray(rxArray);

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

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

使用siteviewer使用指定的地图文件在Site Viewer中以三维方式查看场景的函数。使用显示用于显示发射器和接收器的功能。

siteviewer(“场景模型”, mapFileName);显示(tx,“显示重量”,假)显示(rx,“显示重量”,错)

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

射线跟踪

在发射器和接收器站点之间执行光线跟踪分析,并返回通信雷对象,使用拍摄和反弹光线(SBR)方法。将场景的表面材质指定为木材,并搜索最多具有2个反射的光线。SBR方法支持多达10阶的反射。金宝app

pm=传播模型(“射线”,...“CoordinateSystem”,“笛卡尔”,...“方法”,“丁苯橡胶”,...“角度分离”,“低”,...“MaxNumReflections”2,...“SurfaceMaterial”,“木头”);射线=光线跟踪(tx, rx点);

从单元格数组返回中提取计算出的光线。

射线=射线{1,1};

通过观察每条射线的反射次数、传播距离和路径损失值来检查射线追踪结果。有25条射线(一条视线射线,6条射线有一次反射,18条射线有两次反射)。

[射线、中子辐射]
ans=1×250 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[光线传播距离]
ans=1×252.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.9868 5.9868 6.7170 8.0161 8.0460
(射线。PathLoss]
ans=1×2556.5350 72.1633 70.0647 72.3180 73.3102 76.4133 76.4508 81.5418 83.8254 81.5531 83.6891 83.7784 85.7801 85.8271 83.7662 86.0508 91.6822 91.7764 86.5438 86.5283 91.2898 91.2969 94.8444 96.4455 96.4796

使用情节函数用于在Site Viewer中绘制三维场景中的光线。每条光线根据其路径损耗值着色。单击光线以查看有关该光线的信息。

绘图(光线,“彩色地图”喷气式飞机“颜色限制”,[50, 95])

基于光线跟踪的确定性信道模型

使用上述光线跟踪结果创建确定性多径信道模型。指定接收器的瞬时速度,以反映室内环境中设备的典型低移动性。

rtChan = comm.RayTracingChannel(射线、tx rx);rtChan。SampleRate = 300 e6;rtChan。ReceiverVirtualVelocity = (0.1;0.1;0]
rtChan = comm.RayTracingChannel属性:SampleRate: 300000000 PropagationRays:[1×25 comm.Ray] MinimizePropagationDelay:真正的TransmitArray:[1×1 arrayConfig] TransmitArrayOrientationAxes:[3×3双]ReceiveArray:[1×1 arrayConfig] ReceiveArrayOrientationAxes:[3×3双]ReceiverVirtualVelocity:[3×1双]NormalizeImpulseResponses:NormalizeChannelOutputs: true ChannelFiltering: true

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

showProfile(rtChan);

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

rtChanInfo = info (rtChan)
rtChanInfo=结构体字段:载波频率:5.8000e+09坐标系统:“笛卡尔”发射机阵列位置:[3×1双精度]接收机阵列位置:[3×1双精度]num发射机位置:[3×1双精度]num发射机位置:4个接收元件:16信道滤波器延迟:7信道滤波器效率:[25×21双精度]numsamples进程:0上一帧时间: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=cfgLDPCEnc.BlockLength;%每子载波QAM调制参数比特载波=6;modOrder=2^比特载波;codeRate=cfgLDPCEnc.codeRate;%创建OFDM调制解调器和解调器对象fftLen = 256;cpLen = fftLen / 4;numGuardBandCarriers = [9;8);[19:10:119, 139:10:239]';numDataCarriers =...fftLen - sum(numguarddbandcarriers) - length(pilotCarrierIdx) - 1;numOFDMSymbols =...numCodewordsPerFrame*codewordLen/...比特载波/numDataCarriers/numTx;ofdmod=comm.OFDMModulator(...“FFT长度”,fftLen,...“NumGuardBandCarriers”,numGuardBandCarriers,...“InsertDCNull”符合事实的...“PilotInputPort”符合事实的...“引航员”,PilotcarriedX,...“周期引用长度”cpLen,...“NumSymbols”numOFDMSymbols,...“NumTransmitAntennas”,numTx);ofdmDemod=comm.OFDMDemodulator(ofdmMod);ofdmDemod.numreceiveantenics=numRx;

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

错误率=通信错误率;

为AWGN分配Eb/No值并从中导出SNR值。

EbNo = 30;%分贝bitsPerSymbol=比特载波*码率;snr=10^(EbNo/10)*比特码;%线性的

链路模拟

这个HelperinDoorRayTracingWaveOrmGen函数通过执行以下步骤,在变送器现场生成由一帧组成的波形:

  1. 用LDPC编码随机产生的比特

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

  3. 应用OFDM调制实现信号的频域到时域转换

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

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

信道输入=[txWave;零(fftLen+cpLen,numTx)];[chanOut,CIR]=rtChan(信道输入);rxWave=awgn(信道输出,信噪比,numTx/numRx,“线性”);

这个helperIndoorRayTracingRxProcessing功能通过执行以下步骤,在接收器站点对信道受损波形进行解码:

  1. 使用信道冲激响应(CIR)输出和来自信道对象的信道滤波器系数进行完美信道估计信息方法。

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

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

  4. 软64-QAM解调获得LLR

  5. LDPC译码

[十进制位,eqSym]=...helperIndoorRayTracingRxProcessing(rxWave,CIR,...rtChanInfo、cfgLDPCDec、modOrder、ofdmDemod、snr);

计算数量:

ber=错误率(srcBits,double(decBits));disp(ber(1));
0.0140

要根据EbNo值范围绘制BER曲线,请使用helperIndoorRayTracingSimulationLoop函数在每个EbNo值处重复上述单帧处理多达300帧。

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

结论与进一步探讨

这个例子展示了如何在室内会议室使用光线追踪结果建立一个确定的通道模型。利用LDPC和MIMO-OFDM技术对信道模型进行了链路级仿真,并绘制了误码率结果。

进一步勘探包括但不限于:

  • 不同的三维贴图和/或表面材质

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

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

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

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

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

附录

这个例子使用了以下帮助函数:

精选书目

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

[2] 3GPP TR 38.901。研究频率为0.5 ~ 100ghz的信道模型。第三代合作项目;技术规范组无线接入网。

[3] Maltsev、。802.11ay的信道模型.IEEE 802.11-15/1150r9, 2017年3月。

另见

功能

物体

相关话题