В этом примере показано, как использовать трассировку лучей, чтобы анализировать линии связи и зоны охвата в городской среде. В примере:
Импортируйте и визуализируйте 3-D данные о созданиях в Средство просмотра Сайта
Задайте ретранслятор и соответствие модели распространения трассировки лучей 5G городской сценарий
Анализируйте ссылку в не условия угла обзора
Визуализируйте стрельбу использования покрытия и возврат луча (SBR) метод трассировки лучей с различным количеством отражений и запущенных лучей
Оптимизируйте не ссылку угла обзора с помощью регулирования луча и Phased Array System Toolbox™
Импортируйте OpenStreetMap (.osm) файл, соответствующий Кенери Уорф в Лондоне, Великобритания. Файл был загружен с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (ODbL), https://opendatacommons.org/licenses/odbl/. Информация о созданиях, содержавшая в файле OpenStreetMap, импортируется и визуализируется в Средстве просмотра Сайта.
viewer = siteviewer("Buildings","canarywharf.osm","Basemap","topographic");
Задайте ретранслятор, чтобы смоделировать маленький сценарий ячейки в плотной городской среде. Ретранслятор представляет базовую станцию, которая помещается в полюс, обслуживающий окружающее пространство, которое включает соседний парк. Передатчик использует изотропную антенну по умолчанию и действует в несущей частоте 28 ГГц с уровнем мощности 5 Вт.
tx = txsite("Name","Small cell transmitter", ... "Latitude",51.50375, ... "Longitude",-0.01843, ... "AntennaHeight",10, ... "TransmitterPower",5, ... "TransmitterFrequency",28e9); show(tx)
Создайте модель распространения трассировки лучей использование стрельбы и возврат луча (SBR) метод. Модель распространения SBR использует анализ трассировки лучей, чтобы вычислить пути к распространению и их соответствующие потери пути. Потеря пути вычисляется от потери свободного пространства, отражательной потери из-за материала и потери поляризации антенны.
Определите максимальный номер отражений к 0 для того, чтобы ограничить начальный анализ путями к распространению угла обзора только. Установите создание и типы материала ландшафта моделировать совершенное отражение.
rtpm = propagationModel("raytracing", ... "Method","sbr", ... "MaxNumReflections",0, ... "BuildingsMaterial","perfect-reflector", ... "TerrainMaterial","perfect-reflector");
Просмотрите соответствующую карту покрытия для максимальной области значений 250 метров от базовой станции. Карта покрытия показывает мощность приемника для приемника в каждом наземном местоположении, но не вычисляется для создания верхних частей или сторон.
coverage(tx,rtpm, ... "SignalStrengths",-120:-5, ... "MaxRange",250, ... "Resolution",3, ... "Transparency",0.6)
Карта покрытия для распространения угла обзора показывает затенение из-за преград. Задайте сайт приемника, чтобы смоделировать мобильный приемник в затрудненном месте. Постройте путь угла обзора, чтобы показать затрудненный путь от передатчика к приемнику.
rx = rxsite("Name","Small cell receiver", ... "Latitude",51.50216, ... "Longitude",-0.01769, ... "AntennaHeight",1); los(tx,rx)
Настройте модель распространения трассировки лучей, чтобы включать одно-отражательные пути и построить лучи. Результат показывает распространение сигнала вдоль одно-отражательного пути. Путь не заканчивается точно на сайте приемника, потому что метод трассировки лучей SBR вычисляет аппроксимированные пути. Выберите нанесенный на график путь, чтобы просмотреть соответствующие характеристики распространения, которые включают мощность приемника, фазовый переход, расстояние и углы отъезда и прибытия.
rtpm.MaxNumReflections = 1; clearMap(viewer) raytrace(tx,rx,rtpm)
Вычислите мощность приемника с помощью модели распространения, которая была ранее сконфигурирована, чтобы смоделировать совершенное отражение. Затем присвойте более реалистический материальный тип и повторно вычислите мощность приемника. Обновите лучи, показанные в Средстве просмотра Сайта. Использование реалистического существенного отражения приводит приблизительно к 8 дБ потерь мощности по сравнению с совершенным отражением.
ss = sigstrength(rx,tx,rtpm); disp("Received power using perfect reflection: " + ss + " dBm")
Received power using perfect reflection: -70.3924 dBm
rtpm.BuildingsMaterial = "concrete"; rtpm.TerrainMaterial = "concrete"; raytrace(tx,rx,rtpm) ss = sigstrength(rx,tx,rtpm); disp("Received power using concrete materials: " + ss + " dBm")
Received power using concrete materials: -78.9591 dBm
Добавление погодных нарушений к модели распространения и перевычисление мощности приемника приводят еще к 1,5 дБ потери.
rtPlusWeather = rtpm + propagationModel("gas") + propagationModel("rain"); raytrace(tx,rx,rtPlusWeather) ss = sigstrength(rx,tx,rtPlusWeather); disp("Received power including weather loss: " + ss + " dBm")
Received power including weather loss: -80.4766 dBm
Используйте сконфигурированную модель распространения и регенерируйте карту покрытия включая одно-отражательные пути и погодные нарушения. Код, чтобы регенерировать результаты покрытия включен, но закомментирован. Результаты, производимые путем выполнения кода, загружаются из файла, чтобы сохранить несколько минут времени вычисления в представлении в качестве примера. Результирующая карта покрытия показывает мощность приемника в области вокруг не линии приемника сайта, анализируемого выше.
clearMap(viewer) % Load coverage results and plot. Coverage results were generated using % commented coverage call below, which takes a couple of minutes to complete. show(tx) coverageResults = load("coverageResults.mat"); contour(coverageResults.propDataSingleRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Расширьте анализ "точка-точка", чтобы включать 2D отражательные пути и выбрать меньшее угловое разделение между запущенными лучами для метода SBR. Визуализация показывает два кластера путей к распространению и общих увеличений мощности приемника приблизительно на 3 дБ по сравнению с одно-отражательными путями.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 2; rtPlusWeather.PropagationModels(1).AngularSeparation = "low"; ss = sigstrength(rx, tx, rtPlusWeather); disp("Received power with two-reflection paths: " + ss + " dBm")
Received power with two-reflection paths: -77.1445 dBm
clearMap(viewer) raytrace(tx,rx,rtPlusWeather)
Визуализируйте предварительно вычисленную карту покрытия, которая включает 2D отражательные пути и погодные нарушения, как задано объединенной моделью распространения выше. Результирующая карта покрытия показывает мощность приемника в большем количестве области, чем карта покрытия с одно-отражательными путями выше. Заметьте, что некоторые области остаются, где никакой сигнал, кажется, не достигает.
clearMap(viewer) % Use pre-loaded coverage results to plot. Coverage results were generated % using commented coverage call below, which may take half hour or so to % complete depending on the computer hardware. show(tx) contour(coverageResults.propDataDoubleRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Объясните больше путей к распространению и сгенерируйте более точную карту покрытия путем увеличения максимального числа отражений для анализа трассировки лучей к 4. Визуализируйте предварительно вычисленную карту покрытия снова, которая показывает почти полный охват для области вокруг ретранслятора.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 4; clearMap(viewer) % Use pre-loaded coverage results to plot. Coverage results were generated using % commented coverage call below, which may take one hour or so to % complete depending on the computer hardware. show(tx) contour(coverageResults.propDataFourRef, ... "Type","power", ... "Transparency",0.6) % coverage(tx,rtPlusWeather, ... % "SignalStrengths",-120:-5, ... % "MaxRange", 250, ... % "Resolution",2, ... % "Transparency",0.6);
Много современных систем связи используют методы, чтобы регулировать антенну передатчика, чтобы достигнуть оптимального качества ссылки. Этот раздел использует Phased Array System Toolbox™, чтобы оптимально регулировать луч, чтобы максимизировать мощность приемника для не ссылки угла обзора.
Задайте пользовательскую антенну из Отчета ITU-R M.2412 [1] для оценки технологий радио 5G. Создайте 8 8 универсальный прямоугольный массив из шаблона элемента, заданного в Разделе 8.5 из отчета, укажите ему юг и просмотрите диаграмму направленности.
tx.Antenna = helperM2412PhasedArray(tx.TransmitterFrequency);
tx.AntennaAngle = -90;
clearMap(viewer)
show(rx)
pattern(tx,"Transparency",0.6)
hide(tx)
Вызовите raytrace
с выходом, чтобы получить доступ к лучам, которые были вычислены. Возвращенный comm.Ray
объекты включают и геометрические и связанные с распространением характеристики каждого луча.
rtPlusWeather.PropagationModels(1).MaxNumReflections = 1; ray = raytrace(tx,rx,rtPlusWeather); disp(ray{1})
Ray with properties: PathSpecification: 'Locations' CoordinateSystem: 'Geographic' TransmitterLocation: [3×1 double] ReceiverLocation: [3×1 double] LineOfSight: 0 ReflectionLocations: [3×1 double] Frequency: 2.8000e+10 PathLossSource: 'Custom' PathLoss: 117.4546 PhaseShift: 3.8184 Read-only properties: PropagationDelay: 6.6489e-07 PropagationDistance: 199.3293 AngleOfDeparture: [2×1 double] AngleOfArrival: [2×1 double] NumReflections: 1
Получите угол отъезда для одно-отражательного пути и примените этот угол, чтобы регулировать антенну в оптимальном направлении, чтобы достигнуть более высокой мощности приемника. Азимут угла отъезда возмещен физическим угловым азимутом антенны, чтобы преобразовать его в держащийся векторный азимут, заданный в системе локальной координаты антенны фазированной решетки.
aod = ray{1}.AngleOfDeparture;
steeringaz = wrapTo180(aod(1)-tx.AntennaAngle(1));
steeringVector = phased.SteeringVector("SensorArray",tx.Antenna);
sv = steeringVector(tx.TransmitterFrequency,[steeringaz;aod(2)]);
tx.Antenna.Taper = conj(sv);
Постройте диаграмму направленности, чтобы показать энергию антенны, направленную вдоль пути к распространению. Новая мощность приемника увеличивается приблизительно на 20 дБ. Увеличенная мощность приемника соответствует пиковому усилению антенны.
pattern(tx,"Transparency",0.6) raytrace(tx,rx,rtPlusWeather); hide(tx) ss = sigstrength(rx, tx, rtPlusWeather); disp("Received power with beam steering: " + ss + " dBm")
Received power with beam steering: -57.5126 dBm
Этот пример использовал трассировку лучей для ссылки и анализа покрытия в городской среде. Анализ показывает:
Как использовать анализ трассировки лучей, чтобы предсказать силу сигнала для не, угол обзора соединяется, где отраженные пути к распространению существуют
Анализ с реалистическими материалами оказывает значительное влияние на расчетную потерю пути и мощность приемника
Анализ с более высоким количеством отражений заканчивается в увеличенное время вычисления, но показывает дополнительные области распространения сигнала
Использование направленной антенны с лучом, держащимся значительно, увеличивает мощность приемника для приемников, даже если они находятся в не местоположения угла обзора
Этот пример анализировал мощность приемника и потерю пути для ссылок и покрытия. Чтобы видеть, как использовать трассировку лучей, чтобы сконфигурировать модель канала для симуляции уровня ссылки, смотрите, что Внутренняя Линия связи MIMO-OFDM использует Трассировку лучей (Communications Toolbox) пример.
[1] Сообщите о ITU-R M.2412, "Инструкции для оценки радио-интерфейсных технологий для IMT-2020", 2017. https://www.itu.int/pub/R-REP-M.2412
3D реконструкция диаграммы направленности от 2D ортогональных срезов