这个例子使用:
天线工具箱 相控阵系统工具箱
这个例子展示了如何可视化的变化模式和覆盖图的天线阵列,因为它扫描一个角度的扫描。天线阵列是使用天线工具箱 TM 和相控阵系统工具箱 TM 创建的。该阵列被设计成在 xy 平面内定向和辐射,以便在地理方位角产生最大的覆盖区域。在地图上创建和显示发射站和接收站,并且在天线阵列被操纵时显示模式和覆盖图。
反射面支撑偶极子天线单元的设计
利用天线工具箱设计了一种反射面支撑的偶极子天线单元。设计单元及其激励器为10GHz,并指定倾斜到直接辐射在 xy 平面,这对应于地理方位。
% 设计反射器背偶极子天线元件
fq = 10e9; % 10 GHz
myelement = design(reflector,fq);
myelement.Exciter = design(myelement.Exciter,fq);
% 倾斜天线元件以xy平面辐射,沿x轴瞄准镜
myelement.Tilt = 90;
myelement.TiltAxis = 'y';
myelement.Exciter.Tilt = 90;
myelement.Exciter.TiltAxis = 'y';
% 创建 7 x 7 天线阵列
nrow = 7;
ncol = 7;
myarray = phased.URA('Size',[nrow ncol],'Element',myelement);
% 将元素间距定义为 10 GHz 的半波长,并指定
% 阵列平面作为 YZ 平面,将辐射引导到 x 轴方向
lambda = physconst('lightspeed')/fq;
drow = lambda/2;
dcol = lambda/2;
myarray.ElementSpacing = [drow dcol];
myarray.ArrayNormal = 'x';
% 显示辐射图
f = figure;
az = -180:1:180;
el = -90:1:90;
pattern(myarray,fq,az,el)
在华盛顿纪念碑创建发射站点
利用天线阵列在华盛顿特区的华盛顿纪念碑建立一个发射站。发射机的频率与天线的设计频率相匹配,发射机的输出功率为1 W。将天线高度设置为169米,即纪念碑的高度。
在华盛顿特区创建一个接收站点阵列。这些用作感兴趣地点的地点标记,以评估发射台地点的覆盖范围。
% 设计反射器背偶极子天线元件
fq = 10e9; % 10 GHz
myelement = design(reflector,fq);
myelement.Exciter = design(myelement.Exciter,fq);
% 倾斜天线元件以xy平面辐射,沿x轴瞄准镜
myelement.Tilt = 90;
myelement.TiltAxis = 'y';
myelement.Exciter.Tilt = 90;
myelement.Exciter.TiltAxis = 'y';
% 创建 7 x 7 天线阵列
nrow = 7;
ncol = 7;
myarray = phased.URA('Size',[nrow ncol],'Element',myelement);
% 将元素间距定义为 10 GHz 的半波长,并指定
% 阵列平面作为 YZ 平面,将辐射引导到 x 轴方向
lambda = physconst('lightspeed')/fq;
drow = lambda/2;
dcol = lambda/2;
myarray.ElementSpacing = [drow dcol];
myarray.ArrayNormal = 'x';
% 显示辐射图
f = figure;
az = -180:1:180;
el = -90:1:90;
pattern(myarray,fq,az,el)
tx = txsite("Name","Washington Monument",...
"Latitude",38.88949, ...
"Longitude",-77.03523, ...
"Antenna",myarray,...
"AntennaHeight",169', ...
"TransmitterFrequency",fq,...
"TransmitterPower",1);
if isvalid(f)
close(f)
end
viewer = siteviewer;
show(tx)
pattern(tx)
% 定义接收方站点的名称
rxNames = [...
"Brentwood Hamilton Field" ...
"Nationals Park" ...
"Union Station" ...
"Georgetown University" ...
"Arlington Cemetery"];
% 定义接收方站点的坐标
rxLocations = [...
38.9080 -76.9958; ...
38.8731 -77.0075; ...
38.8976 -77.0062; ...
38.9076 -77.0722; ...
38.8783 -77.0685];
% 创建接收方站点阵列。每个接收器的灵敏度为 -75 dBm。
rxs = rxsite("Name",rxNames, ...
"Latitude",rxLocations(:,1), ...
"Longitude",rxLocations(:,2), ...
"ReceiverSensitivity",-75);
show(rxs)
viewer.Basemap = "streets";
% 获取起始阵列锥度
startTaper = myarray.Taper;
% 定义要执行扫描的角度
azsweep = -30:10:30;
% 设置锥形窗口和转向矢量
N = nrow*ncol;
nbar = 5;
sll = -20;
sltaper = taylorwin(N,nbar,sll)';
steeringVector = phased.SteeringVector("SensorArray",myarray);
% 扫描角度并显示每个角度的天线方向图
for az = azsweep
sv = steeringVector(fq,[az; 0]);
myarray.Taper = sltaper.*sv';
% 更新辐射图。使用较大的尺寸,以便在天线站点中可以看到图案。
pattern(tx, "Size", 2500,"Transparency",1);
end
%重置
myarray.Taper = startTaper;
% 定义信号强度级别 (dBm) 和相应的颜色
strongSignal = -65;
mediumSignal = -70;
weakSignal = -75;
sigstrengths = [strongSignal mediumSignal weakSignal];
sigcolors = ["red" "yellow" "green"];
% 展示阵列方向图
pattern(tx,"Size",500)
%显示覆盖地图,最远可达 6 公里
maxRange = 6000;
coverage(tx, ...
"SignalStrengths",sigstrengths, ...
"Colors",sigcolors, ...
"MaxRange",maxRange)
% 重复扫描,但显示模式和覆盖图
for az = azsweep
% 根据转向矢量计算和分配锥度
sv = steeringVector(fq,[az; 0]);
myarray.Taper = sltaper.*sv';
% 更新
pattern(tx,"Size",500)
% 更新覆盖范围
coverage(tx, ...
"SignalStrengths",sigstrengths, ...
"Colors",sigcolors, ...
"MaxRange",maxRange)
end