2013全国研究生数学建模——射线跟踪仿真

    2013年9月20日开始的四天半,与理学院的两名同学一起参加了全国研究生数学建模竞赛,题目是“微蜂窝环境中无线接收信号的特性分析",通信相关的太专业的概念没完全弄明白,但通过射线跟踪模型仿真城市环境中无线信号的接收让我获益很多,仿真的Matlab实现也花费了很多精力,所以把主要的思想记录下来,不断进步吧。


    为了模型的简单高效和去粗取精,城市中无限信号的传输被简化成这样:不考虑城市中建筑物的高度,即无线电信号在城市峡谷中”穿梭“,这样三维世界简化成了二维的模型,建筑物用多边形块来表示。从基站均匀发出若干条射线(无线电信号),射线遇到建筑物边发生反射(出射角等于入射角),遇到建筑物顶点发生绕射(重新向各个方向均匀出射),因为反射和绕射都会有能量损耗,所以超过规定次数的反射、绕射后射线就停止传播了。

    题目给出城市布局,信号发射点和接收点的位置坐标,要求通过射线跟踪仿真得到从发射点到接收点有多少条主要的传播路径。            

    整个过程用Matlab模拟实现,显然,在进行射线跟踪仿真时初始均匀发射射线以及绕射重新发射射线的条数,即量化精细程度会影响仿真的结果。均匀发射射线条数越多,量化越精细,结果越准确,但同时计算耗时越多。

    程序实现中主要的问题包括:(1)表示建筑物和射线的数据结构。(2)射线前进中与建筑物的相交判断。对于反射的模拟,以上两点可以比较好地解决,我们采用了y = kx+b这样的斜截式直线方程表示射线,这样求交点、确定反射后新的射线等都可以通过解析的方式解决。(3)绕射模拟设计。(4)记录射线传播。绕射的模拟比单纯的反射要复杂很多,因为每条射线发生绕射后会fork出若干条新的射线,新的射线也可能继续fork。而”分叉“的过程是一个递归的过程,程序设计起来需要思路很清晰。记得比赛的几天时间很紧张,我通过递归+循环+各种if判断成功模拟了不停反射和绕射的过程,但程序很凌乱,可读性不好且不易理解,看来递归程序的设计真的是很考验人的。至于射线传播路径的记录,得益于从TSP问题借鉴来的思想,递归地实现,用deep变量来记录当前深度。

    从程序运行的结果图可以很直观地看到,右边的基站各向均匀地模拟发射了50条射线,按照反射和绕射的既定规律以及能量衰减规律模拟所有射线的传播。结果与我们设想的类似,基站附近信号很多,受到周围建筑物的阻拦其他各个位置信号强度各不相同,红线表示从发射点到接收点的所有传播路径,其中经过了若干次反射和绕射。

    射线跟踪是移动运营商规划城市网络时常用的方法,这次试着用程序仿真了一下,从结果图中直观地感受到了无线电传播受周围障碍物的影响。虽然无线通信的原理还是不太理解,但相信接着努力去探究一定可以豁然于心。

转载于:https://www.cnblogs.com/Zeee/p/3360270.html

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值