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

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

Создайте Dipole с поддержкой отражателя Антенного элемента

Используйте 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);

Показать сайт передатчика на карте

Запустите Site Viewer и покажите сайт передатчика, который центрирует вид на монумент Вашингтона. На карте по умолчанию показаны спутниковые снимки, а маркер сайта показан на высоте антенны сайта.

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 свойство. Также откройте средство выбора изображений карты в Средство Просмотра (Antenna Toolbox), нажав вторую кнопку справа. Выберите «Улицы», чтобы увидеть улицы и метки на карте.

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

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

Сканирование массива и обновление отображения покрытия

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

% 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