В этом примере показано, как визуализировать изменяющуюся диаграмму и карту покрытия антенной решетки при сканировании развертки углов. Антенная решетка создается с использованием 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 из антенного элемента. Задайте нормаль массива для направления излучения в направлении оси 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)

Визуализируйте ориентацию антенны, показывая диаграмму направленности в Site Viewer.
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 собственность. Либо откройте средство выбора изображений карты в средстве просмотра сайтов, нажав вторую кнопку справа. Выберите «Улицы», чтобы увидеть улицы и метки на карте.
viewer.Basemap = "streets";
Сканируйте луч антенны, применяя конусность для диапазона углов. Для каждого угла обновите картину излучения в Site Viewer. Такой подход к сканированию луча создает другие диаграммы направленности, чем физическое вращение антенны, что может быть достигнуто путем установки 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)

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

Сканируйте луч антенны, применяя конусность для диапазона углов. Для каждого угла обновите карту покрытия. Этот способ сканирования луча является тем же способом, который использовался выше. Окончательная карта включает в себя два представляющих интерес узла приемника в пределах области покрытия.
% 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

Параллелизация анализа антенн и решеток | Субчипы в большом конечном массиве для формирования гибридных лучей