Визуализация сканирования луча антенной решетки на карте

В этом примере показано, как визуализировать изменяющийся шаблон и карту покрытия антенной решетки, когда это сканирует развертку углов. Антенная решетка создается с помощью Antenna Toolbox™ и Phased Array System Toolbox™. Массив спроектирован, чтобы быть направленным и изойти в xy-плоскости, чтобы сгенерировать максимальную зону обслуживания в географическом азимуте. Передатчик и сайты получателя созданы и показаны на карте, и шаблон и карта покрытия отображены, когда антенная решетка управляется.

Спроектируйте поддержанный отражателем дипольный элемент антенны

Используйте Antenna Toolbox, чтобы спроектировать поддержанный отражателем дипольный элемент антенны. Спроектируйте элемент и его возбудитель для 10 ГГц, и задайте наклон к прямому излучению в xy-плоскости, которая соответствует географическому азимуту.

% Design reflector-backed dipole antenna element
fq = 10e9; % 10 GHz
myelement = design(reflector,fq);
myelement.Exciter = design(myelement.Exciter,fq);

% Tilt antenna element to radiate in xy-plane, with boresight along x-axis
myelement.Tilt = 90;
myelement.TiltAxis = 'y';
myelement.Exciter.Tilt = 90;
myelement.Exciter.TiltAxis = 'y';

Создайте 7 7 прямоугольную антенную решетку

Используйте Phased Array System Toolbox, чтобы создать 7 7 прямоугольный массив из элемента антенны. Задайте массив, нормальный к прямому излучению в направлении оси X.

% Create 7-by-7 antenna array                            
nrow = 7;
ncol = 7;
myarray = phased.URA('Size',[nrow ncol],'Element',myelement);
    
% Define element spacing to be half-wavelength at 10 GHz, and specify 
% array plane as yz-plane, which directs radiation in x-axis direction
lambda = physconst('lightspeed')/fq;
drow = lambda/2;
dcol = lambda/2; 
myarray.ElementSpacing = [drow dcol];
myarray.ArrayNormal = 'x';
    
% Display radiation pattern
f = figure;
az = -180:1:180;
el = -90:1:90;  
pattern(myarray,fq,az,el)

Создайте ретранслятор в Вашингтонском памятнике

Создайте ретранслятор в Вашингтонском Памятнике в Вашингтоне, округ Колумбия с помощью антенной решетки. Настройки по частоте передатчика частота проекта антенны и выходная мощность передатчика составляют 1 Вт. Установите высоту антенны на 169 м, которая является высотой памятника.

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);

Выберите маркер сайта, чтобы просмотреть цветную легенду шаблона.

Создайте сайты получателя

Создайте массив сайтов получателя в области Вашингтона, округ Колумбия. Они используются в качестве маркеров места для интересных сайтов, чтобы оценить покрытие ретранслятора.

% Define names for receiver sites
rxNames = {...
    'Brentwood Hamilton Field', ...
    'Nationals Park', ...
    'Union Station', ...
    'Georgetown University', ...
    'Arlington Cemetery'};

% Define coordinates for receiver sites
rxLocations = [...
    38.9080 -76.9958; ...
    38.8731 -77.0075; ...
    38.8976 -77.0062; ...
    38.9076 -77.0722; ...
    38.8783 -77.0685];

% Create array of receiver sites. Each receiver has a sensitivity of -75 dBm.
rxs = rxsite('Name',rxNames, ...
    'Latitude',rxLocations(:,1), ...
    'Longitude',rxLocations(:,2), ...
    'ReceiverSensitivity',-75);

Покажите сайты получателя на карте.

show(rxs)

Установите формирование изображений карты с помощью Basemap свойство. В качестве альтернативы откройте средство выбора формирования изображений карты в Средстве просмотра Сайта путем нажатия второй кнопки справа. Выберите "Streets", чтобы видеть улицы и метки на карте.

viewer.Basemap = "streets";

Отсканируйте массив и обновите диаграмму направленности

Отсканируйте луч антенны путем применения заострения для области значений углов. Для каждого угла обновите диаграмму направленности в Средстве просмотра Сайта. Этот подход сканирования луча производит различные шаблоны, чем физическое вращение антенны, как мог быть достигнут установкой AntennaAngle из ретранслятора. Этот шаг используется, чтобы подтвердить ориентацию основного луча антенны.

% Get the starting array taper
startTaper = myarray.Taper;

% Define angles over which to perform sweep
azsweep = -30:10:30;

% Set up tapering window and steering vector
N = nrow*ncol;
nbar = 5; 
sll = -20;
sltaper = taylorwin(N,nbar,sll)';
steeringVector = phased.SteeringVector('SensorArray',myarray);

% Sweep the angles and show the antenna pattern for each
for az = azsweep
    sv = steeringVector(fq,[az; 0]);    
    myarray.Taper = sltaper.*sv';
    
    % Update the radiation pattern. Use a larger size so the the pattern is visible among the antenna sites.
    pattern(tx, 'Size', 2500,'Transparency',1);
end

Отобразите карту покрытия передатчика

Задайте три уровня силы сигнала и соответствующие цвета, чтобы отобразиться на карте покрытия. Каждый цвет отображается, где мощность приемника для мобильного получателя встречает соответствующей силе сигнала. Мощность приемника включает общую степень, переданную от прямоугольной антенной решетки.

Ориентация по умолчанию ретранслятора указывает ось X антенны на восток, так, чтобы было направление максимального покрытия.

% Reset the taper to the starting taper
myarray.Taper = startTaper;

% Define signal strength levels (dBm) and corresponding colors
strongSignal = -65;
mediumSignal = -70;
weakSignal = -75;
sigstrengths = [strongSignal mediumSignal weakSignal];
sigcolors = {'red' 'yellow' 'green'};

% Show the tx pattern
pattern(tx,'Size',500)

% Display coverage map out to 6 km
maxRange = 6000;
coverage(tx, ...
    'SignalStrengths',sigstrengths, ...
    'Colors',sigcolors, ...
    'MaxRange',maxRange)

Карта покрытия не показывает покрытия в ретрансляторе и нескольких карманах покрытия вдоль направления опорного направления перед основной зоной охвата. Диаграмма направленности обеспечивает понимание карты покрытия путем показа как проекты электростанции антенны на местоположения карты вокруг передатчика.

Отсканируйте массив и обновите отображение покрытия

Отсканируйте луч антенны путем применения заострения для области значений углов. Для каждого угла обновите карту покрытия. Этот метод beamscanning является тем же методом, используемым выше. Итоговая карта включает два интересных сайта получателя в зоне обслуживания.

% Repeat the sweep but show the pattern and coverage map 
for az = azsweep
    % Calculate and assign taper from steering vector
    sv = steeringVector(fq,[az; 0]);    
    myarray.Taper = sltaper.*sv';
    
    % Update the tx pattern
    pattern(tx,'Size',500)

    % Update coverage map
    coverage(tx, ...
        'SignalStrengths',sigstrengths, ...
        'Colors',sigcolors, ...
        'MaxRange',maxRange)
end