Motivation
搞不懂相控阵波束如何变化,为何Massive MIMO的阵元都设定为0.5λ,为何波束有旁瓣?于是查到一个图,搞了2个公式,1个程序初步探索了这个玩意儿!基于ULA线性阵列的相控阵变波束情况。
引子
我們觀察到這是一個極座標下線陣的波束掃描圖,其中外圈標註的是度數0~360°,0°表示垂直於線陣的方向。其中,一圈一圈的環代表的是幅度,標出的100,80,60…是dB值。
波束增益最大的是指向0°的方向,最大值100dB,旁瓣比主瓣低接近40dB,說明進行了降低旁瓣的加權處理,並且波束在掃描到30多度後出現了刪瓣。
旁瓣抑制40dB,在30°偏离阵面方向出现副瓣。
從該動圖可以看出:
简单ULA阵列扫描图: 利用主瓣 2pi*dsin(theta)/lambda;
科普知识:扫描波束宽度、扫描最大角不出现栅瓣的阵元条件
波束宽度关系公式
不出现旁瓣的最大阵元距离
扫描角度越大,波束越宽,N为8, 最窄波束宽度为(θBw = 101°/N = 12.6° 8根线阵最大只有12°!!, 32最窄)
因为sin最大是1,所以d取lamda/2绝对不会出现副瓣(在任意扫描角度)? 要看副瓣就要d>0.5lambda; 这时候在
代码仿真
阵元间隔取0.5~1之间的数
【旁瓣】主瓣紧挨着的小副瓣,分散了主瓣能量;
【栅瓣】主瓣不同方向出现的副瓣,不仅分散能量,更恶劣的是混淆了来波方向,使得出现虚假目标,残影什么的。(感谢网友指点)
D=0.5 无栅瓣
D=0.67 30°出现栅瓣
D=2 一直有很多栅瓣
D=0.57 60°出现栅瓣
D=1 一直有栅瓣
D=10 栅瓣一直多得很
小于0.5的是什么?混叠,相干? 谁知道了请告诉我!
%phase array control: matlab code
% theta_bw = k*lambda/(Ndcos(x)) = 101degree/N/cos(x)
% min subbeam occur pos from element distan d = lambda/(1+|sin(x)|)
clc,clear all,close all
N = 32;
d = 0.3; % 0.5(no sidelobe), 0.57(60deg); 0.67(30deg), >1 (always has sidelobe)
theta = -pi:0.01:pi;
theta2 = theta*180/pi;
for phi = 0:1:60
phi0=phi/180*pi;
sum = 0;
for i = 0:N-1
y1 = exp(1i*2*pi*i*d*(sin(theta) - sin(phi0)));
sum = sum + y1;
end
sum = abs(cos(theta).^0.5.*sum);
sum = sum/N;
sum_n_db = mag2db(sum) - min(mag2db(sum));
clf;
%polar(theta,mag2db(sum), '-r')
%polar(theta, abs(sum))
polar(theta, sum_n_db)% polar(thet, mag2db(abs(sum)) ) % negtive caused abnormal behavior
pause(0.05)
end
Reference
【1】https://www.xuehua.us/a/5ec2bbb7ba13ce9da419c74a?lang=zh-tw
【2】无源有源相控阵雷达、电扫阵列及典型系统