代码
首先,我们从matlab给出的Steering Vector文档开始入门,入门链接:
https://ww2.mathworks.cn/help/phased/ref/steervec.html?s_tid=srchtitle
elementPos = (0:.1:.4);
c = physconst('LightSpeed');
fc = 1e9;
lam = c/fc;
ang = [45;0];
sv = steervec(elementPos/lam,ang)
下面进行详细的分析,给出的环境设置很简单:
天线元素的位置为[0,0.1,0.2,0.3,0.4],入射平面波频率为1GHz,到达角度为方位角45度和仰角0度。最终得到的Steering Vector使用steervec函数给出。最终的到的结果为:
sv = 5×1 complex
1.0000 + 0.0000i
0.0887 + 0.9961i
-0.9843 + 0.1767i
-0.2633 - 0.9647i
0.9376 - 0.3478i
分析
那么整个的计算过程是什么样的呢?首先,我们可以借助一张图来理解,图来源于B站,链接如下:
https://www.bilibili.com/video/BV1kb411K7r9
从图中我们可以看出,平面波到达不同的天线是存在时延的,在上图中,平面波到达右边的天线没有时延,那么可以根据平面波的入射方向进行作图,那么 d sin ( θ ) d \sin(\theta) dsin(θ) 代表到达的时延“长度“,由于入射平面波以光速前进,那么可以得到时延差为 τ \tau τ,那么这期间的相位差呢?
此时需要计算时延差相对于入射平面波的周期,即 τ f \tau f τf,此时可以得到延时的弧度,需要的话再计算成角度即可。
此时得到弧度之后,基本可以完成计算了,最后一步即使用欧拉公式 e j x = cos x + j sin x e^{jx} =\cos x+j\sin x ejx=cosx+jsinx,将角度带入即可,注意此时的模值均为1。
使用相同的步骤,即可重新计算matlab中的示例。
以上的内容是针对天线的,那么可以进一步考虑,假设接收端收到了来自天线1和天线2的信号为
r
1
(
t
)
r_1(t)
r1(t)和
r
2
(
t
)
r_2(t)
r2(t),两个天线发送相同的信号,但是与接收端的距离不同,假设天线1与天线2的到达信号之间存在时延
τ
\tau
τ.
参考链接
转自 https://blog.youkuaiyun.com/weixin_42165580/article/details/107600295