Этот пример показывает, как визуализировать изменяющийся шаблон и карту покрытия антенной решетки, когда она сканирует свип углов. Антенная решетка создается с помощью 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';
Используйте 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