Beamforming原理(三)---天线间距半波长

如果我们指定了一个方向,则在各个方向上的接收天线,能收到的能量满足:
∣ G ( ψ ) ∣ = { ∣ s i n ( N ψ / 2 ) N s i n ( ψ / 2 ) ∣ , if  ψ ≠ 0 1 , if  ψ = 0 − − − − − − 公式 ( 1 ) |G(\psi)|= \begin{cases} |\frac{sin(N\psi/2)}{Nsin(\psi/2)}|, & \text {if $\psi \neq 0$} \\ 1, & \text{if $\psi=0$} \end{cases} ------公式(1) G(ψ)={ Nsin(ψ/2)sin(Nψ/2),1,if ψ=0if ψ=0公式(1)

其中:
ψ = 2 π d λ c o s ( θ ) − 2 π d λ c o s ( θ 0 ) \psi=\frac{2\pi d}{\lambda}cos(\theta)-\frac{2\pi d}{\lambda}cos(\theta_{0}) ψ=λ2πdcos(θ)λ2πdcos(θ0)

θ 0 \theta_{0} θ0 表示我们想指向的方向, θ \theta θ 是一个变的量,遍历整个 − π -\pi π π \pi π 的这样的一圈。为了简单起见,我们不妨设 θ 0 = π / 2 \theta_{0}=\pi/2 θ0=π/2,则:
ψ = 2 π d λ c o s ( θ ) − 2 π d λ c o s ( θ 0 ) = 2 π d λ c o s ( θ ) − 公式 ( 2 ) \psi=\frac{2\pi d}{\lambda}cos(\theta)-\frac{2\pi d}{\lambda}cos(\theta_{0})=\frac{2\pi d}{\lambda}cos(\theta)-公式(2) ψ=λ2πdcos(θ)λ2πdcos(θ0)=λ2πdcos(θ)公式(2)

为了只有一个指定的波束方向(指哪儿打哪儿,这里应该理解为数学上的极大值点,应该保证只有一个波束极大值点),则 ψ / 2 \psi /2 ψ/2 应该介于 [ − π / 2 , π / 2 ] [-\pi/2,\pi/2] [π/2,π/2] 之间,即 2 π d λ c o s ( θ ) \frac{2\pi d}{\lambda}cos(\theta) λ2πdcos(θ) [ − π , π ] [-\pi,\pi] [π,π] 之间,所以
d λ ≤ 1 2 \frac{d}{\lambda}\leq \frac{1}{2} λd21

我们可以画图来感受下,如果
d λ = 1 > 1 2 \frac{d}{\lambda}=1> \frac{1}{2} λd=1>21

那么 ψ = 2 π d λ c o s ( θ ) ∈ [ − 2 π , 2 π ] \psi=\frac{2\pi d}{\lambda}cos(\theta)\in[-2\pi,2\pi] ψ=λ2πdcos(θ)[2π,2π]

则,我们对公式(1),按照上式画出幅度:

import numpy as np
from matplotlib import pyplot as plt

N = 32      #天线数量


psi = np.arange(-2*np.pi, 2*np.pi-0.0000001, 0.01)


r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.plot(psi/np.pi, r)
plt.grid()
plt.show() 

[ − π , π ] [-\pi,\pi] [π,π] 之间只有一个最高点,在这之外,极大值点开始逐渐增大,即在另外一些方向上,也有较大的能量辐射到那个方向上。

所以,当 d λ \frac{d}{\lambda} λd 从 0.5 逐渐增大到 1 的过程中,可以看到多出来的指向逐渐显现出来:

import numpy as np
from matplotlib import pyplot as plt

N = 8      #天线数量

theta = np.arange(0.000001,2*np.pi-0.0000001,0.01)

d_vs_lambda = 0.5

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("0.5")
plt.show()


d_vs_lambda = 0.6

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("0.6")
plt.show()

d_vs_lambda = 0.7

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("0.7")
plt.show()



d_vs_lambda = 0.8

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("0.8")
plt.show()



d_vs_lambda = 0.9

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("0.9")
plt.show()


d_vs_lambda = 1.0

psi = 2 * np.pi * d_vs_lambda * np.cos(theta)

r = np.abs(np.sin(N * psi/2)/np.sin(psi/2))/N

plt.figure()
plt.polar(theta,r)
plt.title("1.0")
plt.show()

猜你喜欢

转载自blog.csdn.net/weixin_49716548/article/details/128457753