5

关于房间无线信号强度的计算

 3 years ago
source link: https://iphyer.github.io/blog/2012/10/02/electromagnetic-waves/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

关于房间无线信号强度的计算

前几天,在小百合上看到一个同学的提问,忽然也想到自己可以计算一下无线强度的分布。 同学的提问如下:

发信人: xiaodr (ct), 信区: D _ Physics 标 题: [转载] 问大神一个问题 发信站: 南京大学小百合站 (Fri Sep 14 13:09:00 2012)

现在我有一个房间(假设是平面的),这个房间有门,隔板,桌子,墙壁,等等,现在在 房间的某个地方有一个无线路由(假设以某个频率某个强度各向同性地向四周发射信号) ,我想计算房间的各个地方能够接收到的无线信号的强度,不知该如何下手。求大神指点 !谢谢。对了,各个不同的介质应该对应不同的信号吸收系数,请问该如何得到这些不同材质的信 号吸收系数。

tu1

本来以为是一个很简单的模型,结果越研究越惊讶。这个模型的计算事实上很难很难。今天在图书馆仔细看了半天专业书籍,才在一本书上查到了关键的模型和算法。现在整理一下与大家分享。

最后提一下事实上最好的方法是实地测量,任何的理论计算都是简化模型的方法。因为这个模型的计算非常复杂。

物理模型建立

电磁波的传播机制

空间电磁波的传播是人们历来研究的重点。从传播方式上看,电磁波在空间的传播主要有如下五种途径:

直射传播又被称为视线传播(LOS)传播,是一种没有遮挡的空间中传播的方式。从理论上可以知道,在发射功率一定的情况,如果是球面的传播方式分布因为球面面积是$r^ 2$的变化规律,所以功率分布会随着$r^ {-2}$的衰减。

对于室内环境,直线传播也是存在的同时是我们研究室内传播的主要方式。这时可以忽略空气密度和湍流这些波动。

电磁波在碰到大型物体的表面的时候,往往会存在反射。反射后的电磁波可以用平面波来描述。

对于室外环境,因为反射波的多次反射往往会使得反射波衰减很多;但是对于室内环境,反射波传播距离短,同时反射物的分布与形状不确定,所以往往需要重新考虑具体的情况和分布。

衍射传播是一种电磁波绕过障碍物继续传播的现象。但是这并不都是意味着电磁波的加强,在考虑到电磁波相位的条件下,往往会出现衍射后的电磁波又相互干涉叠加,有的区域加强有的区域减弱。

在无线电信道中,衍射的性质取决于衍射物的集合外形,电磁波传播的方向,相位,极化。物理上往往用$Huygens-Fresenel$原理来解释衍射现象。从理论上说,如果衍射物体在$Fresenel$区域会带来一个阴影区域导致电磁波的衰减。

当电磁波传播的空间存在比电磁波波长还要小的物体,特别是不规则几何外形物体时,就会发生散射。散射的出现会导致电磁波信号的衰减。但是往往对于无线电波的波长而言,很少的物体可以散射;而表面粗糙的家具等带来的散射可以忽略。

当电磁波射向障碍物的时候可能发生透射传播,透射传播的损耗往往和物体的厚度与性质有关。此外,电磁波的频率也会影响电磁波的穿透能力。

对于无线网络的部署,最最重要的就是计算出信号的覆盖范围。这往往是转化为路径损耗来进行计算的。在任何的情况下,计算信号的覆盖范围的依据都是路径损耗。大部分的路径损耗都和天线的位置与接收物体的位置有关。

路径损耗代表大尺度空间的电磁波传播特性,总体而言表现为幂定律的特性。

自由空间传播损耗特性

电磁波在自由空间的传播特性为:直线传播,没有吸收,散射,衍射,透射等。电磁波的能量因为和发射点的距离增加而衰减。

设在距离天线半径为$d$的球面上的一点的信号强度密度等于发射信号强度除以空间球的表面积。其中发射功率为$P_t$,接收功率为$P_r$,则:

$P_r =P_t G_t G_r( \frac{\lambda}{4 \pi d})^ 2$

其中$G_t$,$G_r$分别为发射和接收的天线增益。

现在我们把$P_0 =P_t G_t G_r( \frac{\lambda}{4 \pi })^ 2$作为基本单位的度量,也就是在$d=1 m$的地方的辐射功率设为接收信号的强度。则我们可以把式(1)改写为:

$ P_r=\frac{P_0}{d^ 2} $

则对于理想天线的增益都认为是1,则自由空间的损耗可以称之为基本损耗,定义为:

$ L_{fs}=\frac{P_t}{P_r}=(\frac{4 \pi d}{\lambda})^ 2 $

则用dB为单位的时候为:

$ L_{fs}=32.4478+20 lg f (MHZ)+20lg d (km) $

这里的次幂2称为距离功率斜率或路径损耗斜率或者路径损耗指数。作为距离函数的信号强度每增加十倍的距离损耗20dB,或者距离每增加2倍损耗6 dB。

需要注意的是上述公式一般适用于远场条件下,对于发射端和接收端不可以完全分离的情况并不是完全适用。

对于波长大于几个波长的宏观天线而言,远场的标准是$d \geq 2 \frac{L^ 2}{\lambda}$,$L$为天线的主尺寸。

实际路径损耗公式

所以总结幂定律我们可以得到如下的规律总计: 路径损耗$L_p$为

$ L_p=L_0+10 n lgd $

其中$L_0=10lg P_t - 10 lg P_0$作为第$1m$的损耗,其中$P_0 =P_t G_t G_r ( \frac{\lambda}{4 \pi })^ 2$。实际可以接收到的功率等于发射功率减去总的路径损耗。

下面给出不同条件下距离功率斜率表:

tu2

其他影响因素

对于电磁波传播这样复杂的问题注定了,我们上面的模型依然非常粗糙。下面列出一些影响因素,大家如果有兴趣可以自己阅读这本书。

  • 阴影衰落特性
  • 多径信道特性
  • 时延拓展与相干带宽
  • 多普勒拓展与相干时间
  • 角度拓展与相干距离
  • 色散与平坦

无线信道损耗模型

综合考虑以上的因素后,我们可以得到新的模型,也是具有大量参数同时需要仔细考虑使用的模型,在这本书的$49$页详细的列举了不同的参量模型的使用。

这里我们使用下面这个模拟公式进行模拟,这个公式的选择带有主观性。更好的方法是实地测量然后拟合出一个新的公式来计算。但是如果只是为了探究,一下的这个公式不失为一个很好的尝试。

$L_p=L_{p}+k_s L_s+k_h L_h$

其中$L_p$为在自由空间传播的衰减,即$L_p=L_0+10 n lg d $,$k_s$和$k_h$分别为软墙和硬墙的隔墙数。而他们相应的路径损耗为$L_s$和$L_h$典型值分别取为$7dB$和$18dB$。

所以总的模型公式为: $L_p=L_p=L_0+10 n lg d + k_sL_s+k_hL_h$

实际模型模拟

  1. 高度假设:假设所有的设备都在一个高度。这样可以将原来的三维问题简化为二维问题,从而大大减少计算量和算法设计难度。

  2. 频率假设:使用普遍普遍的IEEE的标准,选择2.4GHz为模拟频率。

tu3 注:长度单位均为m

具体的数据如图2,取坐标原点在房屋长度的中心。 tu4

整体我们的计算思想就是,先进行所有平面点的离散化。然后对于每个点分别计算它们对于原点的距离,然后利用公式$7$进行计算。环境的不同体现在对于n取值的变化上。随后再将所有的点绘制出平面的分布图。用平面分布图近似地代替空间的分布。

	program em

	implicit none
CCC变量设定与初始化
	real x 	
	real y
	real k
	open (unit=10,file="em.txt")
	x=-5.000
	y= 0.000
	k=0.0
	do while(x<=5.0)
	do while(y<=5.0) 
		if((x==0) .and. (y==0))then
		write(10,*) x,y,1000.0
		else if((y/x <=-0.5)) then
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <=-0.5).and.((y/x)>=-1).and.(y>=0).and.(y<=1)) then
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <=-0.5).and.((y/x)>=-1).and.(y>=1).and.(y<=2).and.(x>=-2)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(1/k**2+1))-10*5*LOG10(sqrt((x-1/k)**2+(y-1)**2))
		else if(((y/x) <=-0.5).and.((y/x)>=-1).and.(y>=1).and.(y<=2).and.(x<=-2)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(1/k**2+1))-10*2*LOG10(sqrt((x+2)**2+(y+2*k)**2))-10*6*LOG10(sqrt((-2*k-1)**2+(-2-1/k)**2))
		else if(((y/x) <=-1).and.((y/x)>=-2.5).and.(x>=-1)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <=-1).and.((y/x)>=-2.5).and.(x>=-2).and.(x<=-1)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(1/k**2+1))-10*6*LOG10(sqrt((x-1/k)**2+(y-1)**2))
		else if(((y/x) <=-1).and.((y/x)>=-2.5).and.(x<=-2)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(1/k**2+1))-10*2*LOG10(sqrt((x+2)**2+(y+2*k)**2))-10*6*LOG10(sqrt((-2*k-1)**2+(-2-1/k)**2))
		else if(((y/x) <=-2.5).and.((y/x)>=-5).and.(x>=-1)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <=-2.5).and.((y/x)>=-5).and.(x>=-2).and.(x<=-1)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(1/k**2+1))-10*6*LOG10(sqrt((x-1/k)**2+(y-1)**2))
		else if(((y/x) <=-5)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) >=5)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <= 5).and. ((y/x)>=4).and.(x>=0).and.(x<=1)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <= 5).and. ((y/x)>=4).and.(x>=1).and.(x<=1.25)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(k**2+1))-10*3*LOG10(sqrt((x-1)**2+(y-k)**2))
		else if(((y/x) <= 4).and. ((y/x)>=(5/3)).and.(y<=4)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) <= 4).and. ((y/x)>=(5/3)).and.(y>=4).and.(y<=5)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(16+(4/k)**2))-10*3*LOG10(sqrt((y-4)**2+(x-4/k)**2))
		else if(((y/x) >= (4/3)).and. ((y/x)<=(5/3)).and.(y<=4)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else if(((y/x) >= (4/3)).and.((y/x)<=(5/3)).and.(y>=4).and.(y<=5).and.(x>=2.4).and.(x<=3)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(16+(4/k)**2))-10*3*LOG10(sqrt((y-4)**2+(x-4/k)**2))
		else if(((y/x) >= (4/3)).and. ((y/x)<=(5/3)).and.(x>=3).and.(x<=3.75)) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(16+(4/k)**2)+sqrt((x-3)**2+(y-3*k)**2))-10*3*LOG10(sqrt((3-4/k)**2+(3*k-4)**2))
		else if(((y/x) <= (4/3))) then
		k=y/x
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		else
		write(10,*) x,y,100-10*2*LOG10(sqrt(x**2+y**2))
		end if
	y=y+0.01
	end do
	y= 0.000
	x=x+0.01 
	end do

	end program 

tu5

其实我一开始很奇怪为什么墙没有被体现出来。

后来我猜想的原因是墙很薄只有一米,同时对于大多数斜线射入墙体的光线而言可以忽略。 但是墙还是体现一点作用在于限制了整个电磁场更进一步的向作扩散,也就是使得整体的分布更像一个椭圆而不是圆(对于平面而言)。

同时一个有趣的现象是桌子似乎起到了增强的效果。其实这该是在这个距离相对于桌子带来的斜率衰减,长度带来的衰减更大,但是到了这个地方为了计算在桌子上的穿过空间我只是从桌边开始计算。但是这时候其实距离(相对于路由器发射器的位置更加重要)。

总体而言在桌子上使用电脑可以地更好无线信号。

当然如果墙厚的话,结果另算。但是对于学校宿舍的墙壁厚度,我相信这个模型的可靠性。

注意在这里我假设了无线的功率是100dB但是这个不是绝对的,取决于使用的无线路由器。

拖了这么久终于利用国庆节做完了这个。不过这个模型的精度并不是很满意。 同时虽然使用了fortran但是程序实在写的很暴力。 大家轻拍。有意见或者更好的想法可以告诉我,我的邮箱是:[email protected]。 谢谢!

参考资料: 刘乃安.无线局域网(WLAN)一原理、技术与应用[M].西安:西安电子科技大学出版社,2004.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK