Этот пример показывает, как вычислить и визуализировать силу сигнала между передатчиком и несколькими получателями. Визуализация включает карту покрытия области и окрашенные линии связи. Пример также показывает выбор направленной антенны в порядке достигнуть линии связи с определенным местоположением.
% Define transmitter site at MathWorks (3 Apple Hill Dr, Natick, MA) fq = 6e9; % 6 GHz tx = txsite('Name','MathWorks', ... 'Latitude',42.3001, ... 'Longitude',-71.3504, ... 'Antenna',design(dipole,fq), ... 'AntennaHeight',60, ... % Units: meters 'TransmitterFrequency',fq, ... % Units: Hz 'TransmitterPower',15); % Units: Watts
% Define receiver sites in several surrounding towns and cities rxNames = {... 'Boston, MA','Lexington, MA','Concord, MA','Marlborough, MA', ... 'Hopkinton, MA','Holliston, MA','Foxborough, MA','Quincy, MA'}; rxLocations = [... 42.3601 -71.0589; ... % Boston 42.4430 -71.2290; ... % Lexington 42.4604 -71.3489; ... % Concord 42.3459 -71.5523; ... % Marlborough 42.2287 -71.5226; ... % Hopkinton 42.2001 -71.4245; ... % Holliston 42.0654 -71.2478; ... % Foxborough 42.2529 -71.0023]; % Quincy % Define receiver sensitivity. Sensitivity is the minimum signal strength in % power that is necessary for the receiver to accurately detect the signal. rxSensitivity = -90; % Units: dBm rxs = rxsite('Name',rxNames, ... 'Latitude',rxLocations(:,1), ... 'Longitude',rxLocations(:,2), ... 'Antenna',design(dipole,tx.TransmitterFrequency), ... 'ReceiverSensitivity',rxSensitivity); % Units: dBm
Покажите сайты передатчика и получателя на карте. По маркерам сайта можно кликнуть, чтобы отобразить информацию о сайте.
viewer = siteviewer; show(tx) show(rxs)
Установите формирование изображений карты с помощью свойства Basemap
. Также откройте средство выбора формирования изображений карты в Средстве просмотра Сайта путем нажатия второй кнопки справа. Выберите "OpenStreetMap", чтобы видеть улицы и метки на карте. Вращайте представление, чтобы показать служебную перспективу.
viewer.Basemap = "openstreetmap";
Отобразите карту покрытия. Карта покрытия показывает географическую область, где получатель получит хороший прием, который является, где переданная сила сигнала встречает или превышает чувствительность получателя. Переданная сила сигнала в степени (dBm) вычисляется с помощью модели распространения свободного пространства, которая игнорирует ландшафт, препятствия и атмосферные эффекты. В результате карта покрытия показывает идеализированную зону охвата в отсутствие любых нарушений пути потерь вне потери свободного пространства.
coverage(tx,'freespace', ... 'SignalStrengths',rxSensitivity)
Постройте линии связи на карте. Красные ссылки появляются, где получатель за пределами зоны покрытия, и зеленые ссылки появляются, где получатель в зоне покрытия. Соединитесь по строкам можно кликнуть, чтобы отобразить статистику ссылки.
link(rxs,tx,'freespace')
Обновите карту покрытия, и соединяется, чтобы включать потерю пути, подлежащую выплате литься дождем. Отметьте, как Бостон, MA больше не в зоне покрытия.
coverage(tx,'rain','SignalStrengths', rxSensitivity) link(rxs,tx,'rain')
Дипольный передатчик антенны приводит к нескольким сайтам получателя за пределами зоны покрытия, включая получатель в Бостоне, MA. Теперь примите, что требование передатчика должно достигнуть линии связи с Бостоном. Задайте направленную антенну, которая может увеличить усиление антенны в том направлении.
% Define Yagi-Uda antenna designed for transmitter frequency yagiAnt = design(yagiUda,tx.TransmitterFrequency); % Tilt antenna to direct radiation in XY-plane (i.e. geographic azimuth) yagiAnt.Tilt = 90; yagiAnt.TiltAxis = 'y'; f = figure; % Show directivity pattern patternAzimuth(yagiAnt,tx.TransmitterFrequency)
%Close the previous figure if (isvalid(f)) close(f); end
Обновите карту покрытия и ссылки. Бостон теперь в зоне покрытия, но линии связи с получателями в других направлениях потеряны.
% Update transmitter antenna tx.Antenna = yagiAnt; % Point main beam toward Boston, MA by assigning azimuth angle between % transmitter location and Boston receiver location tx.AntennaAngle = angle(tx, rxs(1)); % Update visualizations, using 'rain' propagation model coverage(tx,'rain','SignalStrengths',rxSensitivity) link(rxs,tx,'rain')
Когда одна сила сигнала задана, карта покрытия зеленая для зоны обслуживания. Задайте несколько сильных мест сигнала, чтобы сгенерировать карту покрытия с контурами для различных уровней сигнала.
% Define signal strengths from sensitivity to -60 dB sigStrengths = rxSensitivity:5:-60; % Update coverage map coverage(tx,'rain','SignalStrengths',sigStrengths)